函数unicode编码转换

unicode编码转换  时间:2021-05-05  阅读:()

第1章基础知识1.
0Python是一种怎样的语言Python是一门跨平台、开源、免费的解释型高级动态编程语言,支持伪编译将Python源程序转换为字节码来优化程序和提高运行速度,支持使用py2exe、pyinstaller或cx_Freeze工具将Python程序转换为二进制可执行文件.

Python支持命令式编程(Howtodo)、函数式编程(Whattodo),完全支持面向对象程序设计,语法简洁清晰,拥有大量的几乎支持所有领域应用开发的成熟扩展库.
1.
0Python是一种怎样的语言问题解决:把列表中的所有数字都加5,得到新列表.
(命令式编程)>>>x=list(range(10))>>>x[0,1,2,3,4,5,6,7,8,9]>>>y=[]>>>fornuminx:y.
append(num+5)>>>y[5,6,7,8,9,10,11,12,13,14]>>>[num+5fornuminx][5,6,7,8,9,10,11,12,13,14]循环,遍历x中的每个元素列表方法,在尾部追加元素列表推导式创建列表空列表1.
0Python是一种怎样的语言问题解决:把列表中的所有数字都加5,得到新列表.
(函数式编程)>>>x=list(range(10))>>>x[0,1,2,3,4,5,6,7,8,9]>>>defadd5(num):returnnum+5>>>list(map(add5,x))[5,6,7,8,9,10,11,12,13,14]>>>list(map(lambdanum:num+5,x))[5,6,7,8,9,10,11,12,13,14]自定义函数,接收一个数字,加5后返回把函数add5映射到x中的每个元素lambda表达式,等价于函数add51.
1如何选择Python版本启动"IDLE(PythonGUI)"即可可以看到当前安装的Python版本号.
1.
1如何选择Python版本多版本共存时注意事项:系统环境变量path1.
2Python安装与简单使用几个重要网址https://www.
python.
org/https://www.
python.
org/doc/http://bugs.
python.
org/https://hackerone.
com/pythonhttp://stackoverflow.
com/questions/tagged/python1.
2Python安装与简单使用默认编程环境:IDLE其他常用开发环境:Eclipse+PyDevPyCharmwingIDEEricPythonWinAnaconda3:JupyterNotebook、SpyderzwPythonVSCode1.
2Python安装与简单使用在IDLE中,如果使用交互式编程模式,那么直接在提示符">>>"后面输入相应的命令并回车执行即可,如果执行顺利的话,马上就可以看到执行结果,否则会抛出异常.
>>>3+58>>>importmath>>>math.
sqrt(9)3.
0>>>3*(2+6)24>>>2/0Traceback(mostrecentcalllast):File"",line1,in2/0ZeroDivisionError:integerdivisionormodulobyzero交互模式下每次只能执行一条语句直到再次出现提示符才能输入下一条语句代码出错,抛出异常提示符,不用输入1.
2Python安装与简单使用>>>foriinrange(5):print(i)01234交互模式下,复合语句需要按两次回车1.
2Python安装与简单使用在IDLE界面中使用菜单"File"==>"NewFile"创建一个程序文件,输入代码并保存为.
py或.
pyw文件.
使用菜单"Run"==>"CheckModule"来检查程序中是否存在语法错误,或者使用菜单"Run"==>"RunModule"运行程序,程序运行结果将直接显示在IDLE交互界面上.
1.
2Python安装与简单使用1.
2Python安装与简单使用在有些情况下可能需要在命令提示符环境中运行Python程序文件.
在"开始"菜单的""中单击"命令提示符",然后执行Python程序.
假设有程序HelloWorld.
py内容如下.

defmain():print('Helloworld')main()这里的空行建议保留1.
2Python安装与简单使用在IDLE环境下,除了撤销(Ctrl+Z)、全选(Ctrl+A)、复制(Ctrl+C)、粘贴(Ctrl+V)、剪切(Ctrl+X)等常规快捷键之外,其他比较常用的快捷键如下表所示.
快捷键功能说明Alt+p浏览历史命令(上一条)Alt+n浏览历史命令(下一条)Ctrl+F6重启Shell,之前定义的对象和导入的模块全部失效F1打开Python帮助文档Alt+/自动补全前面曾经出现过的单词,如果之前有多个单词具有相同前缀,则在多个单词中循环选择Ctrl+]缩进代码块Ctrl+[取消代码块缩进Alt+3注释代码块Alt+4取消代码块注释.
Tab补全单词,选中多行时可用于缩进1.
3使用pip管理第三方包pip工具常用命令pip命令示例说明pipdownloadSomePackage[==version]下载扩展库的指定版本,不安装pipfreeze[>requirements.
txt]以requirements的格式列出已安装模块piplist列出当前已安装的所有模块pipinstallSomePackage[==version]在线安装SomePackage模块的指定版本pipinstallSomePackage.
whl通过whl文件离线安装扩展库pipinstallpackage1package2.
.
.
依次(在线)安装package1、package2等扩展模块pipinstall-rrequirements.
txt安装requirements.
txt文件中指定的扩展库pipinstall--upgradeSomePackage升级SomePackage模块pipuninstallSomePackage[==version]卸载SomePackage模块的指定版本可以在资源管理器中切换至相应的文件夹并直接进入命令提示符环境.
Shift+鼠标右键1.
3使用pip管理第三方包1.
3使用pip管理第三方包在Windows平台上,如果在线安装扩展库失败,可以从http://www.
lfd.
uci.
edu/~gohlke/pythonlibs/下载扩展库编译好的.
whl文件(注意版本,并且一定不要修改下载的文件名),然后在命令提示符环境中使用pip命令进行离线安装.
例如:pipinstallDjango-2.
1.
3-py3-none-any.
whl1.
3使用pip管理第三方包如果由于网速问题导致在线安装速度过慢的话,pip命令还支持指定国内的站点来提高速度,下面的命令用来从阿里云下载安装扩展库jieba,其他服务器地址可以自行查阅.
pipinstalljieba-ihttp://mirrors.
aliyun.
com/pypi/simple--trusted-hostmirrors.
aliyun.
com1.
3使用pip管理第三方包如果遇到类似于"拒绝访问"的出错信息,需要在执行pip命令时增加选项--user,例如pipinstalljieba--user1.
4.
1Python的对象模型对象是python语言中最基本的概念,在python中处理的一切都是对象.
python中有许多内置对象可供编程者使用,内置对象可直接使用,如数字、字符串、列表、del等;非内置对象需要导入模块才能使用,如正弦函数sin(x),随机数产生函数random()等.
1.
4.
1Python的对象模型对象类型类型名称示例简要说明数字int,float,complex1234,3.
14,1.
3e5,3+4j数字大小没有限制,内置支持复数及其运算字符串str'swfu',"I'mstudent",'''Python''',r'abc',R'bcd'使用单引号、双引号、三引号作为定界符,以字母r或R引导的表示原始字符串字节串bytesb'helloworld'以字母b引导,可以使用单引号、双引号、三引号作为定界符列表list[1,2,3],['a','b',['c',2]]所有元素放在一对方括号中,元素之间使用逗号分隔,其中的元素可以是任意类型字典dict{1:'food',2:'taste',3:'import'}所有元素放在一对大括号中,元素之间使用逗号分隔,元素形式为"键:值"元组tuple(2,-5,6),(3,)不可变,所有元素放在一对圆括号中,元素之间使用逗号分隔,如果元组中只有一个元素的话,后面的逗号不能省略集合setfrozenset{'a','b','c'}所有元素放在一对大括号中,元素之间使用逗号分隔,元素不允许重复;另外,set是可变的,而frozenset是不可变的常用内置对象对象类型类型名称示例简要说明布尔型boolTrueFalse逻辑值,关系运算符、成员测试运算符、同一性测试运算符组成的表达式的值一般为True或False空类型NoneTypeNone空值异常Exception、ValueError、TypeErrorPython内置大量异常类,分别对应不同类型的异常文件f=open('data.
dat','rb')open是Python内置函数,使用指定的模式打开文件,返回文件对象其他可迭代对象生成器对象、range对象、zip对象、enumerate对象、map对象、filter对象等等具有惰性求值的特点,除range对象之外,其他对象中的元素只能看一次编程单元函数(使用def定义)类(使用class定义)模块(类型为module)类和函数都属于可调用对象,模块用来集中存放函数、类、常量或其他对象续表1.
4.
1Python的对象模型在Python中,不需要事先声明变量名及其类型,直接赋值即可创建各种类型的对象变量.
这一点适用于Python任意类型的对象.
例如语句>>>x=3创建了整型变量x,并赋值为3,再例如语句>>>x='Helloworld.
'创建了字符串变量x,并赋值为'Helloworld.
'.
1.
4.
2Python变量凭空出现一个整型变量x新的字符串变量,再也不是原来的x了1.
4.
2Python变量Python属于强类型编程语言,Python解释器会根据赋值或运算来自动推断变量类型.
Python还是一种动态类型语言,变量的类型也是可以随时变化的.
>>>x=3>>>print(type(x))>>>x='Helloworld.
'>>>print(type(x))#查看变量类型>>>x=[1,2,3]>>>print(type(x))1.
4.
2Python变量如果变量出现在赋值运算符或复合赋值运算符(例如+=、*=等等)的左边则表示创建变量或修改变量的值,否则表示引用该变量的值.
>>>x=3#创建整型变量>>>print(x**2)9>>>x+=6#修改变量值>>>print(x)#读取变量值并输出显示9>>>x=[1,2,3]#创建列表对象>>>x[1]=5#修改列表元素值>>>print(x)#输出显示整个列表[1,5,3]>>>print(x[2])#输出显示列表指定元素31.
4.
2Python变量字符串和元组属于不可变序列,不能通过下标的方式来修改其中的元素值,试图修改元组中元素的值时会抛出异常.
>>>x=(1,2,3)>>>print(x)(1,2,3)>>>x[1]=5Traceback(mostrecentcalllast):File"",line1,inx[1]=5TypeError:'tuple'objectdoesnotsupportitemassignment1.
4.
2Python变量在Python中,允许多个变量指向同一个值,例如:>>>x=3>>>id(x)1786684560>>>y=x>>>id(y)1786684560然而,当为其中一个变量修改值以后,其内存地址将会变化,但这并不影响另一个变量,例如接着上面的代码再继续执行下面的代码:>>>x+=6>>>id(x)1786684752>>>y3>>>id(y)17866845601.
4.
2Python变量Python采用基于值的内存管理方式,如果为不同变量赋值为相同值,这个值在内存中只保存一份,多个变量指向同一个值的内存空间首地址,这样可以减少内存空间的占用,提高内存利用率.
Python启动时,会对[-5,256]区间的整数进行缓存.
也就是说,如果多个变量的值相等且介于[-5,256]区间内,那么这些变量共用同一个值的内存空间.
对于区间[-5,256]区间之外的整数,同一个程序中或交互模式下同一个语句中的同值不同名变量会共用同一个内存空间,不同程序或交互模式下不同语句不遵守这个约定.
1.
4.
2Python变量>>>x=-6>>>y=-6>>>id(x)==id(y)False>>>x=-5>>>y=-5>>>id(x)==id(y)True>>>x=255>>>y=255>>>id(x)==id(y)True>>>x=256>>>y=256>>>id(x)==id(y)True>>>x=257>>>y=257>>>id(x)==id(y)False>>>x=3.
0>>>y=3.
0>>>id(x)==id(y)False>>>x,y=300000,300000>>>id(x)==id(y)True>>>x=[666666,666666]>>>y=(666666,666666)>>>id(x[0])==id(x[1])True>>>id(y[0])==id(y[1])True>>>id(x[0])==id(y[0])False1.
4.
2Python变量创建程序文件memoryTest.
py,编写下面的代码并运行,会发现两次输出结果都为True.
x=30000000000y=30000000000print(id(x)==id(y))x=3.
4y=3.
4print(id(x)==id(y))Python不会对实数进行缓存,交互模式下同值不同名的变量不共用同一个内存空间,同一个程序中的同值不同名变量会共用同一个内存空间.
1.
4.
2Python变量赋值语句的执行过程是:首先把等号右侧表达式的值计算出来,然后在内存中寻找一个位置把值存放进去,最后创建变量并指向这个内存地址.
Python中的变量并不直接存储值,而是存储了值的内存地址或者引用,这也是变量类型随时可以改变的原因.

Python具有自动管理内存的功能,会跟踪所有的值,并自动删除不再使用或者引用次数为0的值.
如果确定某个变量不再使用,可以使用del命令显式删除该变量,值的引用次数减1,当某个值的引用次数变为0时,将会被Python的垃圾回收机制自动删除并释放内存空间.

1.
4.
2Python变量在定义变量名的时候,需要注意以下问题:变量名必须以字母、汉字或下划线开头,但以下划线开头的变量在Python中有特殊含义;变量名中不能有空格以及标点符号(括号、引号、逗号、斜线、反斜线、冒号、句号、问号等等);不能使用关键字作变量名,可以导入keyword模块后使用print(keyword.
kwlist)查看所有Python关键字;不建议使用系统内置的模块名、类型名或函数名以及已导入的模块名及其成员名作变量名,这将会改变其类型和含义,可以通过dir(__builtins__)查看所有内置模块、类型和函数;变量名对英文字母的大小写敏感,例如student和Student是不同的变量.
1.
4.
3数字可以表示任意大小的数值.
>>>a=99999999999999999999999999999999>>>a*a9999999999999999999999999999999800000000000000000000000000000001>>>a**39999999999999999999999999999999700000000000000000000000000000002999999999999999999999999999999991.
4.
3数字Python中的整数类型可以分为:十进制整数如,0、-1、9、123十六进制整数,需要16个数字0、1、2、3、4、5、6、7、8、9、a、b、c、d、e、f来表示整数,必须以0x开头,如0x10、0xfa、0xabcdef八进制整数,只需要8个数字0、1、2、3、4、5、6、7来表示整数,必须以0o开头,如0o35、0o11二进制整数,只需要2个数字0、1来表示整数,必须以0b开头如,0b101、0b1001.
4.
3数字浮点数又称小数15.
0、0.
37、-11.
2、1.
2e2、314.
15e-21.
4.
3数字Python内置支持复数类型.
>>>a=3+4j>>>b=5+6j>>>c=a+b>>>c(8+10j)>>>c.
real#查看复数实部8.
0>>>c.
imag#查看复数虚部10.
0>>>a.
conjugate()#返回共轭复数(3-4j)>>>a*b#复数乘法(-9+38j)>>>a/b#复数除法(0.
6393442622950819+0.
03278688524590165j)Python3.
6.
x开始支持在数字中间位置使用单个下划线作为分隔来提高数字的可读性,类似于数学上使用逗号作为千位分隔符.
>>>1_000_0001000000>>>1_2_3_41234>>>1_2+3_4j(12+34j)>>>1_2.
3_4512.
3451.
4.
3数字1.
4.
4字符串用单引号、双引号或三引号界定的符号系列称为字符串.
字符串属于不可变序列.
单引号、双引号、三单引号、三双引号可以互相嵌套,用来表示复杂字符串.
'abc'、'123'、'中国'、"Python"、'''Tomsaid,"Let'sgo"'''空字符串表示为''或"".
三引号'''或"""表示的字符串可以换行,支持排版较为复杂的字符串;三引号还可以在程序中表示较长的注释.
1.
4.
4字符串常用转义字符转义字符含义转义字符含义\b退格,把光标移动到前一列位置\\一个斜线\\f换页符\'单引号'\n换行符\"双引号"\r回车\ooo3位八进制数对应的字符\t水平制表符\xhh2位十六进制数对应的字符\v垂直制表符\uhhhh4位十六进制数表示的Unicode字符1.
4.
4字符串字符串界定符前面加字母r或R表示原始字符串,其中的特殊字符不进行转义,但字符串的最后一个字符不能是\.
原始字符串主要用于正则表达式、文件路径或者URL的场合.
>>>path='C:\Windows\notepad.
exe'>>>print(path)#字符\n被转义为换行符C:\Windowsotepad.
exe>>>path=r'C:\Windows\notepad.
exe'#原始字符串,任何字符都不转义>>>print(path)C:\Windows\notepad.
exe1.
4.
5运算符和表达式运算符功能说明+算术加法,列表、元组、字符串合并与连接,正号-算术减法,集合差集,相反数*算术乘法,序列重复/真除法//求整商,但如果操作数中有实数的话,结果为实数形式的整数%求余数,字符串格式化**幂运算大小比较,集合的包含关系比较or逻辑或and逻辑与not逻辑非in成员测试is对象同一性测试,即测试是否为同一个对象或内存地址是否相同位或、位异或、位与、左移位、右移位、位求反&、|、^集合交集、并集、对称差集Python运算符与功能1.
4.
5运算符和表达式运算符描述:=赋值表达式,Python3.
8新增lambdalambda表达式if--else条件表达式or逻辑或运算and逻辑与运算not逻辑非运算in,notin,is,isnot,测试、比较|位或运算^位异或运算&位与运算>左移位,右移位+,-加,减乘,矩阵乘,除,整除,取余+x,-x,~x正,负,位求反**幂运算,具有右结合性awaitxawait表达式x[index],x[index:index],x(arguments.
.
.
),x.
attribute抽取,切片,调用,属性引用(expressions.
.
.
),[expressions.
.
.
],{key:value.
.
.
},{expressions.
.
.
}绑定或加圆括号的表达式,列表显示,字典显示,集合显示优先级从低到高+运算符除了用于算术加法以外,还可以用于列表、元组、字符串的连接,但不支持不同类型的对象之间相加或连接.
>>>[1,2,3]+[4,5,6]#连接两个列表[1,2,3,4,5,6]>>>(1,2,3)+(4,)#连接两个元组(1,2,3,4)>>>'abcd'+'1234'#连接两个字符串'abcd1234'>>>'A'+1#不支持字符与数字相加,抛出异常TypeError:Can'tconvert'int'objecttostrimplicitly>>>True+3#Python内部把True当作1处理4>>>False+3#把False当作0处理31.
4.
5运算符和表达式1.
4.
5运算符和表达式*运算符不仅可以用于数值乘法,还可以用于列表、字符串、元组等类型,当列表、字符串或元组等类型变量与整数进行"*"运算时,表示对内容进行重复并返回重复后的新对象.
>>>2.
0*3#浮点数与整数相乘6.
0>>>(3+4j)*2#复数与整数相乘(6+8j)>>>(3+4j)*(3-4j)#复数与复数相乘(25+0j)>>>"a"*10#字符串重复'aaaaaaaaaa'>>>[1,2,3]*3#列表重复[1,2,3,1,2,3,1,2,3]>>>(1,2,3)*3#元组重复(1,2,3,1,2,3,1,2,3)1.
4.
5运算符和表达式Python中的除法有两种,"/"和"//"分别表示除法和整除运算.
>>>3/50.
6>>>3//50>>>3.
0/50.
6>>>3.
0//50.
0>>>13//101>>>-13//10-21.
4.
5运算符和表达式%运算符除去可以用于字符串格式化之外,还可以对整数和浮点数计算余数.
但是由于浮点数的精确度影响,计算结果可能略有误差.
>>>3.
1%21.
1>>>6.
3%2.
12.
0999999999999996>>>6%20>>>-17%4#余数与%右侧的运算数符号一致3>>>17%-4#(17-(-3))能被(-4)整除-3>>>5.
7%4.
80.
9000000000000004关系运算符可以连用,一般用于同类型对象之间值的大小比较,或者测试集合之间的包含关系.
>>>1>>'Hello'>'world'#比较字符串大小False>>>[1,2,3]>>'Hello'>3#字符串和数字不能比较TypeError:unorderabletypes:str()>int()>>>{1,2,3}>>3in[1,2,3]#测试3是否存在于列表[1,2,3]中True>>>5inrange(1,10,1)#range()是用来生成指定范围数字的内置函数True>>>'abc'in'abcdefg'#子字符串测试True>>>foriin(3,5,7):#循环,成员遍历print(i,end='\t')#注意,这里打两个回车才会执行3571.
4.
5运算符和表达式同一性测试运算符(identitycomparison)is用来测试两个对象是否是同一个,如果是则返回True,否则返回False.
如果两个对象是同一个,二者具有相同的内存地址.
>>>3is3True>>>x=[300,300,300]>>>x[0]isx[1]#基于值的内存管理,同一个值在内存中只有一份True>>>x=[1,2,3]>>>y=[1,2,3]>>>xisy#上面形式创建的x和y不是同一个列表对象False1.
4.
5运算符和表达式位运算符只能用于整数,其内部执行过程为:首先将整数转换为二进制数,然后右对齐,必要的时候左侧补0,按位进行运算,最后再把计算结果转换为十进制数字返回.
>>>3>>3&7#位与运算3>>>3|8#位或运算11>>>3^5#位异或运算61.
4.
5运算符和表达式位运算符规则集合的交集、并集、对称差集等运算借助于位运算符来实现,而差集则使用减号运算符实现(注意,并集运算符不是加号).
>>>{1,2,3}|{3,4,5}#并集,自动去除重复元素{1,2,3,4,5}>>>{1,2,3}&{3,4,5}#交集{3}>>>{1,2,3}^{3,4,5}#对称差集{1,2,4,5}>>>{1,2,3}-{3,4,5}#差集{1,2}1.
4.
5运算符和表达式and和or具有惰性求值特点,只计算必须计算的表达式.
>>>3>5anda>3#注意,此时并没有定义变量aFalse>>>3>5ora>3#3>5的值为False,所以需要计算后面表达式NameError:name'a'isnotdefined>>>33#3>>3and5#最后一个计算的表达式的值作为整个表达式的值5>>>3and5>2True>>>3notin[1,2,3]#逻辑非运算notFalse>>>3isnot5#not的计算结果只能是True或False之一True1.
4.
5运算符和表达式1.
4.
5运算符和表达式逗号并不是运算符,只是一个普通分隔符.
>>>'a'in'b','a'(False,'a')>>>'a'in('b','a')True>>>x=3,5>>>x(3,5)>>>3==3,5(True,5)>>>x=3+5,7>>>x(8,7)Python不支持++和--运算符,只是两个连续的加号和减号.
>>>i=3>>>++i#正正得正3>>>+(+3)#与++i等价3>>>i++#Python不支持++运算符,语法错误SyntaxError:invalidsyntax>>>--i#负负得正3>>>-(-i)#与--i等价31.
4.
5运算符和表达式1.
4.
5运算符和表达式在Python中,单个任何类型的对象或常数属于合法表达式,使用运算符连接的变量和常量以及函数调用的任意组合也属于合法的表达式.
>>>a=[1,2,3]>>>b=[4,5,6]>>>c=a+b>>>c[1,2,3,4,5,6]>>>d=list(map(str,c))>>>d['1','2','3','4','5','6']>>>importmath>>>list(map(math.
sin,c))[0.
8414709848078965,0.
9092974268256817,0.
1411200080598672,-0.
7568024953079282,-0.
9589242746631385,-0.
27941549819892586]>>>'Hello'world''Helloworld'>>>'welcome'*3'welcomewelcomewelcome'>>>('welcome,'*3).
rstrip('welcome,welcome,welcome!
'1.
4.
6常用内置函数内置函数不需要导入任何模块即可使用执行下面的命令可以列出所有内置函数>>>dir(__builtins__)函数功能简要说明abs(x)返回数字x的绝对值或复数x的模all(iterable)如果对于可迭代对象中所有元素x都等价于True,也就是对于所有元素x都有bool(x)等于True,则返回True.
对于空的可迭代对象也返回Trueany(iterable)只要可迭代对象iterable中存在元素x使得bool(x)为True,则返回True.
对于空的可迭代对象,返回Falseascii(obj)把对象转换为ASCII码表示形式,必要的时候使用转义字符来表示特定的字符bin(x)把整数x转换为二进制串表示形式bool(x)返回与x等价的布尔值True或Falsebytes(x)生成字节串,或把指定对象x转换为字节串表示形式callable(obj)测试对象obj是否可调用.
类和函数是可调用的,包含__call__()方法的类的对象也是可调用的compile()用于把Python代码编译成可被exec()或eval()函数执行的代码对象complex(real,[imag])返回复数chr(x)返回Unicode编码为x的字符1.
4.
6常用内置函数函数功能简要说明delattr(obj,name)删除属性,等价于delobj.
namedir(obj)返回指定对象或模块obj的成员列表,如果不带参数则返回当前作用域内所有标识符divmod(x,y)返回包含整商和余数的元组((x-x%y)/y,x%y)enumerate(iterable[,start])返回包含元素形式为(0,iterable[0]),(1,iterable[1]),(2,iterable[2]),.
.
.
的迭代器对象eval(s[,globals[,locals]])计算并返回字符串s中表达式的值exec(x)执行代码或代码对象xexit()退出当前解释器环境filter(func,seq)返回filter对象,其中包含序列seq中使得单参数函数func返回值为True的那些元素,如果函数func为None则返回包含seq中等价于True的元素的filter对象float(x)把整数或字符串x转换为浮点数并返回frozenset([x]))创建不可变的集合对象getattr(obj,name[,default])获取对象中指定属性的值,等价于obj.
name,如果不存在指定属性则返回default的值,如果要访问的属性不存在并且没有指定default则抛出异常1.
4.
6常用内置函数函数功能简要说明globals()返回包含当前作用域内全局变量及其值的字典hasattr(obj,name)测试对象obj是否具有名为name的成员hash(x)返回对象x的哈希值,如果x不可哈希则抛出异常help(obj)返回对象obj的帮助信息hex(x)把整数x转换为十六进制串id(obj)返回对象obj的标识(内存地址)input([提示])显示提示,接收键盘输入的内容,返回字符串int(x[,d])返回实数(float)、分数(Fraction)或高精度实数(Decimal)x的整数部分,或把d进制的字符串x转换为十进制并返回,d默认为十进制isinstance(obj,class-or-type-or-tuple)测试对象obj是否属于指定类型(如果有多个类型的话需要放到元组中)的实例iter(.
.
.
)返回指定对象的可迭代对象len(obj)返回对象obj包含的元素个数,适用于列表、元组、集合、字典、字符串以及range对象和其他可迭代对象1.
4.
6常用内置函数函数功能简要说明list([x])、set([x])、tuple([x])、dict([x])把对象x转换为列表、集合、元组或字典并返回,或生成空列表、空集合、空元组、空字典locals()返回包含当前作用域内局部变量及其值的字典map(func,*iterables)返回包含若干函数值的map对象,函数func的参数分别来自于iterables指定的每个迭代对象,max(x)、min(x)返回可迭代对象x中的最大值、最小值,要求x中的所有元素之间可比较大小,允许指定排序规则和x为空时返回的默认值next(iterator[,default])返回可迭代对象x中的下一个元素,允许指定迭代结束之后继续迭代时返回的默认值oct(x)把整数x转换为八进制串open(name[,mode])以指定模式mode打开文件name并返回文件对象ord(x)返回1个字符x的Unicode编码pow(x,y,z=None)返回x的y次方,等价于x**y或(x**y)%z1.
4.
6常用内置函数函数功能简要说明print(value,.
.
.
,sep='',end='\n',file=sys.
stdout,flush=False)基本输出函数quit()退出当前解释器环境range([start,]end[,step])返回range对象,其中包含左闭右开区间[start,end)内以step为步长的整数reduce(func,sequence[,initial])将双参数的函数func以迭代的方式从左到右依次应用至序列seq中每个元素,最终返回单个值作为结果.
在Python2.
x中该函数为内置函数,在Python3.
x中需要从functools中导入reduce函数再使用repr(obj)返回对象obj的规范化字符串表示形式,对于大多数对象有eval(repr(obj))==objreversed(seq)返回seq(可以是列表、元组、字符串、range以及其他可迭代对象)中所有元素逆序后的迭代器对象1.
4.
6常用内置函数函数功能简要说明round(x[,小数位数])对x进行四舍五入,若不指定小数位数,则返回整数sorted(iterable,key=None,reverse=False)返回排序后的列表,其中iterable表示要排序的序列或迭代对象,key用来指定排序规则或依据,reverse用来指定升序或降序.
该函数不改变iterable内任何元素的顺序str(obj)把对象obj直接转换为字符串sum(x,start=0)返回序列x中所有元素之和,返回start+sum(x)type(obj)返回对象obj的类型zip(seq1[,seq2[.
.
.
]])返回zip对象,其中元素为(seq1[i],seq2[i],.
.
.
)形式的元组,最终结果中包含的元素个数取决于所有参数序列或可迭代对象中最短的那个1.
4.
6常用内置函数1.
4.
6常用内置函数dir()函数可以查看指定模块中包含的所有成员或者指定对象类型所支持的操作.
help()函数则返回指定模块或函数的说明文档.
内置函数bin()、oct()、hex()用来将整数转换为二进制、八进制和十六进制形式,这三个函数都要求参数必须为整数.
>>>bin(555)#把数字转换为二进制串'0b1000101011'>>>oct(555)#转换为八进制串'0o1053'>>>hex(555)#转换为十六进制串'0x22b'1.
4.
6常用内置函数1.
4.
6常用内置函数内置函数int()用来把实数转换为整数,或把数字字符串按指定进制转换为十进制数.
>>>int(3.
5)3>>>int(-3.
5)-3>>>int('101',2)#二进制5>>>int('101',16)#十六进制257>>>int('x2',36)#36进制1190>>>int('\t8\n')#自动忽略数字两侧的空白字符81.
4.
6常用内置函数ord()和chr()是一对功能相反的函数,ord()用来返回单个字符的序数或Unicode码,而chr()则用来返回某序数对应的字符,str()则直接将其任意类型参数转换为字符串.

>>>ord('a')>>>chr(65)97'A'>>>chr(ord('A')+1)>>>str(1)'B''1'>>>str(1234)>>>str([1,2,3])'1234''[1,2,3]'>>>str((1,2,3))>>>str({1,2,3})'(1,2,3)''{1,2,3}'1.
4.
6常用内置函数max()、min()、sum()这三个内置函数分别用于计算列表、元组或其他可迭代对象中所有元素最大值、最小值以及所有元素之和,sum()要求元素支持加法运算,max()和min()则要求序列或可迭代对象中的元素之间可比较大小.

>>>importrandom>>>a=[random.
randint(1,100)foriinrange(10)]#列表推导式>>>a[72,26,80,65,34,86,19,74,52,40]>>>print(max(a),min(a),sum(a))8619548如果需要计算该列表中的所有元素的平均值,可以直接这样用:>>>sum(a)/len(a)54.
81.
4.
6常用内置函数内置函数max()和min()的key参数可以用来指定比较规则.
>>>x=['21','1234','9']>>>max(x)'9'>>>max(x,key=len)'1234'>>>max(x,key=int)'1234'1.
4.
6常用内置函数>>>fromrandomimportrandrange>>>x=[[randrange(1,100)foriinrange(10)]forjinrange(5)]>>>foriteminx:print(item)[15,50,38,53,58,13,22,54,7,45][45,63,58,89,85,91,77,45,53,50][80,10,46,16,71,73,13,68,94,50][66,4,49,67,26,58,52,46,69,99][35,57,63,35,71,18,86,2,16,87]>>>max(x,key=sum)#求所有元素之和最大的子列表[45,63,58,89,85,91,77,45,53,50]这里要打两个回车才会执行代码print相对于for有缩进,提示符>>>是占位置的内置函数sum()的start参数可以实现非数值型列表元素的求和.
>>>sum([1,2,3,4])10>>>sum([[1],[2],[3],[4]],[])[1,2,3,4]1.
4.
6常用内置函数内置函数type()和isinstance()可以判断数据类型.
>>>type([3])#查看[3]的类型>>>type({3})in(list,tuple,dict)#判断{3}是否为list,tuple#或dict类型的实例False>>>isinstance(3,int)#判断3是否为int类型的实例True>>>isinstance(3j,(int,float,complex))#判断3j是否为int,float#或complex类型True1.
4.
6常用内置函数sorted()对列表、元组、字典、集合或其他可迭代对象进行排序并返回新列表.
>>>x=['aaaa','bc','d','b','ba']>>>sorted(x,key=lambdaitem:(len(item),item))#先按长度排序,长度一样的正常排序['b','d','ba','bc','aaaa']>>>importrandom>>>data=random.
choices(range(50),k=11)>>>data[18,38,35,5,13,48,13,2,19,47,3]>>>sorted(data)[2,3,5,13,13,18,19,35,38,47,48]>>>sorted(data)[len(data)//2]#中位数181.
4.
6常用内置函数reversed()对可迭代对象(生成器对象和具有惰性求值特性的zip、map、filter、enumerate等类似对象除外)进行翻转(首尾交换)并返回可迭代的reversed对象.

>>>x=['aaaa','bc','d','b','ba']>>>reversed(x)#逆序,返回reversed对象>>>list(reversed(x))#reversed对象是可迭代的['ba','b','d','bc','aaaa']1.
4.
6常用内置函数range()语法格式为range([start,]end[,step]),返回具有惰性求值特点的range对象,其中包含左闭右开区间[start,end)内以step为步长的整数.
参数start默认为0,step默认为1.
>>>range(5)#start默认为0,step默认为1range(0,5)>>>list(_)[0,1,2,3,4]>>>list(range(1,10,2))#指定起始值和步长[1,3,5,7,9]>>>list(range(9,0,-2))#步长为负数时,start应比end大[9,7,5,3,1]1.
4.
6常用内置函数enumerate()函数用来枚举可迭代对象中的元素,返回可迭代的enumerate对象,其中每个元素都是包含索引和值的元组.
>>>list(enumerate('abcd'))#枚举字符串中的元素[(0,'a'),(1,'b'),(2,'c'),(3,'d')]>>>list(enumerate(['Python','Great']))#枚举列表中的元素[(0,'Python'),(1,'Great')]>>>list(enumerate({'a':97,'b':98,'c':99}.
items()))#枚举字典中的元素[(0,('a',97)),(1,('b',98)),(2,('c',99))]>>>forindex,valueinenumerate(range(10,15)):#枚举range对象中的元素print((index,value),end='')(0,10)(1,11)(2,12)(3,13)(4,14)1.
4.
6常用内置函数内置函数map()把一个函数func依次映射到序列或迭代器对象的每个元素上,并返回一个可迭代的map对象作为结果,map对象中每个元素是原序列中元素经过函数func处理后的结果.
>>>list(map(str,range(5)))#把列表中元素转换为字符串['0','1','2','3','4']>>>defadd5(v):#单参数函数returnv+5>>>list(map(add5,range(10)))#把单参数函数映射到一个序列的所有元素[5,6,7,8,9,10,11,12,13,14]>>>defadd(x,y):#可以接收2个参数的函数returnx+y>>>list(map(add,range(5),range(5,10)))#把双参数函数映射到两个序列上[5,7,9,11,13]1.
4.
6常用内置函数>>>importrandom>>>x=random.
randint(1,1e30)#生成指定范围内的随机整数>>>x839746558215897242220046223150>>>list(map(int,str(x)))#提取大整数每位上的数字[8,3,9,7,4,6,5,5,8,2,1,5,8,9,7,2,4,2,2,2,0,0,4,6,2,2,3,1,5,0]>>>defcheck(s,lst):#测试字符串是否包含列表中某个元素作为子串f=lambdaitem:iteminsreturnany(map(f,lst))>>>check('abcdefg',['c','e'])True>>>check('abcdefg',['i','h'])False1.
4.
6常用内置函数1.
4.
6常用内置函数fromitertoolsimportchainxData=[1,2,3,4]yData=[5,6,7,8]data=map(lambdax:map(lambday:(x,y),yData),xData)foriteminchain(*data):print(item,end='')运行结果:(1,5)(1,6)(1,7)(1,8)(2,5)(2,6)(2,7)(2,8)(3,5)(3,6)(3,7)(3,8)(4,5)(4,6)(4,7)(4,8)标准库functools中的函数reduce()可以将一个接收2个参数的函数以迭代累积的方式从左到右依次作用到一个序列或迭代器对象的所有元素上,并且允许指定一个初始值.
>>>fromfunctoolsimportreduce>>>seq=list(range(1,10))>>>reduce(lambdax,y:x+y,seq)451.
4.
6常用内置函数内置函数filter()将一个单参数函数作用到一个序列上,返回该序列中使得该函数返回值为True的那些元素组成的filter对象,如果指定函数为None,则返回序列中等价于True的元素.

>>>seq=['foo','x41'>>>deffunc(x):returnx.
isalnum()#测试是否为字母或数字>>>filter(func,seq)#返回filter对象>>>list(filter(func,seq))#把filter对象转换为列表['foo','x41']>>>list(filter(str.
isalnum,seq))#等价的用法['foo','x41']1.
4.
6常用内置函数1.
4.
6常用内置函数>>>data=list(range(20))>>>data[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19]>>>filterObject=filter(lambdax:x%2==1,data)#过滤,只留下所有奇数>>>filterObject>>>3infilterObject#3以及3之前的元素都访问过了True>>>list(filterObject)#现在所有元素都访问过了[5,7,9,11,13,15,17,19]>>>list(filterObject)#filterObject中不再包含任何元素[]zip()函数用来把多个可迭代对象中的元素压缩到一起,返回一个可迭代的zip对象,其中每个元素都是包含原来的多个可迭代对象对应位置上元素的元组,如同拉拉链一样.
>>>list(zip('abcd',[1,2,3]))#压缩字符串和列表[('a',1),('b',2),('c',3)]>>>list(zip('123','abc'压缩3个序列[('1','a'2','b'3','c','!
')]>>>x=zip('abcd','1234')>>>list(x)[('a','1'),('b','2'),('c','3'),('d','4')]1.
4.
6常用内置函数map、filter、enumerate、zip等对象不仅具有惰性求值的特点,还有另外一个特点:访问过的元素不可再次访问.
>>>x=map(str,range(10))>>>list(x)['0','1','2','3','4','5','6','7','8','9']>>>list(x)[]>>>x=map(str,range(10))>>>'2'inxTrue>>>'2'inxFalse>>>'8'inxFalse1.
4.
6常用内置函数1.
4.
7基本输入输出用Python进行程序设计,输入是通过input()函数来实现的,input()的一般格式为:x=input('提示:')该函数返回输入的对象.
可输入数字、字符串和其它任意类型对象.
1.
4.
7基本输入输出在Python3.
x中,input()函数用来接收用户的键盘输入,不论用户输入数据时使用什么界定符,input()函数的返回结果都是字符串,需要将其转换为相应的类型再处理.
>>>x=input('Pleaseinput:')Pleaseinput:3>>>print(type(x))>>>x=input('Pleaseinput:')Pleaseinput:'1'>>>print(type(x))>>>x=input('Pleaseinput:')Pleaseinput:[1,2,3]>>>print(type(x))1.
4.
7基本输入输出Python3.
x中使用print()函数进行输出.
>>>print(3,5,7)357>>>print(3,5,7,sep=',')#指定分隔符3,5,7>>>print(3,5,7,sep=':')3:5:7>>>foriinrange(10,20):print(i,end='')#不换行10111213141516171819试试下面的代码在命令提示符环境会有什么样的运行效果:fromtimeimportsleepforiinrange(101):print(i,'%',end='\r')sleep(0.
05)1.
4.
7基本输入输出1.
4.
8模块导入与使用Python默认安装仅包含部分基本或核心模块,但用户可以安装大量的扩展模块,pip是管理模块的重要工具.
在Python启动时,仅加载了很少的一部分模块,在需要时由程序员显式地加载(可能需要先安装)其他模块.
减小运行的压力,仅加载真正需要的模块和功能,且具有很强的可扩展性.
可以使用sys.
modules.
items()显示所有预加载模块的相关信息.
1.
4.
8模块导入与使用import模块名>>>importmath>>>math.
sin(0.
5)#求0.
5的正弦>>>importrandom>>>x=random.
random()#获得[0,1)内的随机小数>>>y=random.
random()>>>n=random.
randint(1,100)#获得[1,100]上的随机整数可以使用dir()函数查看任意模块中所有的对象列表,如果调用不带参数的dir()函数,则返回当前作用域所有名字列表.
可以使用help()函数查看任意模块或函数的使用帮助.
1.
4.
8模块导入与使用from模块名import对象名[as别名]#可以减少查询次数,提高执行速度frommathimport*#谨慎使用>>>frommathimportsin>>>sin(3)0.
1411200080598672>>>frommathimportsinasf#别名>>>f(3)0.
1411200080598671.
4.
8模块导入与使用在2.
x中可以使用reload函数重新导入一个模块,在3.
x中,需要使用imp模块的reload函数.
Python首先在当前目录中查找需要导入的模块文件,如果没有找到则从sys模块的path变量所指定的目录中查找.
可以使用sys模块的path变量查看python导入模块时搜索模块的路径,也可以向其中append自定义的目录以扩展搜索路径.

在导入模块时,会优先导入相应的pyc文件,如果相应的pyc文件与py文件时间不相符,则导入py文件并重新编译该模块.
1.
4.
8模块导入与使用导入模块时的文件搜索顺序当前文件夹sys.
path变量指定的文件夹优先导入pyc文件1.
4.
8模块导入与使用如果需要导入多个模块,一般建议按如下顺序进行导入:标准库成熟的第三方扩展库自己开发的库1.
5Python代码规范(1)缩进类定义、函数定义、选择结构、循环结构、with块,行尾的冒号表示缩进的开始.
python程序是依靠代码块的缩进来体现代码之间的逻辑关系的,缩进结束就表示一个代码块结束了.
同一个级别的代码块的缩进量必须相同.
一般而言,以4个空格为基本缩进单位.
1.
5Python代码规范(2)注释以#开始,表示本行#之后的内容为注释.
包含在一对三引号'或"之间且不属于任何语句的内容将被解释器认为是注释.
1.
5Python代码规范(3)每个import语句只导入一个模块,最好按标准库、扩展库、自定义库的顺序依次导入.
1.
5Python代码规范(4)如果一行语句太长,可以在行尾加上续行符\来换行分成多行,但是更建议使用括号来包含多行内容.
1.
5Python代码规范(5)必要的空格与空行运算符两侧、逗号后面建议增加一个空格.
不同功能的代码块之间、不同的函数定义之间建议增加一个空行以增加可读性.
1.
5Python代码规范可以使用pip来安装pep8工具,然后使用命令pep8test.
py来检查test.
py文件中Python代码的规范性.
pep8常用的可选参数有--show-source、--first、--show-pep8等等.
flake8结合了pyflakes和pep8的特点,可以检查更多的内容,优先推荐使用,使用pipinstallflake8可以直接安装,然后使用命令flake8test.
py检查test.
py中代码的规范性.
也可以使用pip安装pylint,然后使用命令行工具pylint或者可视化工具pylint-gui来检查程序的规范性.
1.
6Python文件名.
py:Python源文件,由Python解释器负责解释执行.
.
pyw:Python源文件,常用于图形界面程序文件.
.
pyc:Python字节码文件,无法使用文本编辑器直接查看该类型文件内容,可用于隐藏Python源代码和提高运行速度.
对于Python模块,第一次被导入时将被编译成字节码的形式,并在以后再次导入时优先使用".
pyc"文件,以提高模块的加载和运行速度.
对于非模块文件,直接执行时并不生成".
pyc"文件,但可以使用py_compile模块的compile()函数进行编译以提高加载和运行速度.
另外,Python还提供了compileall模块,其中包含compile_dir()、compile_file()和compile_path()等方法,用来支持批量Python源程序文件的编译.

1.
6Python文件名.
pyo:优化的Python字节码文件,同样无法使用文本编辑器直接查看其内容.
可以使用"python–O-mpy_compilefile.
py"或"python–OO-mpy_compilefile.
py"进行优化编译.
Python3.
5不再支持.
pyo文件.
.
pyd:一般是由其他语言编写并编译的二进制文件,常用于实现某些软件工具的Python编程接口插件或Python动态链接库.
1.
7Python脚本的"__name__"属性每个Python脚本在运行时都有一个"__name__"属性.
如果脚本作为模块被导入,则其"__name__"属性的值被自动设置为模块名;如果脚本独立运行,则其"__name__"属性值被自动设置为"__main__".
例如,假设文件nametest.
py中只包含下面一行代码:print(__name__)在IDLE中直接运行该程序时,或者在命令行提示符环境中运行该程序文件时,运行结果如下:__main__而将该文件作为模块导入时得到如下执行结果:>>>importnametestnametest1.
7Python脚本的"__name__"属性利用"__name__"属性即可控制Python程序的运行方式.
例如,编写一个包含大量可被其他程序利用的函数的模块,而不希望该模块可以直接运行,则可以在程序文件中添加以下代码:if__name_main__':print('Pleaseusemeasamodule.
')这样一来,程序直接执行时将会得到提示"Pleaseusemeasamodule.
",而使用import语句将其作为模块导入后可以使用其中的类、方法、常量或其他成员.
1.
8编写自己的包与模块在包的每个目录中都必须包含一个__init__.
py文件,该文件可以是一个空文件,仅用于表示该目录是一个包.
__init__.
py文件的主要用途是设置__all__变量以及所包含的包初始化所需的代码.
其中__all__变量中定义的对象可以在使用from…import*时全部正确导入.
1.
9Python程序伪编译与打包Python程序伪编译可以使用py_compile模块的compile()函数或compileall模块的compile_file()函数对Python源程序文件进行伪编译得到扩展名为.
pyc的字节码以提高加载和运行速度,同时还可以隐藏源代码.

假设有Python程序Stack.
py文件,并已导入py_compile,那么可以使用语句py_compile.
compile('Stack.
py')把Stack.
py伪编译为字节码,如果需要优化编译可以使用py_compile.
compile('Stack.
py',optimize=1)或py_compile.
compile('Stack.
py',optimize=2)生成不同优化级别的字节码文件.
生成的字节码文件都保存为__pycache__文件夹中.
1.
9Python程序伪编译与打包Python程序打包可以把Python程序打包为可执行程序的工具有py2exe(仅适用于Windows平台)、pyinstaller、cx_Freeze等等.
以pyinstaller为例,使用pip工具安装该工具之后在命令提示符环境中使用命令"pyinstaller-F-wkousuan.
pyw"或者"pythonpyinstaller-script.
py-F-wkousuan.
pyw"即可将Python程序kousuan.
pyw及其所有依赖包打包成为当前所用平台上的可执行文件.
1.
10Python快速入门例1-1用户输入一个三位自然数,计算并输出其佰位、十位和个位上的数字.
x=input('请输入一个三位数:')x=int(x)a=x//100b=x//10%10c=x%10print(a,b,c)想一想,还有别的办法吗1.
10Python快速入门还可以这样写x=input('请输入一个三位数:')x=int(x)a,b=divmod(x,100)b,c=divmod(b,10)print(a,b,c)还可以再简单些吗1.
10Python快速入门居然可以这样OMGx=input('请输入一个三位数:')a,b,c=map(int,x)print(a,b,c)不限位数怎么办1.
10Python快速入门终极解决方案x=input('请输入一个n位自然数:')print(*map(int,x))1.
10Python快速入门例1-2已知三角形的两边长及其夹角,求第三边长.
importmathx=input('输入两边长及夹角(度):')a,b,theta=map(float,x.
split())c=math.
sqrt(a**2+b**2-2*a*b*math.
cos(theta*math.
pi/180))print('c=',c)1.
10Python快速入门例1-3任意输入三个英文单词,按字典顺序输出.
s=input('x,y,z=')x,y,z=s.
split(',')ifx>y:x,y=y,xifx>z:x,z=z,xify>z:y,z=z,yprint(x,y,z)或直接写为:s=input('x,y,z=')x,y,z=sorted(s.
split(','))print(x,y,z)例1-4计算两点间曼哈顿距离.
defmanhattanDistance(x,y):#等价于returnsum(map(abs,map(sub,x,y)))returnsum(map(lambdai,j:abs(i-j),x,y))print(manhattanDistance([1,2],[3,4]))print(manhattanDistance([1,2,3],[4,5,6]))print(manhattanDistance([1,2,3,4],[5,6,7,8]))1.
10Python快速入门对于平面上的两个点(x1,y1)和(x2,y2),曼哈顿距离的定义如下:对于空间向量(x1,x2,x3,.
.
.
,xn)和(y1,y2,y3,.
.
.
,yn),曼哈顿距离的定义为:1.
10Python快速入门例1-5统计一个字符串中所有字符在另一个字符串中出现的总次数.
可能的应用:垃圾邮件分类.
在大部分垃圾邮件中,为了防止被分类为垃圾邮件,会在一些关键字中间插入类似于【、】、*之类的字符来干扰分词.
可以把这个特点作为一个判断依据,如果一封邮件中这样的干扰字符超过一定比例,则认为是垃圾邮件.

VirMach:$27.3/月-E3-1240v1/16GB/1TB/10TB/洛杉矶等多机房

上次部落分享过VirMach提供的End of Life Plans系列的VPS主机,最近他们又发布了DEDICATED MIGRATION SPECIALS产品,并提供6.5-7.5折优惠码,优惠后最低每月27.3美元起。同样的这些机器现在订购,将在2021年9月30日至2022年4月30日之间迁移,目前这些等待迁移机器可以在洛杉矶、达拉斯、亚特兰大、纽约、芝加哥等5个地区机房开设,未来迁移的时...

乌云数据(10/月),香港cera 1核1G 10M带宽/美国cera 8核8G10M

乌云数据主营高性价比国内外云服务器,物理机,本着机器为主服务为辅的运营理念,将客户的体验放在第一位,提供性价比最高的云服务器,帮助各位站长上云,同时我们深知新人站长的不易,特此提供永久免费虚拟主机,已提供两年之久,帮助了上万名站长从零上云官网:https://wuvps.cn迎国庆豪礼一多款机型史上最低价,续费不加价 尽在wuvps.cn香港cera机房,香港沙田机房,超低延迟CN2线路地区CPU...

pacificrack:2021年七夕VPS特别促销,$13.14/年,2G内存/2核/60gSSD/1T流量,支持Windows

pacificrack官方在搞2021年七夕促销,两款便宜vps给的配置都是挺不错的,依旧是接入1Gbps带宽,KVM虚拟、纯SSD raid10阵列,支持包括Linux、Windows 7、10、server2003、2008、2012、2016、2019在内多种操作系统。本次促销的VPS请特别注意限制条件,见本文末尾!官方网站:https://pacificrack.com支持PayPal、支...

unicode编码转换为你推荐
支持ipad支持ipadphpweb破解忘记phpweb网站后台用户名密码,怎么找回破解重庆杨家坪猪肉摊主杀人在毫无预兆的情况下,对方激情杀人(持械偷袭)——作为习武者,你该怎么办?360免费建站我用的360免费建站,但自己买的一级域名要先备案,360不提供备案,我要怎么做才能把我的域名绑定网站啊?温州商标注册温州注册公司在哪里注册三五互联股票三五互联是干什么的?什么是通配符什么是直女癌?站点管理站点名称是什么意思独立访客访客数(UV)是什么意思
如何申请免费域名 187邮箱 windows主机 bluehost kddi 紫田 香港新世界电讯 服务器cpu性能排行 512m内存 地址大全 有益网络 免费美国空间 网购分享 沈阳主机托管 工信部网站备案查询 qq金券 广州主机托管 数据湾 沈阳idc 建站技术 更多