一、while 循环
循环的结构:
while 条件:
循环体
原理:代码从上往下执行,判断while条件,条件为真则进入循环体,循环体代码执行到底部,返回继续判断条件,条件为真继续执行循环体,直至条件为false跳出循环
终止循环:
1.改变条件(设置标志位)
#计算1-100的总和 sum = 0 count = 1 flag = True while flag: sum = sum + count count = count + 1 if count == 101: flag = False print(sum)
2.关键字 break
循环中只要遇到break,立即结束循环
#计算1-100的总和 sum = 0 count = 1 while True: sum += count count += 1 if count > 100: break print(sum)
continue 关键字
结束本次循环,继续下一次的循环
原理:循环体到continue,下面循环体的代码不执行,直接跳到 判断while条件
count = 0 while count < 5: count += 1; if count == 3: continue print(count)
while else 结构
while执行完会执行else的代码,如果while循环被break打断,则不执行else的代码
count = 1 i = 'intel' while count < 5: print(i) count += 1 if count == 3:break else: print("yes!") print("AMD YES!")
while循环的应用场景
①验证用户名密码,重新输入这个功能需要while循环。
②无限次的显示页面,无限次的输入......
二、格式化输出
格式化输出相当于制作一个模板,某些位置的参数是动态的
字符串的动态替换:
%占位符
%s 字符串占位符
%d 数字占位符
# 元组格式的占位符 name = input("请输入您的姓名:") age = int(input("请输入您的年龄:")) sex = input("请输入您的性别:") msg="""您的姓名是%s, 您的年龄是%d, 您的性别是%s """ % (name,age,sex) print(msg)
# 字典格式的占位符 name = "小明" age = 20 print("我叫%(name)s,今年%(age)d岁。" %{'name' : name , 'age' : age } )
在格式化输出中,只表示%时,用%%表示
# 单纯表示%号 name = "王大锤" print("我叫%s,今天学习的内容掌握了99%%" % name)
三、运算符
基本运算符
+ 加
- 减
* 乘
/ 除
% 取模
** 幂
// 取整除
a = 10 b = 20 print("a + b =", a + b) print("a - b =", a - b) print("a * b =", a * b) print("b / a =", b / a) print("b % a =", b % a) print("b^a=", b ** a) print("b // a =", b // a)
#结果 a + b = 30 a - b = -10 a * b = 200 b / a = 2.0 b % a = 0 b^a= 10240000000000 b // a = 2
比较运算符
== 两边是否相等
!= 两边是否不相等
> 大于
< 小于
>= 大于等于
<= 小于等于
c = 5 d = 6 print("c和d是否相等:", c == d) print("c和d是否不相等:", c != d) # print("c和d是否不相等", c <> d) 3.6版本已经不支持<>,不等于用 != print("c是否大于d:", c > d) print("c是否小于d:", c < d) print("c是否大于等于d:", c >= d) print("c是否小于等于d:", c <= d)
# 结果 c和d是否相等: False c和d是否不相等: True c是否大于d: False c是否小于d: True c是否大于等于d: False c是否小于等于d: True
赋值运算
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 > or
先算优先级的
a = not 2 > 1 and 3 < 4 or 4 > 5 and 2 > 1 and 9 > 8 or 7 < 6 print(a)
#结果为False
False and False or False and True and True or False
②前后两边的条件为数值
int ---> bool :
0 == False
非0 == True
bool ---> int :
False == 0
True == 1
口诀:
x or y if x is True ,return x
x and y if x is True , return y
b = 0 or 3 and 5 or 4 print(b) #结果:5
逻辑运算符的应用场景:
① if while 等条件判断(数据库,Django orm Q查询)
② 面试
四、编码初始
ASCII : 包含英文、数字、特殊字符,共8位,一个字节
unicode :万国码,包含所有国家的语言文字
早期:1个字符16位,两个字节表示
改版:1个字符32位,四个字节表示(浪费资源)
utf-8 :最少用一个字节表示
英文:一个字节
中文:三个字节
BGK:国标,包含中文、英文、特殊字符
英文:一个字节
中文:三个字节
所有的编码跟unicode有关系