七、分支与循环

1、分支结构

1.1、if分支语句

if<condition>     #判断表达式是否为真
  <statements>     #代码块
else<condition>   #if不成立时执行else下代码
  <statements>

1.2、多分支结构(if-elif-else)

elif语句允许检查多个表达式是否为True,并在其中一个条件求值为True时立即执行对应代码块。

score = int(input('请输入一个分数:'))
if 100 >= score >= 90:
  print('A')
elif 90 >= score >= 80:   # 可多次判断表达式是否为True
  print('B')
elif 80 >= score >= 60:
  print('B')
elif 60 >= score = 0:
  print('D')
else:
  print('输入有误!')

1.3、条件表达式(三元操作符)

三元操作符语法:

a = x if 条件 else y      #条件为True时,a的值赋值为x,否则为y

一元操作符:‘-’,负号
二元操作符:‘=’,赋值,它有左右两个操作数
三元操作符:三个操作数

if x < y:
  small = x
else:
  small = y
上述代码可用三元操作符表示:
small = x if x < y else y

1.4、断言assert

可用来在程序中置入检查点,当需要确保程序中的某个条件一定为真时才能让程序正常工作,assert就很有用了,与其出现莫名的bug导致程序崩溃不如自我毁灭
assert语法:

assert 3 > 4   #当后面的条件为False时,程序崩溃抛出AssertionError的异常

2、循环语句

2.1、while循环语句

while 条件:          #条件为真执行执行循环体,为假时跳出循环体
  循环体

2.1.1、死循环

无限循环可能在客户端/服务器编程中有用,服务器需要连续运行,以便客户端程序可以在需要时与其进行通信。

var = 1
while var == 1 :  # This constructs an infinite loop(这构成一个无限循环)
   num = int(input("Enter a number  :"))
   print ("You entered: ", num)

print ("Good bye!")

按CTRL+C可退出无限循环

2.1.2、在循环中使用else语句

如果else语句与while循环一起使用,则在条件变为false时执行else语句

count = 0
while count < 5:
   print (count, " is  less than 5")
   count = count + 1
else:
   print (count, " is not less than 5")

2.2、for循环语句

for <variable> in <sequence>:   #variable表示迭代的目标变量,sequence表示表达式(列表、元组或其他)
    <statements>
else:
    <statements>
member = ['黑夜' , '迷离',  '爱你哦']
for each in member:
  print(each, len(each))

2.3、range()函数

如果你需要遍历数字序列,可以使用内置range()函数。它会生成数列

range( [start,] stop[, step = 1])   #语法

range()有三个可选参数,其中中括号里的可选,step = 1,表示第三个参数默认值为1。

#传递一个参数:
for i in range(3):    #从0开始遍历,不包括尾(3)
  print(i)
0
1
2

#传递两个参数:
for i in range(1, 8):
  print(i)
1 2 3 4 5 6 7 

#传递三个参数:
for i in range(1,10,2):  #第三个参数表示步进,从1开始,每次递进2
  print(i)
1 3 5 7 9

range()函数来创建一个列表:

>>>list(range(5))
[0, 1, 2, 3, 4]

range()和len()函数以遍历一个序列的索引:

>>>a = ['Google', 'Baidu', 'Runoob', 'Taobao', 'QQ']
>>> for i in range(len(a)):
...     print(i, a[i])
... 
0 Google
1 Baidu
2 Runoob
3 Taobao
4 QQ

2.4、break语句

break语句作用是终止当前循环,跳出循环体,只能跳出一层循环
(1)、与while循环搭配:

var = 10
while var > 0:
    print('当前变量值为:', var)
    var -= 1
    if var == 5:
        break
print('GOOD BYE!')

(2)、与for循环搭配:

for each in 'runoob':
    if each == 'b':
        break
    print('当前字母为:', each)

2.5、continue语句

continue语句作用是终止本轮循环,并开始下一轮循环,(开始下一轮循环前,会先测试循环条件)

>>> for i in range(10):
      if i % 2 != 0:
        print(i)   #当i % 2 != 0时输出,为0时终止本轮循环
        continue    
1
3
5
7
9
>>> for i in range(10):
    if i %2 != 0:
        continue    #当i % 2 != 0时终止本轮循环,为0时输出
    print(i)
0
2
4
6
8
var = 10                  
while var > 0:              
   var = var -1
   if var == 5:             # 变量为 5 时跳过输出,继续下一轮当var==4时
      continue
   print ('当前变量值 :', var)
print ("Good bye!")
当前变量值 : 9
当前变量值 : 8
当前变量值 : 7
当前变量值 : 6
当前变量值 : 4
当前变量值 : 3
当前变量值 : 2
当前变量值 : 1
当前变量值 : 0
Good bye!
例:验证用户密码程序,3次机会,若输入* 则不算入内
count = 3
password = '12345678'

while count:
    passwd = input('请输入密码:')
    if passwd == password:
        print('密码正确,进入程序....')
        break
    elif '*' in passwd:
        print('密码中不能含有"*",您还有',count,'次机会!', end = '')
        continue
    else:
        print('密码输入错误,您还有',count-1,'次机会', end = '')
    count -= 1

2.6、pass 语句

Python pass是空语句,是为了保持程序结构的完整性,pass 不做任何事情,一般用做占位语句。

>>>while True:
...     pass  # 等待键盘中断 (Ctrl+C)
for letter in 'Runoob': 
   if letter == 'o':
      pass
      print ('执行 pass 块')
   print ('当前字母 :', letter)
 
print ("Good bye!")
当前字母 : R
当前字母 : u
当前字母 : n
执行 pass 块
当前字母 : o
执行 pass 块
当前字母 : o
当前字母 : b
Good bye!
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 203,456评论 5 477
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,370评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,337评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,583评论 1 273
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,596评论 5 365
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,572评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,936评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,595评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,850评论 1 297
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,601评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,685评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,371评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,951评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,934评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,167评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 43,636评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,411评论 2 342

推荐阅读更多精彩内容