千家信息网

Python全栈的for循环怎么使用

发表于:2025-02-01 作者:千家信息网编辑
千家信息网最后更新 2025年02月01日,这篇文章主要介绍"Python全栈的for循环怎么使用",在日常操作中,相信很多人在Python全栈的for循环怎么使用问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答"P
千家信息网最后更新 2025年02月01日Python全栈的for循环怎么使用

这篇文章主要介绍"Python全栈的for循环怎么使用",在日常操作中,相信很多人在Python全栈的for循环怎么使用问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答"Python全栈的for循环怎么使用"的疑惑有所帮助!接下来,请跟着小编一起来学习吧!

1. 双向循环的练习

# 1.用两个循环完成十行十列的小星星j = 0 while j < 10:        # 打印星星        i = 0        while i < 10:                print("*",end="")                i+=1        # 打印换行        print()        j += 1# 2.用两个循环完成十行十列隔列换色的小星星"""☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★"""i = 0while i < 10:        # 打印一行黑白相间的星星        j = 0        while j < 10:                if j % 2 == 0:                        print("☆",end="")                else:                        print("★",end="")                j +=1        # 打印换行        print()         i+=1# 3.用两个循环完成十行十列隔行换色的小星星"""★★★★★★★★★★☆☆☆☆☆☆☆☆☆☆★★★★★★★★★★☆☆☆☆☆☆☆☆☆☆★★★★★★★★★★☆☆☆☆☆☆☆☆☆☆★★★★★★★★★★☆☆☆☆☆☆☆☆☆☆★★★★★★★★★★☆☆☆☆☆☆☆☆☆☆""""""外层的循环i动的慢内层的循环j动的快外层的i动一次, 内层的循环动10次"""i = 0while i < 10 :        j = 0        while j < 10:                if i % 2 == 0:                        print("☆",end="")                else:                        print("★",end="")                j +=1        print()        i +=1# 4.99乘法表# 方向一i = 1while i <= 9:        # 打印对应的表达式        j = 1        while j <= i:                print("%d*%d=%2d " % (i,j,i*j) ,end="" )                j+=1        # 打印换行        print()        i +=1# 方向二i = 9while i >= 1:        # 打印对应的表达式        j = 1        while j <= i:                print("%d*%d=%2d " % (i,j,i*j) ,end="" )                j+=1        # 打印换行        print()        i -= 1print("<====================>")# 方向三i = 1while i <= 9 :        kongge = 9 - i        # 打印空格        while kongge > 0:                print("       ",end="")                kongge -= 1          # 打印表达式        j = 1        while j <= i:                print("%d*%d=%2d " % (i,j,i*j) ,end="" )                j+=1        # 换行        print()        i +=1print("<===============>")# 方向四i = 9while i >= 1 :        kongge = 9 - i        # 打印空格        while kongge > 0:                print("       ",end="")                kongge -= 1          # 打印表达式        j = 1        while j <= i:                print("%d*%d=%2d " % (i,j,i*j) ,end="" )                j+=1        # 打印换行        print()        i -=1# 求吉利数字 100 ~ 999 之间 找 111 222 333 123 456 654 321 ... """// 可以获取一个数高位%  可以获取一个数低位baiwei = 345 // 100shiwei = 345 // 10 % 10gewei  = 345 % 10print(gewei)"""# 方法一i = 100while i <= 999:        baiwei = i // 100        shiwei = i // 10 % 10        gewei = i % 10        if shiwei == gewei  and shiwei == baiwei :                print(i)        # 123        elif shiwei == gewei - 1 and shiwei == baiwei + 1:                print(i)        # 987        elif shiwei == gewei + 1 and shiwei == baiwei - 1:                print(i)        i +=1# 方法二print("<====>")i = 100while i <= 999:        strvar = str(i)        # print(strvar, type(strvar))        gewei = int(strvar[-1])        shiwei = int(strvar[1])        baiwei = int(strvar[0])        if shiwei == gewei  and shiwei == baiwei :                print(i)        # 123        elif shiwei == gewei - 1 and shiwei == baiwei + 1:                print(i)        # 987        elif shiwei == gewei + 1 and shiwei == baiwei - 1:                print(i)        i +=1# 方法三print("<====>")i = 100while i <= 999:        strvar = str(i)        # print(strvar, type(strvar))        gewei = int(strvar[-1])        shiwei = int(strvar[1])        baiwei = int(strvar[0])        if 2 * shiwei == gewei + baiwei and (shiwei == gewei + 1 or shiwei == gewei -1 ):                print(i)        elif gewei == shiwei and shiwei == baiwei:                print(i)        i +=1# 百钱买百鸡# 公鸡一个五块钱,母鸡一个三块钱,小鸡三个一块钱,现在要用一百块钱买一百只鸡,问公鸡、母鸡、小鸡各多少只?"""穷举法:把数据拿出来一个一个试x = [1,2]y = [3,4]z = [5,6]x+y+z = 101 + 3 + 5 = 91 + 3 + 6 = 10 bingo1 + 4 + 5 = 10 bingo1 + 4 + 6 = 112 + 3 + 5 = 10 bingo2 + 3 + 6 = 112 + 4 + 5 = 112 + 4 + 6 = 12""""""公鸡 : x  母鸡 : y  小鸡: z鸡的数量:x + y + z = 100鸡的价格:5 * x + 3 * y + 1/3*z = 100   """x = 0while x <= 20:        y = 0        while y <= 33:                z = 0                while z <= 100:                        if x+y+z == 100 and 5*x + 3 * y + 1/3*z == 100 :                                print(x,y,z)                        z += 1                        y +=1        x += 1



2. break_pass_continue的使用

关键字的使用 pass break continue

# pass 过 (代码块中的占位符)"""if 20 == 20:        passwhile True:        pass"""# break 终止当前循环 (只能用在循环之中)# 1 ~ 10 遇到5终止循环i = 1while i <= 10:        print(i)        if i == 5:                break        i +=1        i = 1while i <= 3:        j = 1        while j <=3:                if j == 2:                        break                print(i,j)                j+=1        i +=1# 1 1# 2 1 # 3 1"""if 5 == 5: error        break"""# continue 跳过当前循环,从下一次循环开始# 打印 1 ~ 10 跳过5i = 1while i <= 10:                if i == 5:                # 在跳过之前,因为会终止执行后面的代码,从下一次循环开始                # 为了避免死循环,手动加1                i += 1                continue        print(i)        i +=1# 1 ~ 100 打印所有不含有4的数字# 方法一print("<============>")i = 1while i <= 100:        strvar = str(i)        # print(strvar)        if "4" in strvar:                i += 1                continue        print(i)        i +=1        # 方法二print("<============>")i = 1while i <= 100:        if i // 10 == 4 or i % 10 == 4:                i+=1                continue        print(i)        i+=1

3. for循环

while: 逻辑比较复杂用while

for: 逻辑比较简单,遍历数据的话一定是for(while也可以遍历数据,但是遍历的数据不能是无序的)

# 遍历 循环 迭代 , 把容器中的元素一个一个获取出来# while循环在遍历数据时的局限性"""lst = [1,2,3,4,5]  # oki = 0while i < len(lst):        print(lst[i])        i+=1setvar = {"a","b","c"} # not oki = 0while i < len(setvar):        print(setvar[i])        i+=1"""# for循环的基本语法"""Iterable 可迭代性数据:1.容器类型数据 2.range对象 3.迭代器for 变量 in Iterable:        code1."""# 字符串container = "北京和深圳温差大概20多度"# 列表container = [1,2,3,4,4,5]# 元组container = ("孙开洗","孙健","孙悟空")# 集合 container = {"陈璐","曹静怡","王志国","邓鹏","合力"}# 字典container = {"cl":"风流倜傥","cjy":"拳击选手","wzg":"寻花问柳","dp":"帅气,祖国的栋梁","hl":"你是个好人"}# 遍历数据for i in container:        print(i)print("<===================>")# 1.遍历不等长多级容器container = [1,2,3,4,("嗄","234",{"马春配","李虎凌","刘子涛"})]for i in container:        # 判断当前元素是否是容器,如果是,进行二次遍历,如果不是,直接打印        if isinstance(i,tuple):                # ("嗄","234",{"马春配","李虎凌","刘子涛"})                for j in i:                        # 判断当前元素是否是集合,如果是,进行三次遍历,如果不是,直接打印                        if isinstance(j,set):                                # j = {"马春配","李虎凌","刘子涛"}                                for k in j :                                        print(k)                        else:                                print(j)        # 打印数据        else:                print(i)# 2.遍历不等长多级容器container = [("刘玉波","历史源","张光旭"), ("上朝气","于朝志"),("韩瑞晓",)]for i in container:        for j in i:                print(j)# 3.遍历等长的容器container = [("马云","小马哥","马春配") , ["王健林","王思聪","王志国"],{"王宝强","马蓉","宋小宝"}]for a,b,c in container:        print(a,b,c)# 变量的解包a,b,c = "poi"a,b = (1,2)a,b = 1,2a,b,c = [10,11,12]a,b = {"林明辉","家率先"}a,b = {"lmh":"林明辉","jsx":"家率先"}a,b,c = ("马云","小马哥","马春配")print(a,b,c)# ### range对象"""range([开始值,]结束值[,步长])取头舍尾,结束值本身获取不到,获取到它之前的那一个数据"""# range(一个值)for i in range(5): # 0 ~ 4        print(i)# range(二个值)for i in range(3,8): # 3 4 5 6 7         print(i)# range(三个值) 正向的从左到右for i in range(1,11,3): # 1 4 7 10         print(i)# range(三个值) 逆向的从右到左for i in range(10,0,-1): # 10 9 8 7 ... 1         print(i)# 总结:"""while 一般用于处理复杂的逻辑关系for   一般用于迭代数据部分情况下两个循环可以互相转换;"""i = 1while i <= 9:        j = 1        while j <= i:                print("%d*%d=%2d " % (i,j,i*j) ,end="" )                j+=1        print()         i +=1for i in range(1,10):        for j in range(1,i+1):                print("%d*%d=%2d " % (i,j,i*j) ,end="" )        print()# 打印 1 ~ 10 跳过5i = 1while i <= 10:                if i == 5:                i += 1                continue        print(i)        i +=1for i in range(1,11):        if i == 5:                continue        print(i)

小提示:

"".strip() 可以去掉字符串的两边的空白符,包括\nin 不能在纯数字中使用,如果是字典的话判断你的是字典的键元组不能用while循环来显示,因为内容是无序的外层是集合,里面不能是列表lst = [ ["a",1] , {"b","250"}]dic = dict(lst)print(dic)    这里可能会输出{'a':1,'b':'250'}或者{'a':1,'250':'b'}lst = ["a1","b2"]dic = dict(lst)print(dic) 这里会输出{a:1,b:2}lst = ["a11","b22"]dic = dict(lst)print(dic)  这里就会报错isinstance比type用的多在一个文件中-5 - 正无穷a = 3b = 3   a和b的id是一样a = b =3 不管是不是-5到正无穷,a和b的id都是一样的height = int(intput("你身高多少:") )  字符串为什么不能用int进行强转(字符串是小数的)help(print) # print的帮助文档

4. 小练习

问题:

1.利用if语句写出猜大小的游戏:        设定一个理想数字比如:66,        让用户三次机会猜数字,如果比66大,则显示猜测的结果大了;        如果比66小,则显示猜测的结果小了;        只有等于66,显示猜测结果正确,退出循环。        最多三次都没有猜测正确,退出循环,并显示'都没猜对,继续努力'。2.使用while和for 遍历字符串 "IG战队牛逼"3.使用for循环对s="黄绿青蓝紫"进行循环,每次打印的内容是每个字符加上"色的",   例如:黄色的 绿色的 青色的 ... 4.完成要求:用户可持续输入(while循环)        输入A,则显示走大路回家,然后在让用户进一步选择:                是选择公交车,还是步行?                选择公交车,显示10分钟到家,并退出整个程序。                选择步行,显示20分钟到家,并退出整个程序。        输入B,                则显示走小路回家,并退出整个程序。        输入C,                则显示绕道回家,然后在让用户进一步选择:                是选择游戏厅玩会,还是网吧?                        选择游戏厅,则显示 '一个半小时到家,爸爸在家,拿棍等你。'并让其重新输入A,B,C选项。                        选择网吧,则显示'两个小时到家,妈妈已做好了战斗准备。'并让其重新输入A,B,C选项。5.写代码:计算 1 - 2 + 3 - 4 + ... + 99 中除了88以外所有数的总和?6.(升级题)打印菱形小星星     *    ***   *****  ******* ******************************* *********  *******   *****    ***     *

答案:

"""1.利用if语句写出猜大小的游戏:        设定一个理想数字比如:66,        让用户三次机会猜数字,如果比66大,则显示猜测的结果大了;        如果比66小,则显示猜测的结果小了;        只有等于66,显示猜测结果正确,退出循环。        最多三次都没有猜测正确,退出循环,并显示'都没猜对,继续努力'。""""""times = 1while times <= 3:        num = input("请输入一个数字:")        if num.isdecimal():                num = int(num)                if num > 66:                        print("结果大了")                elif num == 66:                        print("对了 bingo老婶")                        break                elif num < 66:                        print("结果小了")        else:                print("抱歉,数字格式不对~")        if times == 3:                print("都没猜对,继续努力")        times +=1"""# 2.使用while和for 遍历字符串 "IG战队牛逼"strvar="IG战队牛逼"i = 0while i < len(strvar):        print(strvar[i])        i +=1for i in strvar:        print(i)# 3.使用for循环对s="黄绿青蓝紫"进行循环,每次打印的内容是每个字符加上"色的",    # 例如:黄色的 绿色的 青色的 ... s="黄绿青蓝紫"for i in s:        print(i + "色的" )  # 4.完成要求:# 用户可持续输入(while循环)        # 输入A,则显示走大路回家,然后在让用户进一步选择:                # 是选择公交车,还是步行?                # 选择公交车,显示10分钟到家,并退出整个程序。                # 选择步行,显示20分钟到家,并退出整个程序。        # 输入B,                # 则显示走小路回家,并退出整个程序。        # 输入C,                # 则显示绕道回家,然后在让用户进一步选择:                # 是选择游戏厅玩会,还是网吧?                        # 选择游戏厅,则显示 '一个半小时到家,爸爸在家,拿棍等你。'并让其重新输入A,B,C选项。                        # 选择网吧,则显示'两个小时到家,妈妈已做好了战斗准备。'并让其重新输入A,B,C选项。"""sign = Truewhile sign:        opt = input("请输入选项A,B,C")        if opt.lower() == "a":                print("走大路回家")                opt = input("是选择公交车,还是步行?")                if opt == "公交车":                        print("10分钟到家,")                        sign = False                        # break                elif opt == "步行":                        print("20分钟到家")                        sign = False                        # break        elif opt.lower() == "b":                print("走小路回家")                break        elif opt.lower() == "c":                print("绕道回家")                opt = input("是选择游戏厅玩会,还是网吧?")                if opt == "游戏厅":                        print("一个半小时到家,爸爸在家,拿棍等你。")                elif opt == "网吧":                        print("两个小时到家,妈妈已做好了战斗准备。")"""# 5.写代码:计算 1 - 2 + 3 - 4 + ... + 99 中除了88以外所有数的总和?total = 0for i in range(1,100):        if i == 88:                continue        if i % 2 == 1:                total += i        elif i%2 == 0:                total -= iprint(total)total = 0i = 1while i <= 99:        if i == 88:                i +=1                continue        if i % 2 == 1:                total += i        elif i%2 == 0:                total -= i        i +=1print(total)# 6.(升级题)打印菱形小星星"""     *    ***   *****  ******* ******************************* *********  *******   *****    ***     *""""""空格 + 星星 + 换行总行数:对于任意个星星n ,总行数:  n // 2 + 113 -> 711 -> 69  -> 57  -> 4空格:对于当前行i , 空格数量 = 总行数 - 当前行 1 => 52 => 43 => 34 => 25 => 16 => 0星星:对于当前行i , 星星数量 = 2 * 当前行 - 11 => 12 => 33 => 54 => 7"""# n = int(input("输入星星个数"))n = 13hang = n // 2 + 1i = 1while i <= hang:        # 打印空格        kongge = hang - i        print(" " * kongge,end="")        # 打印星星         xingxing = 2 * i - 1        print("*" * xingxing,end="")        # 打印换行        print()        i += 1i = hangwhile i >= 1:        # 打印空格        kongge = hang - i        print(" " * kongge,end="")        # 打印星星         xingxing = 2 * i - 1        print("*" * xingxing,end="")        # 打印换行        print()        i -= 1# 方法二n = 11hang = n // 2 + 1i = 1while i <= hang:        # 打印空格        kongge = hang - i        while kongge>0:                print(" ",end="")                kongge -= 1        # 打印星星         xingxing = 2 * i - 1        j = 1        while j <= xingxing:                print("*" ,end="")                j += 1        # 打印换行        print()        i += 1i = hangwhile i >= 1:        # 打印空格        kongge = hang - i        while kongge>0:                print(" ",end="")                kongge -= 1        # 打印星星         xingxing = 2 * i - 1        j = 1        while j <= xingxing:                print("*" ,end="")                j += 1        # 打印换行        print()        i -= 1# (扩展了解)"""abs 求绝对值的内置函数 abs(-1) = 1"""print("<===11111==>")for i in range(-6,7):        # 只有一句代码的话,可以直接写在冒号的右边;        if i == 0:continue                       print(" " * (abs(i) - 1),"*" * (13-2*abs(i)))

到此,关于"Python全栈的for循环怎么使用"的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注网站,小编会继续努力为大家带来更多实用的文章!

0