1.1 用户交互
计算机发明有什么意义?
是为了奴役计算机 ATM自动取款机 取代柜员
1.1.1输入input
用户使用input输入的任何内容都会被存为字符串类型
input("请输入你的名字:") # input括号里面的文字只是在你输入的位置前面增加一个友好的提示,并没有实际意义
name = input("请输入你的名字:")
password = input("请输入你的密码:")
print("你的名字是:"+name)
print("你的密码是:"+password)
print(type(name))
print(type(password))
# 输出结果
请输入你的名字:星奕
请输入你的密码:123
你的名字是:星奕
你的密码是:123
<class 'str'>
<class 'str'>
注意:无论我们输入的值是数字类型还是字符串类型,input的接收值都是字符串类型
1.1.2 输出print
print 只有打印的作用,并无实际意义
print('hello world')
print('fisrt, second, qwsa') # 一次性输出多个值
print('100+200=',100+200)
hello world
fisrt, second, qwsa
100+200= 300
print('aaa')
print('bbb')
print('ccc')
print('aaa',end='')
print('bbb',end='&')
print('ccc',end='@')
aaa
bbb
ccc
aaabbb&ccc@
print本身有换行的作用,end参数'\n',end参数的值可以改为任意其他字符
1.2运算符
-
算术运算符
-
赋值运算符
-
比较运算符
-
逻辑运算符
-
成员运算符
-
身份运算符
-
运算符优先级
1.2.1 算术运算符
a = 10 b = 20
运算符 | 描述 | 实例 |
---|---|---|
+ | 加——两个数相加 | a + b 输出结果 30 |
- | 减——得到负数或是一个数减去另一个数 | a - b 输出结果 -10 |
* | 乘——两个数相乘或是返回一个被重复若干次的字符串 | a * b 输出结果 200 |
/ | 除——x 除以 y | b / a 输出结果 2 |
% | 取模——返回除法的余数 | b % a 输出结果 0 |
** | 幂——返回x的y次幂 | a**b为10的20次方,输出结果100000000000000000000 |
// | 取整数——返回商的整数部分(向下取整) | 9 // 2 ——>4 |
() | 小括号 | 提高运算符优先级,比如(1+2)*3 |
print(10+20) # 30
print(20-10) # 10
print(10*20) # 200
print(10**2) # 100
print(20/10) # 2.0
print(20%10) # 0
print(20//10) # 2
print(10/3) # 3.3333333333333335
print(10%3) # 1
print(10//3) # 3
1.2.2 赋值运算符
a = 20
b = 10
c = 200
运算符 | 描述 | 实例 |
---|---|---|
= | 简单的赋值运算符 | 把 = 号右边的结果 赋给 左边的变量 如:num = 1 + 2 * 3,结果num的值为? |
+= | 加法赋值运算符 | c += a 等效于 c = c + a |
-= | 减法赋值运算符 | c -= a 等效于 c = c - a |
*= | 乘法赋值运算符 | c *= a 等效于 c = c * a |
/= | 除法赋值运算符 | c /= a 等效于 c = c / a |
%= | 取模赋值运算符 | c %= a 等效于 c = c % a |
**= | 幂赋值运算符 | c * *= a 等效于 c = c ** a |
//= | 取整数赋值运算符 | c //= a 等效于 c = c // a |
1.2.3 比较运算符
返回出来的都是bool类型
a = 10
b = 20
运算符 | 描述 | 实例 |
---|---|---|
== | 等于 -- 比较对象是否相等 | (a == b) 返回 False |
!= | 不等于--比较两个对象是否不相等 | (a != b) 返回 True |
> | 大于--返回x是否大于y | (a > b) 返回 False |
< | 小于--返回x是否小于y | (a < b) 返回True |
>= | 大于或者等于--返回x是否大于等于y | (a >= b) 返回 False |
<= | 小于或者等于--返回x是否小于等于y | (a <= b) 返回 True |
a = 10
b = 20
print(a == b)
print(a != b)
print(a > b)
print(a < b)
print(a >= b)
print(a <= b)
False
True
False
True
False
True
# 所有的比较运算符返回True(1)表示真,返回False(0)表示假
注意:True和False的首字母为大写
1.2.4 逻辑运算符
p为真命题,q为假命题,那么p且q为假,p或q为真,非q为真
and or not(全部是小写字母)
a = 10 b = 20
逻辑运算符 | 含义 | 基本格式 | 说明 |
---|---|---|---|
and | 逻辑与运算,等价于数学中的”且“ | a and b | 当a和b两个表达式都为真时,a and b 的结果才为真,否则为假 |
or | 逻辑或运算,等价于数学中的”或“ | a or b | 当 a 和 b两个表达式都为假时,a or b 的结果才是假,否则为真 |
not | 逻辑非运算,等价于数学中的”非“ | not a | 如果 a 为真,那么not a的结果为假;如果 a 为假,那么not a的结果为真,相当于对 a 取反 |
a = 14 > 6 # True 成立
b = 45 > 90 # False 不成立
print(a and b) # False
print(a or b) # True
print(not a) # False
print(not b) # True
逻辑运算符的本质:对于and运算符,两边的值都为真时最终结果才为真,但是只要有一个值为假,那么最终结果就是假,所以python按照下面的规则执行and运算:
-
如果左边表达式的值为假,那么就不用计算右边表达式的值了,因为不管右边表达式的值是什么,都不会影响最终结果,最终结果都是假,此时and会把左边表达式的值作为最终结果
-
如果左边表达式的值为真,那么最终值是不能确定的,and会继续计算右边表达式的值,并且将右边表达式的值作为最终结果
对于or运算符,情况类似,两边的值都为假时最终结果才是假,只要其中有一个值为真,那么最终结果就是真,所以python按照下面的规则执行or运算:
-
如果左边表达式的值为真,那么就不用计算右边表达式的值了,因为不管右边表达式的值是什么,都不会影响最终结果,最终结果都为真,此时 or会把左边表达式的值作为最终结果
-
如果左边表达式的值为假,那么最终值是不能确定的,or会继续计算右边表达式的值,并且将右边表达式的值作为最终结果
1.2.5 成员运算符(in、not in)
是python独有的运算符,用于判断对象是否是某个集合的元素之一,并且他的运行速度非常快,他返回的结果是布尔值
运算符 | 描述 | 实例 |
---|---|---|
in | 如果在指定的序列中找到值返回True,否则返回False | a在animals序列中,如果a在animals序列中则返回True |
not in | 如果在指定的序列中没有找到值就返回True,否则返回False | a不在animals序列中,如果a不在animals序列中就返回True |
a = 'dog'
b = 'pig'
c = ['dog','cat','snake']
print(a in c) # in (包含的意思) True
print(b in c) # False
print(b not in c) # not in (不包含的意思) True
True
False
True
1.2.6 身份运算符(is, not is)
运算符 | 描述 | 实例 |
---|---|---|
is | is 是判断两个标识符是不是引用自一个对象 | a is b,类似id(a) == id(b),如果引用的是同一个对象则返回True,否则返回False |
is not | is not 是判断两个标识符是不是引用自不同的对象 | a is not b,类似id(a) ! = id(b),如果引用的不是同一个对象则返回结果True,否则返回False |
is比较的是本质(也就是内存地址)
==比较的是表面(也就是值)
id() 可以查看某个变量或者是对象的内存地址
a = 5
b = 5.0
c = 5
print(id(a)) # 140726186084144
print(id(b)) # 3031667514064
print(id(c)) # 140726186084144
print(a == b) # True
print(a is b) # False
print(a is c) # True
1.2.7 运算符的优先级
运算符说明 | Python运算符 | 优先级 | 结合性 |
---|---|---|---|
小括号 | ( ) | 19 | 无 |
乘方 | ** | 16 | 右 |
符号运算符 | +(正号)、-(负号) | 14 | 右 |
乘除 | *、/、//、% | 13 | 左 |
加减 | +、- | 12 | 左 |
比较运算符 | ==、!=、>、>=、<、<= | 7 | 左 |
is 运算符 | is、is not | 6 | 左 |
逻辑非 | not | 4 | 右 |
逻辑与 | and | 3 | 左 |
逻辑或 | or | 2 | 左 |
算术运算符优先级大于比较运算符 比较运算符优先级大于逻辑运算符 逻辑运算符内部三个优先级:not>and>or