一、运算符
1.算术运算符
+ - * / 取整// 求幂** 取模(求余)%
*
数值型数据:乘法;
序列类型:对内容进行重复
>>> 2*3
6
>>> 'ab'*5
'ababababab'
/
Python2.x中两个数据中只要有浮点数,结果就为浮点数
Python3.x中结果全为浮点数
>>> 3/2
1.5
>>> 3.5/2
1.75
//:除法取商
>>> 3.0//5
0.0
>>> 3//5
0
>>> 12/5
2.4
>>> 12//5.0
2.0
%:除法取余数
>>> 5%3
2
>>> -5%3
1
>>> 5%-3
-1
>>> 10.5%2.1 #有误差
2.0999999999999996
**:
>>> 2**3
8
>>> 4*3**2 #先乘方再乘法
36
2.赋值运算符
单变量
变量=表达式
>>> y=2
>>> x=(y+2)/5
>>> x
0.8
多变量
链式赋值:将同一个值赋给多个变量
>>> x=y=5
>>> x
5
>>> y
5
并行赋值:
变量1,变量2,…,变量n=表达式1,表达式2,…,表达式n
等号右边执行过程:从左至右
>>> x,y,z=1,3,5
>>> x,x=1,2
>>> x
2
交换数据:x,y=y,x
复合的赋值运算符
+= -= *= /= //= **= %=
>>= <<= &= |= ^=
a+=3等价于a=a+3
a*=a+3等价于a=a*(a+3)
3.关系运算符
> >= < <= (优先级高) == !=(优先级低)
结合方向:自左向右
关系表达式
<表达式>关系运算符<表达式>
注意符号区别"=“与”=="
>>> x,y,z=2,3,5
>>> x<y
True
>>> z<y
False
>>> x<y<z
True
浮点数进行一系列运算可能会发生四舍五入的情况,如:
>>> x=123456
>>> y=-111111
>>> z=1.2345678
>>> a=(x+y)+z
>>> b=x+(y+z)
>>> a
12346.2345678
>>> b
12346.234567799998
实数比较
可通过绝对误差(或相对误差)的形式给出,写为:
>>> a==b
False
>>> import math
>>> math.fabs(a-b)<0.0000001
True
关系运算符链
即关系运算符连用
>>> x=5
>>> 0<=x<=10
True
>>> 0<=x<=3
False
4.逻辑运算符
and:逻辑与:均真为真,否则为假(双目、三目运算)
or:逻辑或:均假为假,否则为真
not:逻辑非:与表达式相反(单目运算)
优先级:非>与>或
求值原则:从左向右(第一个表达式能决定结果的,不再计算后面的表达式)
例子:判断字符变量ch是否是
(1)数字字符:
ch>=‘0’ and ch<=‘9’
(2)英文字母:
(ch>=‘A’ and ch<=‘Z’) or (ch>=‘a’ and ch<=‘z’)
判断整形变量x是否在0到100之间:
x>=0 and x<=100
0<=x<=100
5.成员运算符
in 和 not in
判断某一个元素是否在某一个序列中,或者判断一个字符是否属于某个字符串等,运算结果为True或False
左结合
>>> 'a'in'abcd'
True
>>> 'ac'in'abcd'
False
>>> 'ab'in'abcd'
True
>>> 3 not in [1,2,3,4]
False
6.同一运算符
is 和 is not
用于测试两个变量是否指向同一个对象(id是否相同),其运算结果为逻辑值
左结合
is与==的区别:==用来比较判断两个对象的值是否相等;is比较判断的是对象间的唯一身份标识
浮点数:
>>> x=y=3.5
>>> z=3.5
>>> x is y
True
>>> x is z
False
整数:(Why?)
>>> x=y=1
>>> z=1
>> x is y
True
>>> x is z
True
二、输入与输出
1.标准输入输出(IO)
①一般一个程序分三步进行:输入原始数据、进行计算处理、输出运算结果
②标准输入输出指利用键盘输入输出
1.1标准输入input()
一般格式:input([提示字符串])
1.1.1 Python2.x
①函数返回结果的类型由输入时使用的界定符来决定:
>>>x=input("Please enter your input:")
Please enter your input:5整数;'5'字符串;[1,2,3]列表;(1,2,3)元组
②提供raw_input()函数,将所有用户的输入都作为字符看待,返回字符串类型
5→'5';(1,2,3)→'(1,2,3)'
1.1.2 Python3.x
①仅保留了input()函数,接收任意输入,将所有输入默认为字符串处理
>>> x=input("Please enter your input:")
Please enter your input:5
>>> type(x)
<class 'str'>
>>> x=input("Please enter your input:")
Please enter your input:(1,2,3)
>>> type(x)
<class 'str'>
②如果要输入数值类型数据,可以使用类型转换函数将字符串转换为数值
>>> x=int(input("Please enter your input:"))
Please enter your input:5
>>> type(x)
<class 'int'>
③input()函数也可给多个变量赋值
>>> x,y=eval(input()) #等价于x,y=(3,4)
3,4
>>> x
3
>>> y
4
eval([字符串])功能:将字符串str当成有效的表达式来求值并返回计算结果
>>> x=5
>>> eval('3*x')
15
>>> eval('print(x)')
5
1.2标准输出
1.2.1 print()
Python3.x中使用print()函数输出(Python2.x中使用print语句输出)
print()函数的一般形式:
print([输出项1,输出项2,…,输出项n][,sep=分隔符][,end=结束符])
>>> x,y=2,3
>>> print(x,y)
2 3
>>> print(x,y,sep=':')
2:3
>>> print(x,y,sep=':',end='%')
2:3%
1.2.2 表达式
>>> str="hello"
>>> str
'hello'
>>> 2**4
16
2.格式化输出
print()函数可以按照指定的输出格式在屏幕上输出相应的数据信息
基本做法:将输出项格式化,然后使用表达式的形式或print()函数输出
2.1 字符串格式化%
格式控制字符串%(输出项1,输出项2,…,输出项n)
常规字符:包括可显示的字符和用转义字符表示的字符
格式控制符:决定所对应的输出项的格式,以%开头的一个或多个字符
>>> print("sum=%o"%123) #将123用八进制表示
sum=173
字母 | 格式 |
---|---|
d或i | 十进制格式 |
o | 八进制格式 |
x、X | 十六进制格式 |
c | 一个字符格式 |
s | 字符串格式 |
f | 实数格式 |
e、E | 指数格式 |
g、G | e和f中较短一种格式 |
一般形式:%[附加格式说明符]格式符
>>> value=8.123
>>> print('%6.2f'%value)#占6个列宽,2位小数,靠右对齐,左边空格
8.12
>>> print('%06.2f'%value)#占6个列宽,2位小数,靠右对齐,用0补足
008.12
>>> print('%-04X%2d'%(10,100))#10用16进制,占4个列宽,左对齐;100用十进制,占2个列宽,右对齐(100比2位多,不用补空格)
A 100
>>> print('%.2e'%1.2888)#将1.2888以指数形式输出,保留2位小数
1.29e+00
2.2 字符串的format方法
一般形式:
格式字符串.format()(输出项1,输出项2,…,输出项n)
其中,格式字符串一般形式为:
{[序号或键]:格式说明符}
2.2.1 "{序号}"形式
序号从0开始
>>> "{} {}".format("hello","world")
'hello world'
>>> "{0} {1}".format("hello","world")
'hello world'
>>> "{1}{0} {1}".format("hello","world")
'worldhello world'
2.2.1 "{序号:格式说明符}"形式
>>> "{0:.2f},{1}".format(3.1415926,100)
'3.14,100'
2.2.1 "{序号/键:格式说明符}"形式
>>> "{0},pi={x}".format("圆周率",x=3.14)
'圆周率,pi=3.14'