[ python ] 格式化输出、字符集、and/or/not 逻辑判断
格式化输出
%: 占位符
s: 字符串
d: 数字
%%: 表示一个%, 第一个%是用来转义
实例:
name = input('姓名:') age = int(input('年龄:')) print('我叫%s, 我的年龄:%d,我的学习进度3%%.' %(name, age)) # 执行结果: # 姓名:hkey # 年龄:20 # 我叫hkey, 我的年龄:20,我的学习进度3%.
初始编码
最初的编码是由美国提出,当时只规定了 ASCII码用来存储字母及符号,后来为了解决全球化文字的差异,创建了万国码:unicode
在 unicode中,
1个字节表示了所有的英文、特殊字符、数字等等;
一个中文需要 4个字节表示,32位 就很浪费。
后来,从 unicode 升级到 utf-8, UTF-8 是Unicode的实现方式之一
在 utf-8 中,一个文字用 3 个字节来存储。
00000001 8位bit == 1个字节(byte)
1byte 1024byte(字节) == 1KB
1KB 1024KB == 1MB
1MB 1024MB == 1GB
1GB 1024GB == 1TB
and or not 逻辑判断
判断优先级(重点):() > not > and > or
练习1: 判断下面返回结果 (提示:根据 () > not > and > or 来进行判断)
1,3>4 or 4<3 and 1==1 # 3>4 or False # False 2,1 < 2 and 3 < 4 or 1>2 # True or 1>2 # True 3,2 > 1 and 3 < 4 or 4 > 5 and 2 < 1 # True or False # True 4,1 > 2 and 3 < 4 or 4 > 5 and 2 > 1 or 9 < 8 # False or False or 9 < 8 # False 5,1 > 1 and 3 < 4 or 4 > 5 and 2 > 1 and 9 > 8 or 7 < 6 # False or False and 9 > 8 or 7 < 6 # False or False or 7 < 6 # False or False # False 6,not 2 > 1 and 3 < 4 or 4 > 5 and 2 > 1 and 9 > 8 or 7 < 6 # False and 3 < 4 or 4 > 5 and 2 > 1 and 9 > 8 or 7 < 6 # False or False and 9 > 8 or 7 < 6 # False or False or 7 < 6 # False or False # False
上面是条件判断,也可以直接进行数字的判断:
x or y x为非零,则返回x, 否则返回 y
print(1 or 2) # 1 print(3 or 2) # 3 print(0 or 2) # 2 print(0 or 100) # 100 当 or 前面的数字不为0的时候,则返回前面的数字; 当 or 前面的数字为0,则返回后面的数字。
x and y x为True,则返回y,与 or 正好相反
print(1 and 2) # 2 print(0 and 2) # 0 当 and 前面的数字非0,则返回后面的数字; 当 and 前面的数字为0,则返回0.
数字和布尔值之间的转换,遵循以下两条规则:
(1)数字转换为 bool值:非零转为bool值为:True;0 转换为bool值为:False
(2)bool值转换为数字:True 为:1; False 为 0
作业题:
1. 使用while循环输入1,2,3,4,5,6 8,9,10
2. 求 1-100 的所有数的和
3. 输出 1-100 的所有奇数
4. 输出 1-100 的所有偶数
5. 1-2+3-4+5 ...99的所有数的和
6. 用户登录(三次机会重试)
#!/usr/bin/python3 # -*- coding: utf-8 -*- # Author: hkey # 作业题: # 1. 使用while循环输入1,2,3,4,5,6 8,9,10 count = 0 while count < 10: count += 1 # 等价于 count = count + 1 if count == 7: continue # continue 结束本次循环,开始下一次循环,continue 以下的代码都不再执行 print(count) # 2. 求 1-100 的所有数的和 num = 0 for i in range(1, 101): # range取一个范围 1, 100的所有数字,通过for循环遍历相加 num += i print(num) # 3. 输出 1-100 的所有奇数 print(list(range(1, 101, 2))) # 4. 输出 1-100 的所有偶数 print(list(range(2, 101, 2))) # 5. 1-2+3-4+5 ...99的所有数的和 sum = 0 count = 1 while count < 100: if count % 2: # count 对 2取余如果为 0 则该条件不成立,说明 count 为偶数,count 对 2取余如果不为 0 则该条件成立,说明 count 为奇数 sum += count # 奇数做加法 else: sum -= count # 偶数做减法 count += 1 print(sum) # 总结: # 在bool值中,0 None 空 为 False,其他都为 True # 6. 用户登录(三次机会重试) count = 0 while True: user = input('username:') pwd = input('password:') if user == 'admin' and pwd == '123': print('登录成功.') break else: print('用户名密码不正确,请重试。') count += 1 if count == 3: print('登录验证超过三次,登录失败.') break