目录
- Python中的用户交互
- 获取用户输入
- 输出内部数据
- 格式化输出
- 基本运算符
- 算术运算符
- 比较运算符
- 逻辑运算符
- 成员运算符、身份运算符
Python中的用户交互
古时候,我们去银行取钱,需要有一个银行业务员等着我们把自己的账号密码输入给他,然后他去进行验证,成功后,我们再将取款金额输入/告诉他骄傲的现代人,会为客户提供一台ATM机(就是一台计算机),让ATM机跟用户交互,从而取代人力。然而机器是死的,我们必须为其编写程序来运行,这就要求我们的编程语言中能够有一种能与用户交互,接收用户输入数据的机制。
在Python中能够实现用户交互就要实现“获取用户输入”和“输出内部数据”。
获取用户输入
# Python提供了一个非常有用的输入函数:input函数。可以获取用户通过键盘的输入
username = input("请输入您的用户名:")
'''
input获取到的用户输入的内容都会转成字符串类型
'''
输出内部数据
# python实现输出数据使用函数:print()
print(username)
编写方式
方式1 先写print括号内写需要打印的东西
方式2 先写需要打印的东西之后使用句点符跟print之后tab键即可
'''
括号内还支持一次性打印多个数据 逗号隔开即可
eg:print(name,age,year)
'''
格式化输出
我们在平时生活中就能遇见很多格式化输出的内容,比如我们在月底收到手机提示当月花费的花销和剩余的短信就是利用了格式化输出,这样能够很快的实现多用户发送,提高效率。
# 提前定义好模板,之后修改特定的区域即可
'亲爱的xxx,你好!你xxx月的话费是xxx,余额是xxx'
# s = '亲爱的%s你好!你%s月的话费是%s,余额是%s'
# print(s % ('jason', 2, 100, 99999999))
# print(s % ('tony', 2, 800, -99))
# print(s % ('kevin', 2, 88, 10))
username = input('username>>>:')
age = input('age>>>:')
print('my name is %s my age is %s' % (username, age))
占位符的作用:占位符的作用主要是用来传递参数值,因为数值是变量,因此可以在预留一个占位符,在程序执行时,再把值传递到此处,做格式化输出。
"""占位符:%s %d"""
%s可以给任意数据占位
%d只能给数字占位
print('%08d' % 111) # 00000111
print('%08d' % 2) # 00000002
'''
08d:8是规定了输出的位数,0是如果位数达不到要求的就用0在前面不上
'''
基本运算符
在Python中也是存在运算符的,是执行程序代码运算的。
算术运算符
名称 | 符合 | 例子 | 结果 |
加 | + | a = 1 + 1 | a = 2 |
减 | - | a = 5 - 3 | a = 2 |
乘 | * | a = 2 * 2 | a = 4 |
除 | / | a = 5 / 4 | a = 1.25 |
整除 | // | a = 6 // 5 | a = 1 |
取余 | % | a = 7 % 5 | a = 2 |
比较运算符
名称 | 符合 | 例子 | 结果 |
大于 | > | 5 > 3 | True |
小于 | < | 5 < 3 | False |
等于 | == | 1 == 2 | False |
大于等于 | >= | 5 >= 3 | True |
小于等于 | <= | 5 <= 3 | False |
不等于 | != | 5 != 3 | True |
Python语法中除了有=号这种简单的赋值运算外,还支持增量赋值、链式赋值、交叉赋值、解压赋值,这些赋值运算符存在的意义都是为了让我们的代码看起来更加精简。
- 增量赋值
x += 100 # x = x + 100
x -= 100 # x = x - 100
x *= 100 # x = x * 100
x /= 100 # x = x / 100
- 链式赋值
x = 100
y = x
z = x
# 简化
x = y = z = 100
- 交叉赋值
在很多编程语言中交换两个数值时,通常引入第三个变量进行交换,在Python中也可以,具体如下:
x = 10
y = 14
# 交换x,y两个数
z = x
x = y
y = z
print(x,4) # 结果 14 10
在python中,也可以交叉赋值:(推荐)
x = 10
y = 22
x, y = y, x
print(x, y) # 结果 22 10
- 解压赋值
datas = ['早安',173,150,(2001,12,7)]
name,height,weight,birthday = datas
print(name,height,weight,birthday) #结果 早安 173 150 (2001, 12, 7)
"""
1.正常情况下 左右两边的变量名和值个数要相等
2.也可以打破个数限制
"""
l1 = [11, 22, 33, 44, 55, 66, 77, 88, 99]
a, b, *_ = l1
print(a, b, _) # 11 22 [33, 44, 55, 66, 77, 88, 99]
a, *_, b = l1
print(a, b, _) # 11 99 [22, 33, 44, 55, 66, 77, 88]
"""
单独的下划线作为变量名 意思是为了符合语法 但是指向的值用不到
逻辑运算符
Python中想要编写一下含有逻辑的程序,就必须用到逻辑运算符去实现程序员的思维逻辑。Python中的逻辑运算符有and,or和not。
- and >>> 与
连接多个条件必须都满足 结果才是True
# 例子
a = 2 > 1 and 1 != 1 and True and 3 > 2
print(a) # 结果 False
b = 2 > 1 and 1 == 1 and 1 < 3
print(b) # 结果 True
- or >>> 或
连接多个条件只要有一个满足 结果就是True
# 例子
a = 2 > 1 or 1 != 1 or True or 3 > 2
print(a) # 结果 True
b = 2 < 1 or 1 != 1 or 1 > 3
print(b) # 结果 False
- not >>> 非
将条件翻转 True变为False False变为True
# 例子
a = 1 > 2
print(a) # 结果 False
print(not a) # 结果 True
PS:三者混合使用的时候是有优先级的 但是我们不需要记
应该人为的在编写初期就强制规定好顺序。
例子:(3>4 and 4>3) or ((1==3 and 'x' == 'x') or 3 >3)。
成员运算符、身份运算符
Python还支持成员运算符,成员运算的作用作用是判断一个元素是否存在于一个包含很多元素的数据中。
- 成员运算
运算符 | 描述 | 实例 |
in | 如果在指定的序列中找到值返回 True,否则返回 False。 | x 在 y 序列中 , 如果 x 在 y 序列中返回 True。 |
not in | 如果在指定的序列中没有找到值返回 True,否则返回 False。 | x 不在 y 序列中 , 如果 x 不在 y 序列中返回 True。 |
# 代码实例
A_list = [1,2,3,4,5]
print(1 in A_list) # 结果 True
print(6 in A_list) # 结果 False
print(1 not in A_list) # 结果 False
print(6 not in A_list) # 结果 True
身份运算符用于比较两个对象的存储单元,需要强调的是:==双等号比较的是value是否相等,而is比较的是id是否相等。
- 身份运算符
运算符 | 描述 | 实例 |
is | 判断左右两个对象内存地址是否相等 | x is y, 类似 id(x) == id(y) , 如果引用的是同一个内存地址则返回 True,否则返回 False |
is not | 判断左右两个对象内存地址是否不相等 | x is not y , 类似 id(a) != id(b),如果引用的不是同一个内存地址则返回结果 True,否则返回 False |
# 1. id相同,内存地址必定相同,意味着type和value必定相同
# 2. value相同type肯定相同,但id可能不同,如下
>>> x='Info Tony:18'
>>> y='Info Tony:18'
>>> id(x),id(y) # x与y的id不同,但是二者的值相同
(4327422640, 4327422256)
>>> x == y # 等号比较的是value
True
>>> type(x),type(y) # 值相同type肯定相同
(<class 'str'>, <class 'str'>)
>>> x is y # is比较的是id,x与y的值相等但id可以不同
False