一,while 循环的结构:
'''
while 条件:
循环体
'''
1.当条件永远为真,则为死循环
2.判断条件:条件为真,进入循环体,循环体代码从上而下逐行执行到底部,返回 继续判断条件,周而复始
while True: #死循环 print('1') print('2') print('3') print('4')
3.标志位:flag
flag = True while flag: print('1') print('2') flag = False print('3') print('4')
例:while循环打印1,2,3,4...100
#方法1: flag = True count = 1 while flag: print(count) count = count + 1 if count == 101: flag = False
#方法2: count = 1 while count < 101: print(count) count = count + 1
4.break: 循环重视,只用遇到break 立马结束循环。
while True: print(111) print(222) break print(333) print(444) print(123)
例:利用break,while 计算1+2+3.....+100的结果
#方法1 count = 1 sum = 0 while count <= 100: sum = sum + count count += 1 print(sum)
#方法2 count = 1 sum = 0 while True: sum = sum + count count = count + 1 if count == 101: break print(sum)
#方法3 flag = True count = 1 sum = 0 while flag: sum = sum + count count += 1 if count == 101: flag = False print(sum)
5.continue:结束本次循环,继续下一次循环
while True: print(111) print(222) continue print(333)
6.while else 结构
# 如果while循环被break打断,则不执行else代码。 count = 1 while count < 5: print(count) count = count + 1 if count == 3: break else: print(666) print(222)
# 应用场景:
验证用户名密码,重新输入这个功能需要while循环。
无限次的显示页面,无限次的输入
二,格式化输出
制作一个模板,某些位置的参数是动态的,像这样,就需要用格式化输出。字符串的动态替换。
怎么实现:
name = input('请输入姓名:') age = int(input('请输入年龄:')) sex = input('请输入性别:') #% 占位符 s 数据类型为字符串 d 数字 #第一种方式: msg = '你的名字是%s,你的年龄%d,你的性别%s' % (name,age,sex) print(msg) #第二种方式 msg = '你的名字是%(name1)s,你的年龄%(age1)d,你的性别%(sex1)s' % {'name1':name,'age1':age,'sex1':sex} print(msg) #bug 点 在格式化输出中,只想单纯的表示一个%时,应该用%% 转意表示 msg = '我叫%s,今年%d,我的学习进度1%%' % ('王大锤',28) print(msg)
三,基本运算符:
算数运算:
+ 加:两个对象相加a - 减:得到负数或是一个数减去另一个数 * 乘:两个数相乘或是返回一个被重复若干次的字符串 / 除:x除以y % 取模:返回除法的余数 ** 幂:返回x的y次幂 // 取整除:返回商的整数部分
比较运算: == 等于:比较对象是否相等 != 不等于:比较两个对象是否不相等 <> 不等于:比较两个对象是否不相等 > 大于:返回x是否大于y < 小于:返回x是否小于y。所有比较运算符返回1表示真,返回-表示假,与True和False等价 >= 大于等于:返回x是否大于等于y <= 小于等于:返回x是否小于等于y
赋值运算: a = 1 赋值:数据1指向变量a a += 1 相当于 a = a + 1 a -= 1 相当于 a = a - 1 a *= 2 相当于 a = a * 2 a /= 2 相当于 a = a / 2 a %= 2 相当于 a = a % 2 a **= 2 相当于 a = a ** 2 a //= 2 相当于 a = a // 2
逻辑运算: and:布尔'与' or: 布尔'或' not: 布尔'非' 针对逻辑运算的进一步研究: 在没有()的情况下not 优先级高于 and,and优先级高于or,即优先级关系为()>not>and>or,同一优先级从左往右计算。 例: #第一种情况,前后条件为比较运算4 print(1 < 2 or 3 > 1) print(1 < 2 and 3 > 4) print(1 < 2 and 3 > 4 or 8 < 6 and 9 > 5 or 7 > 2) print(1 > 2 and 3 < 4 or 4 > 5 and 2 > 1 or 9 < 8) print(1 > 1 and 3 < 4 or 4 > 5 and 2 > 1 and 9 > 8 or 7 < 6) # 第二种情况,前后两边的条件为数值 ''' x or y if x is True,return x ''' print(1 or 2) print(1 and 2) print(5 or 2) print(5 and 2) print(0 or 2) print(-1 or 2) 补充: # int < -转换- > bool # 0 对应的bool值为False,非0 都是True. # True 1 ,False 0 print(bool(100)) print(bool(-1)) print(bool(0)) print(int(True)) print(int(False))
# 应用场景:
if while 等条件判断(数据库,Django orm Q查询)。
四,编码初识、
设备之间通信时,需要一个共用的密码本,记录明文与二进制的对应关系
python2解释器在加载 .py 文件中的代码时,会对内容进行编码(默认ascill),而python3对内容进行编码的默认为utf-8。
ASCII:最初版本的密码本:所有的英文字母,数字,特殊字符。是基于拉丁字母的一套电脑编码系统,
主要用于显示现代英语和其他西欧语言,其最多只能用 8 位来表示(一个字节),即:2**8 = 256,
所以,ASCII码最多只能表示 256 个符号。 一个字符 000 0001 8位 == 1个字节 对于ASCII码来说: 'hello laddy' 11个字符,11个字节。
Unicode(统一码、万国码、单一码)是一种在计算机上使用的字符编码。Unicode 是为了解决传统的
字符编码方案的局限而产生的,它为每种语言中的每个字符设定了统一并且唯一的二进制编码,规定虽有
的字符和符号最少由 16 位来表示(2个字节),即:2 **16 = 65536, 注:此处说的的是最少2个字节,可能更多。 浪费资源,占空间。 起初:1个字符 16位 2个字节表示。 改版:1个字符 32位 4个字节表示。
UTF-8,是对Unicode编码的压缩和优化,他不再使用最少使用2个字节,而是将所有的字符和符号进行
分类: 1.ascii码中的内容用1个字节保存、 2.欧洲的字符用2个字节保存, 3.东亚的字符用3个字节保存...
gbk:国标,只包含 中文,英文(英文字母,数字,特殊字符)
字母: 一个字节
中文: 两个字节
单位转换: 8 bit == 1 bytes 1024 bytes == 1 kb 1024 kb == 1 MB 1024 MB == 1 GB 1024 GB == 1 TB 1024 TB == 1 PB