目录
一、关于Python的输入
1、input()函数
众所周知,我们在Python中想输入数据赋给变量时,需要用到input()函数,例如:
name = input()
在上面的代码中,“name”为变量,“=”为赋值运算符,“input()函数”为输入函数。
在默认情况下,无论我们在终端输入的是什么,整数也好字符串也好,它最终返回的类型均为字符串类型。因此,如果想要让我们的变量赋到整数型数据or浮点型数据,我们需要在源头进行转换:
age = int(input())
weight = float(input())
当然,如果想在终端输入时有问题引导,我们可以在input()中用引号进行输入补充,例如:
a = input('How do you do?')
>> How do you do?
之后,我们可以在问号后面,继续输入内容
2、sys.stdin.readline() 方法
在使用sys.stdin.readline()前,我们需要先导入Python的内置模块sys。同input()有着同样输入功能的是sys.stdin.readline(),它同input()一样默认返回字符串,因此,同样适用强制类型转换的方法。与input()不同的点在于,sys.stdin.readline()会将标准输入全部获取,包括末尾的'\n' ,因此我们可以将它与strip()一起使用,在某些时候以此来将末尾不必要的换行符去掉:
import sys
a = sys.stdin.readline().strip('\n')
值得一提的是,既然sys.stdin.readline()和input()有着相同的功能那我们为什么还要多花时间去写更长且自带麻烦 '\n' 的sys.stdin.readline()呢?在一些情况下(说不准)sys.stdin.readline()输入的速度比input()更快,尤其是在输入量比较大的时候,sys.stdin.readline的输入速度比input要快很多。
更多输入的相关内容,可移步http://t.csdn.cn/OdpNvhttp://t.csdn.cn/OdpNv
二、关于运算符
1、算术运算符
常见的就是 +,-,*,/ 四种运算符,值得注意的是变量在除'/'后的类型变换:
a = 10
print(type(a))
a /= 3
print(type(a))
>> <class 'int'>
>> <class 'float'>
除此之外还有幂运算' ** ', 整除运算' // ', 取余运算' % '
需要注意的点是在整除运算中,除数和被除数在一正一负的前提下,需要向下取整:
print(10 // 3)
print(16 // -5)
print(-7 // 2)
>> 3
>> -4
>> -4
在取余运算中 ,遇到一正一负进行计算的情况下,如果手动计算,则需按照 余数 = 被除数 - 除数 * 商 公式进行,
print(9 % 4)
print(9 % -4)
>> 1
>> -3
2、赋值运算符
执行顺序:右 → 左
支持链式赋值 → a = b = c = 10
支持参数赋值 → +=、-=、*=、/=,//=,%=
支持系列解包赋值 → a, b, c = 3, 6, 9
支持交换变量值 → a, b = b, a
3、比较运算符
对变量或者表达式的结果进行大小or真假等的比较,常见的比较运算符有:
>,<,>=,<=,!=,==,is,is not
比较运算符的结果为bool类型
a, b = 4, 59
print('a > b吗?', a > b)
print('a <= b吗?', a <= b)
print('a == b吗?', a == b)
>> a > b吗? False
>> a <= b吗? True
>> a == b吗? False
4、布尔运算符
常见的布尔运算符有:
and,or,not,in,not in
a, b = 1, 2
print(a == 1 and b == 2)
print(a > 2 and b == 2)
print(a <= 1 or b >= 2)
print(a > 1 or b == 2)
f1 = True
f2 = False
print(not f1)
print(not f2)
>> True
>> False
>> True
>> True
>> False
>> True
5、位运算符
作用:将数据转成二进制进行计算
位与 &:对应数位都是1,结果才为1,否则为0
位或 |:对应数位都是0,结果才为0,否则为1
左移位运算符 <<:高位溢出则舍弃,低位补0
右移位运算符 >>:低位溢出则舍弃,高位补0
print(4 & 8)
print(4 << 1)
print(4 >> 1)
print(4 | 8)
print(4 << 2)
print(4 >> 2)
>> 0
>> 8
>> 2
>> 12
>> 16
>> 1
6、运算符的优先级
() > 算术 > 位 > 比较 > 布尔 > 赋值