用户交互与格式化输出运算符
Python
本篇文章接着上一个文章继续介绍Python
-
Python基本的数据类型
-
与用户交互
-
格式化输出
-
基本运算符
-
多种赋值方式
-
逻辑运算符
-
成员运算符
-
身份运算符
1. Python基本数据类型
- 布尔值 (bool)
- 定义:用来判断事务的对错,是否可行,应用与流程控制中
- 布尔值只有两种状态
- True 真的,可行的,对的
- False 假的,不可行的,错的
- Python中所有的数据都是自带布尔值的,自带布尔值的数据有下列两种
- 布尔值默认为False的数据有:0 None '' [] {}
- 布尔值默认为True的数据有:一般除了上面的都是True
- 布尔值的变量名一般推荐使用is开头
# 代码实例 is_boo1f = False is_boolt = True
小知识:
在企业中一般说的数据库数据伪删除使用的就是类似这种判断逻辑。
# 代码实例
# 一般企业提供的账号注销功能就是使用布尔值判断逻辑
# 比如下列表格中 is_delete 字段0代表着账户存在,字段1代表账户被删除,其实只是修改李程序取值的逻辑,并未删除实际数据
id username password phone is_delete
1 jason 123 110 1
2 kevin 321 120 0
# 一般这种方式大多应用于数据库中
-
- 元组(tuple)
- 定义: 小括号括起来 内部存放多个数据值 数据值与数据值之间逗号隔 开 数据值可以是任何数据类型
- 被称为不可变列表,是因为元组内存放的地址不能修改
# 代码实例 # 列表与元组的对比 # 列表使用[]进行定义 l1 = [11, 22, 33] # 定义一个列表并赋值给l1 l1[0] = 123 # 使用重复赋值将123替换到l1列表的0号索引 print(l1[0]) # 这里发现最终打印的123,而不是11,所以列表值是可变的 123
列表修改数据图表参考如下

- 元组使用()定义
# 代码实例 t1 = (11, 22, 33) # 定义一个元组赋值给t1 t1[0] = 123 # 将123赋值到元组中的0号索引上 print(t1[0]) # 打印 TypeError: 'tuple' object does not support item assignment # 输出结果显示 ’tuple‘对象不支持分配 # 由此可以发现tuple的类型是无法使用从新赋值的方式进行修改的 # 注意,元组只是绑定元组里的索引和直接数据,如果对应的数据是列表,还是可以对列表的数据进行修改 t1 = (11, 22, [111, 222]) t1[2][1] = 666 print(t1) (11, 22, [111, 666]) # 原理图如下

-
集合set
- 集合只能用于去重和关系运算
- 集合内的数据只能是不可变类型
- 集合的代码定义:大括号括起来,内部存放多个数据值并使用逗号分隔,注意,这里的数据值不是k:v键值对
# 代码实例 # 这里需要注意,使用{}定义集合,如果数据为空默认为字典,如果需要定义空集合使用 set()定义 s1 = set() # 空集合 sl = {1, 2, 3, 4}
2. 与用户交互
- 定义: 原本存在人类社会中的交互场景在计算机中用代码的方式实现
- 关键字
input 获取用户输入,用户输入的所有数据将会被统一处理为字符串# 代码实例 username = input('请输入您的名字>>:') # 这里先执行input来记录用户输入的信息,然后将用户输入的数据赋值给username变量名,在后续程序中就可以调用变量名来获取用户信息 print 输出内部信息,print的括号内可以存放数据值和变量名,并且支持多个,使用逗号隔开即可 print 自带换行符 换行符:\r\n \n print 切换换行符 ```python print(data, end='\n') # 默认是\n可以更改为其他
- 关键字
注意:
python2和python3 input和print的区别
- python2中input
input方法需要用户自己提前指定数据类型
raw_input方法和python中的input一致,会将所有输入统一转换为字符串
- python2中print
可以直接使用python data 或 python(data)的方式来打印数据
3. 格式化输出
-
定义: 提前将需要的内容定义好,后续程序方便调用
现实中的合同就比较类似于格式化输出,我们只需要签字就可以了- python中的常见占位符 %s和%d
- %s 支持字符串,常见的数据类型都是支持的
- %d 只支持数字,只能支持数字
# 代码实例 # 单个换行符的使用 info = '%s同学你好' print(info % 'wesley1') print('%s老铁你好' % 'wesley') print(info % ('wesley', )) print('%s老铁来了' % ('wesley', )) # 多个占位符的使用 # 多个站位符的使用,这里需要注意占位符和数据应该对应 str_1 = '姓名:%s 年龄:%s 爱好:%s' print(str_1 % ('wesley', 18, '写代码')) print('姓名:%s 年龄:%s 爱好:%s' % ('wesley', 18, '写代码')) # %d 占位符的使用 info = '同学你好,你的年纪是%d岁吗?' print(info % (18)) print('同学你好,你的年纪是%d吗?' % (18, )) # 设定数据的长度 int_1 = 123 print('%08d' % int_1) print('%08d' % 123)
- python中的常见占位符 %s和%d
4. 基本运算符
- 数学运算符 ( + - * / % // **)
| 变量(n = 10) | 赋值符号 | 等价 |
|---|---|---|
| n | += | n = n + 1 |
| n | -= | n = n - 1 |
| n | *= | n = n * 1 |
| n | /= | n = n / 1 |
| n | //= | n = n // 1 |
| n | %= | n = n % 1 |
| n | **= | n = n ** 1 |
- 比较运算符
| < | 小于 |
|---|---|
| > | 大于 |
| <= | 小于等于 |
| >= | 大于等于 |
| == | 等号 |
| != | 不等于 |
5. 多种赋值方式
-
链式赋值
# 正常的变量赋值 name = 'wesley' name1 = name name2 = name1 print(name2) # 链式赋值 name3 = name4 = name5 = 'Jinke' print(name5) -
交叉赋值
n = 100 m = 999 # 方式一,使用之间变量 a = n n = m m = a print(n, m) n, m = m, n print(n, m) -
解压赋值
解压赋值在使用的时候,正常情况下需要保证左边的变量名和右边的数据值保持数量一致
使用语法 name1, name2, name3, name4 = name_list# 代码实例 name_list = ['jason', 'kevin', 'tony', 'wesley'] name1, *b, name4 = name_list print(*b, name1, name4) # 当数据量太大的时候之间的数据可以使用*_代替 name1, *_, name4 = name_list print(name1, name4)
6. 逻辑运算符
-
逻辑运算符
运算符 解释 and 使用and链接的条件必须全部成立 or 使用or链接的条件只需要成立一个 Not 使用not,真就是假,假就是真,取反 and的使用
使用and链接的条件全部需要成立
如果and左边的条件是成立的 那么就完全取决于右边的条件
右边如果直接是数据值 那么结果就是该数据值 如果是含有表达式 则为布尔值print(1 < 10 and 5 < 6) # 条件成立结果是True print(1 < 10 and 5 > 6) # 条件不成立结果为False print(1 < 10 and 666 ) # 条件成立结果为666,非比较运算符的结果会以数据本身的结果打印or的使用
print(1 < 10 or 666) # 左边条件成立结果为True print(666 or 1 > 10) # 左边条件成立结果为666 print(0 or False) # 0的默认值为False,两边结果到位False,结果不成立 print(0 or 111) # 左边不成立,右边成立,结果为111not的使用
取反,非 print(not 666) # 条件成立,取反结果为False print(not False) # 条件不成立,取反结果为False三者混合使用的时候有优先级之分 但是我们不需要记忆优先级 应该通过代码的形式提前规定好优先级
先乘除有加减 但是可以使用括号来改变优先级
(3>4 and 4>3) or ((1==3 and 'x' == 'x') or 3 >3)
7. 成员运算符
- 定义:成员运算符是用于判断个体是否在群体内
# 代码实例 # 定义一个列表 name_list = ['li', 'wang', 'liu', 'zhang'] print('li' in name_list) # 判断li是不是在这个列表中,在,结果为True print('jiu' in name_list) # 判断jiu是不是在这个列表中,不在,结果为False print('l' in name_list) # 判断l在不在这个列表中,不在,结果为False,这里不在的原因是最小单位不是一个字符,是列表中一个最小单元(数据值),同理在字典中使用,只能对k进行判断
8. 身份运算符
- 定义: 身份运算符的主要作用是判断内存地址是否下相同
值相同 内存地址可能不同,内存地址相同 值肯定相同- is 判断内存地址是否相同
- == 判断数据值是否相同
# 代码实例 l1 = [11, 22, 33, 44, 55, 66, 77, 88] l2 = [11, 22, 33, 44, 55, 66, 77, 88] print(l1 == l2) # 使用==判断数据值是否相同,相同结果为True print(l1 is l2) # 使用is判断内存地址是否相同,不同结果为False print(id(l1)) # 使用id()查看l1的内存地址4381014848 print(id(l2)) # 使用id()查看l2的内存地址4381017280

浙公网安备 33010602011771号