关于循环

day3

1. 循环语句

  • while循环
  • for循环(后期)
while 条件:
    ···
    ···
    ···
print("123")
while(条件):
	···
    ···
    ···
print(456)

1.1循环语句的基本使用

示例1:

print("开始")
while True:
	print("**是个小逗比")
print("结束")

# 输出:
开始
**是个小逗比
**是个小逗比
**是个小逗比
**是个小逗比
···

示例2:

print("开始")
while 1 > 2:
	print("如果祖国遭受到侵犯,热血男儿当自强。")
print("结束")

# 输出:
开始
结束

示例3:

data = True
print("开始")
while data:
	print("如果祖国遭到侵犯,热血男儿当自强。")
print("结束")

# 输出:
如果祖国遭到侵犯,热血男儿当自强。
如果祖国遭到侵犯,热血男儿当自强。
如果祖国遭到侵犯,热血男儿当自强。
如果祖国遭到侵犯,热血男儿当自强。
···

示例4:

print("开始")
flag = True
while flag:
	print("滚滚黄河,涛涛长江。")
	flag = false
print("结束")

# 输出:
开始
滚滚黄河,涛涛长江。
结束

示例5:

print("开始")
num = 1
while num < 3:
	print("滚滚黄河,涛涛长江。")
	num = 5
print("结束")

# 输出:
开始
滚滚黄河,涛涛长江。
结束

示例6:

print("开始")
num = 1
while num < 5:
    print("给我生命,给我力量。")
    num = num + 1
print("结束")

# 输出:
开始
给我生命,给我力量。
给我生命,给我力量。
给我生命,给我力量。
给我生命,给我力量。
结束

1.3 break

1.4 continue

continue,在循环中用于结束本次循环,开始下一次循环

print("开始")
while True:
    print(1)
    continue
    print(2)
print("结束")

# 输出
开始
1
1
1
···

写在最后,对于break和continue都是放在循环语句中用于控制循环过程的,**一旦遇到break就停止所有循环,一旦遇到continue就停止本次循环,**开始下一次循环。

当然,通过如果没有了break和continue,我们用while条件的判断以及其他协助也能完成很多功能,有了break和continue可以在一定程度上简化我们的代码逻辑。

1.5 while else

当while后的条件不成立时,else中的代码就会执行。

while 条件:
	代码
else:
    代码
while False:
    pass
else:
    print(123)
num = 1
while num <5:
    print(num)
    num += 1
else:
    print(666)

# 输出
1
2
3
4
666

2. 字符串格式化

字符串格式化,使用更便捷的形式实现字符串的拼接

2.1 %

2.1.1 基本格式化操作

name = "吴佩琪"
# 占位符
text = "我叫%s,今年18岁" %"吴佩琪"
text = "我叫%s,今年18岁" %name 

name = "吴佩琪"
age = 18

# text = "我叫%s,今年%s岁" %("吴佩琪",18)
# text = "我叫%s,今年%s岁" %(name,age)
# text = "我叫%s,今年%d岁" %(name,age)

message = "%(name)s你什么时候过来呀?Alex今天不在家。" %{"name":"死鬼"}
print(message)

2.1.2 百分比

text = "兄弟,这个片我已经下载了90%%,居然特么的断网了"
print(text)
# 输出
兄弟,这个片已经下载了90%了,居然特么的断网了

text = "我叫%s,今年%d岁"

data1 = text %("武沛齐"666)

data2 = text %("alex",73)

一旦字符串格式化中存在百分比的显示,请一定要加%%以实现输出%。

2.2 format (推荐)

text = "我叫{0},今年18岁".format("武沛齐")

text = "我叫{0},今年{1}岁".format("武沛齐"18)

text = "我叫{0},今年{1}岁,真实的姓名是{0}".format("武沛齐"18)

text = "我叫{},今年18岁".format("武沛齐")

text = "我叫{},今年{}岁".format("武沛齐"18)

text = "我叫{},今年{}岁,真实的姓名是{}".format("武沛齐",18,"武沛齐")

text = "我叫{n1},今年18岁".format("武沛齐")

text = "我叫{n1},今年{age}岁".format("武沛齐"18)

text = "我叫{n1},今年{age}岁,真实的姓名是{n1}".format("武沛齐"18,"武沛齐")

text = "我叫{0},今年{1}岁"

data1 = text.format("武沛齐"666)

data2 = text.format("alex",73)

2.3 f

到python3.6版本后,更便捷。

text = f"嫂子喜欢{'跑步'},跑完之后满身大汗"

action = "跑步"
text = f"嫂子喜欢{action},跑完之后满身大汗"

name = "喵喵"
age = 19

text = f"嫂子的名字叫{name},今年{age}岁"
print(text)

text = f"嫂子的名字叫喵喵,今年{19+2}岁"
print(text)

# 在python3.8引入
text = f"嫂子的名字叫喵喵,今年{ 19+2 = }岁"
print(text)

# 输出
嫂子的名字叫喵喵,今年 19+2 = 21
# 进制转换
v1 = f"嫂子今年{22:#b}岁"
print(v1)
二进制

v2 = f"嫂子今年{22:#o}岁"
print(v2)
八进制

v3 = f"嫂子今年{22:#x}岁"
print(v3)
十六进制

# 理解
text = f"我是{'alex'},我爱大铁锤"

name = "alex"
text = f"我是{name},我爱大铁锤"

name = "alex"
text = f"我是{name.upper()},我爱大铁锤"



3. 运算符

提到运算符,我想大家首先想到的就是加、减、乘、除之类, 本节要系统的跟大家来聊一聊,我们写代码时常见的运算符可以分为5种:

  • 算数运算符,例如:加减乘除
    image-20201011165419956

    print( 9//2 )
    
    
  • 比较运算符,例如:大于、小于
    image-20201011165434014

    注意:python3中不支持 <>

    if 1 >2:
      pass
    while 1>2:
      pass
    
    data = 1 == 2
    
    
  • 赋值运算,例如:变量赋值
    image-20201011165501909

    num = 1
    while num < 100:
      print(num)
      # num = num + 1
      num += 1
    
    
  • 成员运算,例如:是否包含
    image-20201011165515812

    v1 = "le" in "alex"  # True/False
    # 让用户输入一段文本,检测文本中是否包含敏感词。
    text = input("请输入内容:")
    if "苍老师" in text:
      print("少儿不宜")
    else:
      print(text)
    
    
  • 逻辑运算,例如:且或非
    image-20201011165530169

    if username == "alex" and pwd == "123":
      pass
    
    data = 1 > 2
    if not data:
      pass
    
    

3.1 运算符优先级

运算符的优先级有很多,常见的没几个,推荐你记住3个即可:

  • 算数优先级优先级 大于 比较运算符

    if 2 + 10 > 11:
    	print("真")
    else:
    	print("假")
    
    
  • 比较运算符优先级 大于 逻辑运算符

    if 1>2 and 2<10:
    	print("成立")
    else:
    	print("不成立")
    
    
  • 逻辑运算符内部三个优先级 not > and > or

    if not 1 and 1>2 or 3 == 8:
    	print("真")
    else:
    	print("假")
    
    

上述这3个优先级从高到低总结:加减乘除 > 比较 > not and or。绝招:加括号。

练习题

1

-1

-1

100

10

“wupeiqi”

“”

8

0

88

“”

“”

“”

0

面试题

v1 = 0 or 3 or 7 or6 = 3

v2 = 8 or 4 or 0 or 7 = 8

v3 = 0 or 4 or 0 or 3 = 4

v4 = not 8 = False

如果多个都有的话先计算not 然后是and、or

今日作业

  1. 判断下列逻辑语句的True,False

    1 > 1 or 3 < 4 or 4 > 5 and 2 > 1 and 9 > 8 or 7 < 6   
    
    True
    
    not 2 > 1 and 3 < 4 or 4 > 5 and 2 > 1 and 9 > 8 or 7 < 6
    
    False
    
    
  2. 求出下列逻辑语句的值。

    8 or 3 and 4 or 2 and 0 or 9 and 7
    
    8
    
    0 or 2 and 3 and 4 or 6 and 0 or 3
    
    4
    
    
  3. 下列结果是什么?

    6 or 2 > 1		6
    3 or 2 > 1		3
    0 or 5 < 4		False
    5 < 4 or 3		3
    2 > 1 or 6		True
    3 and 2 > 1		True
    0 and 3 > 1		0
    2 > 1 and 3		3
    3 > 1 and 0		0
    3 > 1 and 2 or 2 < 3 and 3 and 4 or 3 > 2		
    
    2
    
    
  4. 实现用户登录系统,并且要支持连续三次输错之后直接退出,并且在每次输错误时显示剩余错误次数(提示:使⽤字符串格式化)。

  5. 猜年龄游戏
    要求:允许用户最多尝试3次,3次都没猜对的话,就直接退出,如果猜对了,打印恭喜信息并退出。

  6. 猜年龄游戏升级版
    要求:允许用户最多尝试3次,每尝试3次后,如果还没猜对,就问用户是否还想继续玩,如果回答Y,就继续让其猜3次,以此往复,如果回答N,就退出程序,如何猜对了,就直接退出。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值