数的运算
整除运算
丢弃小数部分,可使用双斜杠//。
>>>1 // 2
0
>>>1 // 1
1
>>>5.0 // 2.4
2.0
>>>10 // -3
-4
>>>-10 // 3
-4
>>> -10 // -3
3
如果使用的是python 2.x 进行除法,要在开头添加:
>>> from _future_ import division
求余(求模)运算%
x%y等价于 x-((x // y)*y)
>>> 10 % 3
1
>>>9 % 3
0
>>>2.75 % 0.5
0.25
>>>10 % -3
-2
>>>-10 % 3
2
>>>-10 % -3
-1
乘方(求幂)运算
>>>2 ** 3
8
>>>-3 ** 2
-9
>>>(-3) ** 2
9
或者
>>>pow(2,3)
8
十六进制0x,八进制0o,二进制0b。
>>>0xAF
175
>>>0o10
8
>>>0b1011010010
722
变量
使用python变量前必须赋值,python变量没有默认值。
变量名(标识符):字母、数字、下划线组成,不能数字开头。
语句
根本特征:执行修改操作
如赋值语句修改变量,print修改屏幕
在python2.x中,print是一条语句,无需将要打印的内容作为参数放在括号中。
input 获取用户输入
if 条件:执行语句
函数
内置函数
pow(x,y[,z])(x的y次方对z求模),round(取最接近的整数,相等距离取偶数)
bytes(string,encoding[,errors])(对指定字符串进行编码,并以指定方式处理错误)
两种模块导入方法
1 import导入模块,module.function使用函数
>>>import math
>>>math.floor(32.9)
32
2 from module import function
>>>from math import sqrt
>>>sqrt(9)\
3
可使用变量来引用函数,简化代码
foo = math.sqrt
foo(4)
相当于math.sqrt(4)
cmath和复数
复数=实部+虚部
python没有专门的虚数定义,把虚数看成实部为零的复数。
复数虚数运算定义:-1的平方根为1j
>>>(1 + 3j)* (9 + 4j)
(-3 + 31j)
当sqrt用于负数时,其结果为复数,用math中的sqrt会报错
>>>from math import sqrt
>>>sqrt(-1)
ValueError: math domain error
或
nan(非数值)
改用cmath中的sqrt:
>>>import cmath
>>>cmath.sqrt(-1)
1j
*如果使用了from…import…这种模块导入法导入cmath中的sqrt,math中的常规函数sqrt将无法使用,还有很多类似的隐形冲突,所以尽量用import function这种导入方法。
几种字符转义方法
1.巧用单双引号,当句子中有‘ ’时,最外围用“”,反之亦然。
2.反斜杠 ’\ ‘
>>>"\"hello,world!\",she said"
'"hello,world!",she said'
3.特殊拼接字符串
>>>"let's say" ' "hello,world" '
'let\'s say "hello,world" '
4.通用拼接字符串
>>>"hello," + "world"
'hello,world'
使用print和不使用print的区别
>>>"hello,world!"
'hello,world!'
>>>print("hello,world!")
hello,world!
加入换行符比较:
>>>"hello,\nworld!"
'hello,\nworld!'
>>>print("hello,\nworld!")
hello,
world!
使用repr和str的区别
repr:获得值的合法python表达式
str:以合理方式转换为用户看得懂的字符串
>>>print(repr("hello,\nworld"))
'hello,\nworld'(相当于去掉print的情况)
>>>print(str("hello,\nworld!"))
hello,
world
5.长字符串
表示跨越多行的字符串,可使用三引号"""或’’’
>>>print("""hioafi'hpoa,ef
af"earf"fa
wE'Fef""")
长字符串中可以包括" "和' ',无需反斜杠转义。
常规字符串也可以跨越多行,只要结尾加上‘\’
>>>print("hello,\
world!")
hello,world
这在表达式和语句中同样适用:
>>>1+2+\
4+5
12
>>>print \
("hello,world!")
hello,world
6.原始字符串r
>>>path = 'C:\nowhere'
>>>path
C:\nowhere
>>>print(path)
C:
owhere
这个例子加上反斜杠转义就能解决
但是如果路径特别长,岂不是要加大量的反斜杠?
这种情况,可以使用原始字符串r:
原始字符串不会对反斜杠进行处理,而是每个字符都保持原样。原始字符串可以用单、双或者三引号括起来。
>>>print(r'C:\nowhere')
C:\nowhere
>>>print(r"C:\Program Files\fnord\foo\bar\baz\frozz\bazz")
C:\Program Files\fnord\foo\bar\baz\frozz\bazz
*原始字符串不能以单个反斜杠结尾
>>>print(r"hello\")
SyntaxErroe: EOL while scanning string literal
最后的引号被转义,引号不成对