Python全栈之单项循环
目录
- 1. 多项_巢状分支
- 2. 循环结构
- 2.1 循环结构
- 2.2 单项循环的练习
- 3. 字符串的切片
- 4. 小练习
- 问题:
- 答案:
- 总结
1. 多项_巢状分支
多项分支 (多选一)
""" if 条件表达式1: code1 elif 条件表达式2: code2 elif 条件表达式3: code3 else: `code4 如果条件表达式1成立,执行对应的分支code1,反之判断条件表达式2是否成立 如果条件表达式2成立,执行对应的分支code2,反之判断条件表达式3是否成立 如果条件表达式3成立,执行对应的分支code3,如果不成立,直接走else分支,到此程序执行www.cppcns.com完毕 elif 可以是0个 或者 多个 else 可以是0个 或者 一个 """ youqian = False youfang = False youche = False if youqian == True: print("说明这个人很有实力") elif youfang == True: print("能交给朋友么") elif youche == True: print("开了雅迪艾玛调动车,我们碰一碰吧") else: print("你还是去做美团骑手吧") print("<=======================>") # ### 巢状分支 """单项分支,双向分支,多项分支的互相嵌套组合""" youqian = True youfang = True youche = True youyanzhi = True youtili = False if youqian == True: if youfang == True: if youche == True: if youyanzhi == True: if youtili == True: print("我要嫁给你~") else: print("你去吃点大腰子再来~") else: print("你去一下泰国+韩国,整整容") else: print("你是个好人呐~") print("<=======================>") #出题 height #女生找对象 # 男生在1米~1.5米之间 小强 你在哪里? # 男生在1.5~1.7米之间 没有安全感~ # 男生 1.7~ 1.8米之间 帅哥 留个电话 # 男生 1.8~2米之间 帅哥 你建议多一个女朋友吗 # python特有(注意:因为input接受的数都是字符串,又因为我们会输入小数,所以这里只能用float) """ height = float(in编程客栈put("请输入您的身高:")) if 1 <= height < 1.5: print("小强 你在哪里?") elif 1.5 <= height < 1.7: print("没有安全感~") elif 1.7 <= height < 1.8: print("帅哥 留个电话") elif 1.8 <= height < 2: print("你建议多一个女朋友吗") else: print("抱歉,没有合适的选项") """ # 通用写法 height = float(input("请输入您的身高:")) if 1 <= height and height < 1.5: print("小强 你在哪里?") elif 1.5 <= height and height < 1.7: print("没有安全感~") elif 1.7 <= height and height < 1.8: print("帅哥 留个电话") elif 1.8 <= height and height < 2: print("你建议多一个女朋友吗") else: print("抱歉,没有合适的选项") """ tab 向右缩进 shift + tab 向左缩进 """
2. 循环结构
2.1 循环结构
"""特点:减少冗余代码,提升执行效率""" """ 语法: while 条件表达式: code1 (1) 初始化一个变量 (2) 写上循环的条件 (3) 自增自减的值 """ # ### 打印1 ~ 100 # (1) 初始化一个变量 i = 1 # (2) 写上循环的条件 while i <= 100: # (4) 写上循环的逻辑 print(i) # (3) 自增自减的值 i += 1 # i = i + 1 """ 代码解析: 第一次循环 i = 1 i<=100 判断为真,执行循环体 print(1) i += 1 i => 2 第二次循环 代码回到17行,重新进行条件判定 i = 2 i<=100 判断为真,执行循环体 print(2) i += 1 i => 3 第三次循环 代码回到17行,重新进行条件判定 i = 3 i<=100 判断为真,执行循环体 print(3) i += 1 i => 4 .... 以此类推 直到i = 101 i <= 100 判断为假,不执行循环体,到此循环结束... 1 ~ 100 """ # ### 1 ~ 100的累加和 # (1) 初始化一个变量 i = 1 total = 0 # (2) 写上循环的条件 while i <= 100 : # (4) 写上自定义的逻辑 total += i # (3) 自增自减的值 i += 1 print(total) """ 代码解析: 第一次循环 i = 1 i <= 100 判定为真True 执行循环体 total += i => total = total + i => 0 + 1 i += 1 => i = 2 第二次循环 i = 2 i <= 100 判定为真True 执行循环体 total += i => total = total + i => 0 + 1 + 2 i += 1 => i = 3 第三次循环 i = 3 i <= 100 判定为真True 执行循环体 total += i => total = total + i => 0 + 1 + 2 + 3 i += 1 => i = 4 ... 依次类推 当i = 101 101 <= 100 判定为假False 不执行循环体,到此,循环结束.. total += i => total + i => 0 + 1 + 2 + 3 + 4 + .... + 100 => 5050 """ # 死循环 """ while True: print(1) """ # ### 用死循环的方法实现 1 ~ 100累加和 i = 1 total = 0 sign = True while sign: total += i i+=1 # 判断i是否加到了101 , 不参与循环 if i == 101: # 终止循环 sign = False print(total) #1 ~ 100 = 5050
2.2 单项循环的练习
# (1)打印 一行十个小星星* help(print) # help 查看某个方法的文档 help(print) """ # print("*",end='') # print("*",end='') # print("*",end='') # print("*",end='') # print("*",end='') # print("*",end='') # www.cppcns.comprint("*",end='') # print("*",end='') # print("*",end='') # print("*",end='') """ i = 0 while i<10: # end='' 打印时,尾部默认不加换行 print("*",end='') i += 1 # 默认换行 # print() # (2)通过打印一个变量的形式,展现一行十个小星星 print("<======>") i = 0 strvar = "" while i < 10: # 写上循环的逻辑 strvar += "*" # strvar = strvar + "*" i +=1 print(strvar) """ strvar += "*" => strvar = "*" strvar += "*" => strvar = "*" + "*" = "**" strvar += "*" => strvar = "**" + "*" = "***" ... strvar += "*" => strvar = "********" + "*" = "*********" """ # (3)一行十个换色的星星 ★☆★☆★☆★☆★☆ """ # 方法一 i = 0 while i < 5: print("★☆",end="") i+=1 """ # 方法二 i = 0 while i < 10: if i % 2 == 0 : print("★",end="") else: print("☆",end="") i+=1 print("<=============>") # 方法三 i = 0 strvar = "" while i < 10: if i % 2 == 0 : strvar += "★" else: strvar += "☆" i+=1 print(strvar) """ ***公式: 任意数 和 n 进行取余,余数的范围: 0 ~ (n-1)*** 0 % 2 = 0 1 % 2 = 1 2 % 2 = 0 3 % 2 = 1 被除数 % 2 => 0 或者 1 0 % 5 = 0 1 % 5 = 1 2 % 5 = 2 3 % 5 = 3 4 % 5 = 4 5 % 5 = 0 6 % 5 = 1 7 % 5 = 2 被除数 % 5 => 0 或者 1,2,3,4 """ # (4)用一个循环,打印十行十列小星星 """ ★★★★★★★★★★ ★★★★★★★★★★ ★★★★★★★★★★ ★★★★★★★★★★ ★★★★★★★★★★ ★★★★★★★★★★ ★★★★★★★★★★ ★★★★★★★★★★ ★★★★★★★★★★ ★★★★★★★★★★ """ # 方法一 i = 0 while i < 100: # 逻辑写在这里 print("*" , end="") # 打印换行 (在9 19 29 .. 99 ) if i % 10 == 9: print() i += 1 """ 0123456789 ********** 10111213141516171819 ********** 20212223242526272829 ********** ... 90919293949596979899 ********** 9 19 29 39 49 59 69 79 89 99 9 % 10 = 9 19 % 10 = 9 29 % 10 = 9 ... 99 % 10 = 9 """ print("<======>") # 方法二 i = 1 while i <= 100: # 逻辑写在这里 print("*" , end="") # 打印换行 (在9 19 29 .. 99 ) if i %http://www.cppcns.com 10 == 0: print() i += 1 """ 12345678910 ********** 11121314151617181920 ********** 21222324252627282930 ********** ... 919293949596979899100 ********** 10 20 30 ... 100 """ # (5) 一个循环实现十行十列,格列换色的小星星 """ ★☆★☆★☆★☆★☆ ★☆★☆★☆★☆★☆ ★☆★☆★☆★☆★☆ ★☆★☆★☆★☆★☆ ★☆★☆★☆★☆★☆ ★☆★☆★☆★☆★☆ ★☆★☆★☆★☆★☆ ★☆★☆★☆★☆★☆ ★☆★☆★☆★☆★☆ ★☆★☆★☆★☆★☆ """ i = 0 while i < 100: # (1)打印星星 if i % 2 == 0 : print("★",end="") else: print("☆",end="") # (2)打印换行 (在9 19 29 .. 99 ) if i % 10 == 9: print() i += 1http://www.cppcns.com # (6)一个循环实现十行十列,隔行换色的小星星 """ ★★★★★★★★★★ ☆☆☆☆☆☆☆☆☆☆ ★★★★★★★★★★ ☆☆☆☆☆☆☆☆☆☆ ★★★★★★★★★★ ☆☆☆☆☆☆☆☆☆☆ ★★★★★★★★★★ ☆☆☆☆☆☆☆☆☆☆ ★★★★★★★★★★ ☆☆☆☆☆☆☆☆☆☆ *** 公式:任意数和n进行地板除,会出现n个相同的数 0 // 10 = 0 1 // 10 = 0 2 // 10 = 0 .. 9 // 10 = 0 0 ~ 9 // 10 => 0 (10个相同的0) 10 // 10 = 1 11 // 10 = 1 12 // 10 = 1 ... 19 // 10 = 1 10 ~ 19 // 10 => 1 (10个相同的1) .... 以此类推 20 ~ 29 // 10 => 2 (10个相同的2) 30 ~ 39 // 10 => 3 (10个相同的3) 40 ~ 49 // 10 => 4 (10个相同的4) ... 90 ~ 99 // 10 => 9 (10个相同的9) 0~ 100 会出现10个相同的0,1,2 , 3 ... 9 0 // 3 0 1 // 3 0 2 // 3 0 3 // 3 1 4 // 3 1 5 // 3 1 """ """""" # 方法一 i = 0 while i < 100: # (1)打印星星 if i // 10 % 2 == 0: print("★",end="") else: print("☆",end="") # (2)打印换行 (在9 19 29 .. 99 ) if i % 10 == 9: print() i += 1 # 方法二 print("<=================>") i = 10 while i < 110: # 打印星星 num = int(str(i)[-2]) if num % 2 == 0 : print("★",end="") else: print("☆",end="") # 打印换行 if i % 10 == 9: print() i+=1 """ 10 ~ 100 101 102 103 110... 10 ~ 19 => 1 20 ~ 29 => 2 30 ~ 39 => 3 90 ~ 99 => 9 100 ~ 109 => 0 """
3. 字符串的切片
字符串相关操作
# (1)字符串的拼接 + str1 = "赵沈阳," str2 = "so strong" res = str1 + str2 res = "赵沈阳," + "so strong" print(res) # res = res + ",旁边的同学很喜欢他~" res += ",旁边的同学很喜欢他~" print(res) # (2)字符串的重复 * strvar = "重要的事情说三遍~" res = strvar * 3 print(res) # (3)字符串跨行拼接 \ str1 = "kskfjskjfklsjfklasdjklfjaskldjfaskljfklasjdfklasjdklfjaskldfjaskldjflasjfsf" \ "1122334" print(str1) # (4)字符串的索引 # 0 1 2 3 4 5 strvar = "赵世超真帅呀" # -6-5-4-3-2-1 print(strvar[1]) # (5)字符串的切片: (截取) """ 语法 => 字符串[::] 完整格式:[开始索引:结束索引:间隔值] (1)[开始索引:] 从开始索引截取到字符串的最后 (2)[:结束索引] 从开头截取到结束索引之前(结束索引-1) (3)[开始索引:结束索引] 从开始索引截取到结束索引之前(结束索引-1) (4)[开始索引:结束索引:间隔值] 从开始索引截取到结束索引之前按照指定的间隔截取字符 (5)[:]或[::] 截取所有字符串 """ strvar = "王文是这个宇宙当中,最完美,无暇,善良,漂亮,英俊,帅气,潇洒,风流倜傥的神秘男孩" # (1)[开始索引:] 从开始索引截取到字符串的最后 res = strvar[3:] print(res) # (2)[:结束索引] 从开头截取到结束索引之前(结束索引-1) """4这个最大值本身获取不到,要获取到4之前的那一个数据 : 取头舍尾""" res = strvar[:5] print(res) # (3)[开始索引:结束索引] 从开始索引截取到结束索引之前(结束索引-1) res = strvar[10:16] print(res) # (4)[开始索引:结束索引:间隔值] 从开始索引截取到结束索引之前按照指定的间隔截取字符 # 从左向右截取 res = strvar[::3] # 0 3 6 9 12 15 ... print(res) # 从右向左截取 res = strvar[::-1] # -1 -2 -3 -4 -5 -6 .... print(res) res = strvar[-3:-10:-2] # -3 -5 -7 -9 秘的倜风 print(res) print("<====>") """从左到右截,间隔值为正值,反过来,间隔值是负值,才能保证截取到数据""" """ res = strvar[-3:-10:10] # 错误的逻辑 print(res) res = strvar[1:10] print(res) """
4. 小练习
问题:
1.猜大小的游戏: 设定一个理想数字比如:66,让用户输入数字,如果比66大,则显示猜测的结果大了;如果比66小,则显示猜测的结果小了;只有等于66,显示猜测结果正确。 2.输出 1-100 内的所有奇数 3.输出 1-100 内的所有偶数 4.用户登陆(有三次输错机会)且每次输错误时显示剩余错误次数(提示:使用字符串格式化) 5.写代码,有如下字符串利用切片实现每一个功能 strvar = "132a4b5c" 1)对字符串进行切片形成新的字符串 "132" 2)对字符串进行切片形成新的字符串 "a4b" 3)对字符串进行切片形成新的字符串 "1245" 4)对字符串进行切片形成新的字符串 "3ab" 5)对字符串进行切片形成新的字符串 "c" 6)对字符串进行切片形成新的字符串 "ba3" 6.国际棋盘效果
答案:
# 1.猜大小的游戏: # 设定一个理想数字比如:66,让用户输入数字,如果比66大,则显示猜测的结果大了;如果比66小,则显示猜测的结果小了;只有等于66,显示猜测结果正确。 """ num = 66 str_num = input("请输入理想的数字") num_new = int(str_num) if num_new > num: print("猜测的结果大了") elif num_new == num: print("显示猜测结果正确") elif num_new < 66: print("则显示猜测的结果小了") """ # 2.输出 1-100 内的所有奇数 """ i = 1 while i <= 100: if i % 2 == 1: print(i) i +=1 """ # 3.输出 1-100 内的所有偶数 """ i = 1 while i <= 100: if i % 2 == 0: print(i) i +=1 """ # 4.用户登陆(有三次输错机会)且每次输错误时显示剩余错误次数(提示:使用字符串格式化) """ times = 1 while times <= 3: pwd = input("请输入您的密码:") if pwd == "111": print("恭喜你登录成功~") break # 剩余次数 = 总次数 - 已经使用的次数 print("你剩余的输入次数是%d" % (3 - times)) times +=1 """ """ sign = True times = 1 while sign: pwd = input("请输入您的密码:") if pwd == "111": print("恭喜你登录成功~") sign = False else: # 剩余次数 = 总次数 - 已经使用的次数 print("你剩余的输入次数是%d" % (3 - times)) # 如果次数已经是3次了,强制终止循环; if times == 3: print("你已经没有机会了... ") sign = False times +=1 """ # 5.写代码,有如下字符串利用切片实现每一个功能 strvar = "132a4b5c" # 1)对字符串进行切片形成新的字符串 "132" print(strvar[0:3]) # 2)对字符串进行切片形成新的字符串 "a4b" print(strvar[3:6]) # 3)对字符串进行切片形成新的字符串 "1245" print(strvar[::2]) # 4)对字符串进行切片形成新的字符串 "3ab" print(strvar[1:6:2]) # 5)对字符串进行切片形成新的字符串 "c" print(strvar[-1:]) # 6)对字符串进行切片形成新的字符串 "ba3" print(strvar[-3::-2]) # -3 -5 -7 # 6.国际棋盘效果 # 方法一 j = 0 while j < 8: # □■□■□■□■ if j % 2 == 0: print("□■□■□■□■",end="") # ■□■□■□■□ else: print("■□■□■□■□",end="") print() j +=1 """ # □■□■□■□■ i = 0 while i < 8: if i % 2 == 0: print("□",end="") else: print("■",end="") i +=1 # ■□■□■□■□ i = 0 while i < 8: if i % 2 == 0: print("■",end="") else: print("□",end="") i +=1 """ print("<=====>") j = 0 while j < 8: # □■□■□■□■ if j % 2 == 0: i = 0 while i < 8: if i % 2 == 0: print("□",end="") else: print("■",end="") i +=1 # ■□■□■□■□ else: i = 0 while i < 8: if i % 2 == 0: print("■",end="") else: print("□",end="") i +=1 print() j +=1 # 方法二 """ □■□■□■□■ ■□■□■□■□ □■□■□■□■ ■□■□■□■□ □■□■□■□■ ■□■□■□■□ □■□■□■□■ ■□■□■□■□ """ print("<=====>") i = 0 while i < 64: # 判断当前是奇数行还是偶数行 if i // 8 % 2 == 0: # □■□■□■□■ if i % 2 == 0: print("□",end="") else: print("■",end="") else: # ■□■□■□■□ if i % 2 == 0: print("■",end="") else: print("□",end="") # 第八个方块换行 if i % 8 == 7: print() i +=1 print("<=====>") # 方法三 i = 0 while i < 4: strvar = "" j = 0 # 打印黑白相间的小方块 while j < 8: if j % 2 == 0: strvar += "□" else: strvar += "■" j +=1 # 正向打印 print(strvar) # 逆向打印 print(strvar[::-1]) i +=1
总结
本篇文章就到这里了,希望能够给你带来帮助,也希望您能够多多关注我们的更多内容!
精彩评论