Python入门指南学习笔记-2-一些语法特例
2017-07-19 本文已影响0人
肖恩顿
数学运算
注意整数,float
5/3 #1
5/3.0 #1.6666666666666667
5//3 # 1
5//3.0 # 1.0
除法 (/) 返回的类型取决于它的操作数。如果两个操作数都是 int,将采用 floor division 并返回一个 int。如果两个操作数中有一个是 float,将采用传统的除法并返回一个 float。还提供 // 运算符用于 floor division 而无论操作数是什么类型。
字符串
字符串相乘
>>> print "*"*5 #*****
使用r前缀对字符串转义
>>> print 'C:\some\name'
C:\some
ame
>>> print r'C:\some\name'
C:\some\name
string和unicode
str函数默认编码是ascii
>>> u"abc"
u'abc'
>>> str(u"abc")
'abc'
>>> u"木卫二"
u'\u6728\u536b\u4e8c'
>>> str(u"木卫二")
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
UnicodeEncodeError: 'ascii' codec can't encode characters in position 0- 2: ordinal not in range(128)
unicode和utf-8互转
>>> u"木卫二".encode("utf-8")
'\xe6\x9c\xa8\xe5\x8d\xab\xe4\xba\x8c'
>>> u"木卫二"
u'\u6728\u536b\u4e8c'
>>> unicode("\xe6\x9c\xa8\xe5\x8d\xab\xe4\xba\x8c","utf-8")
u'\u6728\u536b\u4e8c'
>>> '\xe6\x9c\xa8\xe5\x8d\xab\xe4\xba\x8c'.decode("utf-8")
u'\u6728\u536b\u4e8c'
>>> print u'\u6728\u536b\u4e8c'
木卫二
禁止换行输入出
用一个逗号结尾就可以禁止输出换行:
>>> a, b = 0, 1
>>> while b < 1000:
... print b,
... a, b = b, a+b
...
1 1 2 3 5 8 13 21 34 55 89 144 233 377 610 98
切片
字符串的切片,也是python比较特殊的语法,因为相关文章太多,本文不在详细介绍,只简单介绍下面2点。
复制字符串
>>> a="hello python"
>>> a[:]
'hello python'
按步长取值
>>> a="hello python"
>>> a[::2]
'hlopto'
>>> a[::3]
'hlph'
(注意,第一个元素一定会选中)