Python学习2020/10/3

一、运算符

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'

猜你喜欢

转载自blog.csdn.net/qq_51256753/article/details/108910753