溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Python全棧的for循環(huán)怎么使用

發(fā)布時間:2021-12-01 09:01:53 來源:億速云 閱讀:152 作者:iii 欄目:開發(fā)技術

這篇文章主要介紹“Python全棧的for循環(huán)怎么使用”,在日常操作中,相信很多人在Python全棧的for循環(huán)怎么使用問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”Python全棧的for循環(huán)怎么使用”的疑惑有所幫助!接下來,請跟著小編一起來學習吧!

1. 雙向循環(huán)的練習

# 1.用兩個循環(huán)完成十行十列的小星星
j = 0 
while j < 10:
	# 打印星星
	i = 0
	while i < 10:
		print("*",end="")
		i+=1
	# 打印換行
	print()
	j += 1
# 2.用兩個循環(huán)完成十行十列隔列換色的小星星
"""
☆★☆★☆★☆★☆★
☆★☆★☆★☆★☆★
☆★☆★☆★☆★☆★
☆★☆★☆★☆★☆★
☆★☆★☆★☆★☆★
☆★☆★☆★☆★☆★
☆★☆★☆★☆★☆★
☆★☆★☆★☆★☆★
☆★☆★☆★☆★☆★
☆★☆★☆★☆★☆★
"""
i = 0
while i < 10:
	# 打印一行黑白相間的星星
	j = 0
	while j < 10:
		if j % 2 == 0:
			print("☆",end="")
		else:
			print("★",end="")
		j +=1
	# 打印換行
	print()	
	i+=1

# 3.用兩個循環(huán)完成十行十列隔行換色的小星星
"""
★★★★★★★★★★
☆☆☆☆☆☆☆☆☆☆
★★★★★★★★★★
☆☆☆☆☆☆☆☆☆☆
★★★★★★★★★★
☆☆☆☆☆☆☆☆☆☆
★★★★★★★★★★
☆☆☆☆☆☆☆☆☆☆
★★★★★★★★★★
☆☆☆☆☆☆☆☆☆☆
"""
"""
外層的循環(huán)i動的慢
內層的循環(huán)j動的快
外層的i動一次, 內層的循環(huán)動10次
"""
i = 0
while i < 10 :
	j = 0
	while j < 10:
		if i % 2 == 0:
			print("☆",end="")
		else:
			print("★",end="")
		j +=1
	print()
	i +=1
# 4.99乘法表
# 方向一
i = 1
while i <= 9:
	# 打印對應的表達式
	j = 1
	while j <= i:
		print("%d*%d=%2d " % (i,j,i*j) ,end="" )
		j+=1
	# 打印換行
	print()
	i +=1

# 方向二
i = 9
while i >= 1:
	# 打印對應的表達式
	j = 1
	while j <= i:
		print("%d*%d=%2d " % (i,j,i*j) ,end="" )
		j+=1
	# 打印換行
	print()
	i -= 1
print("<====================>")
# 方向三
i = 1
while 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 +=1
print("<===============>")
# 方向四
i = 9
while 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 // 100
shiwei = 345 // 10 % 10
gewei  = 345 % 10
print(gewei)
"""
# 方法一
i = 100
while 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 = 100
while 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 = 100
while 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 = 10
1 + 3 + 5 = 9
1 + 3 + 6 = 10 bingo
1 + 4 + 5 = 10 bingo
1 + 4 + 6 = 11
2 + 3 + 5 = 10 bingo
2 + 3 + 6 = 11
2 + 4 + 5 = 11
2 + 4 + 6 = 12
"""
"""
公雞 : x  母雞 : y  小雞: z
雞的數量:x + y + z = 100
雞的價格:5 * x + 3 * y + 1/3*z = 100   
"""
x = 0
while 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

Python全棧的for循環(huán)怎么使用

Python全棧的for循環(huán)怎么使用

Python全棧的for循環(huán)怎么使用

2. break_pass_continue的使用

關鍵字的使用 pass break continue

# pass 過 (代碼塊中的占位符)
"""
if 20 == 20:
	pass
while True:
	pass
"""
# break 終止當前循環(huán) (只能用在循環(huán)之中)
# 1 ~ 10 遇到5終止循環(huán)
i = 1
while i <= 10:
	print(i)
	if i == 5:
		break
	i +=1
	
i = 1
while 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 跳過當前循環(huán),從下一次循環(huán)開始
# 打印 1 ~ 10 跳過5
i = 1
while i <= 10:	
	if i == 5:
		# 在跳過之前,因為會終止執(zhí)行后面的代碼,從下一次循環(huán)開始
		# 為了避免死循環(huán),手動加1
		i += 1
		continue
	print(i)
	i +=1
# 1 ~ 100 打印所有不含有4的數字
# 方法一
print("<============>")
i = 1
while i <= 100:
	strvar = str(i)
	# print(strvar)
	if "4" in strvar:
		i += 1
		continue
	print(i)
	i +=1
	
# 方法二
print("<============>")
i = 1
while i <= 100:
	if i // 10 == 4 or i % 10 == 4:
		i+=1
		continue
	print(i)
	i+=1

3. for循環(huán)

while: 邏輯比較復雜用while

for: 邏輯比較簡單,遍歷數據的話一定是for(while也可以遍歷數據,但是遍歷的數據不能是無序的)

# 遍歷 循環(huán) 迭代 , 把容器中的元素一個一個獲取出來
# while循環(huán)在遍歷數據時的局限性
"""
lst = [1,2,3,4,5]  # ok
i = 0
while i < len(lst):
	print(lst[i])
	i+=1
setvar = {"a","b","c"} # not ok
i = 0
while i < len(setvar):
	print(setvar[i])
	i+=1
"""
# for循環(huán)的基本語法
"""
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,2
a,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   一般用于迭代數據
部分情況下兩個循環(huán)可以互相轉換;
"""
i = 1
while i <= 9:
	j = 1
	while j <= i:
		print("%d*%d=%2d " % (i,j,i*j) ,end="" )
		j+=1
	print()	
	i +=1
for i in range(1,10):
	for j in range(1,i+1):
		print("%d*%d=%2d " % (i,j,i*j) ,end="" )
	print()
# 打印 1 ~ 10 跳過5
i = 1
while i <= 10:	
	if i == 5:
		i += 1
		continue
	print(i)
	i +=1
for i in range(1,11):
	if i == 5:
		continue
	print(i)

小提示:

"".strip() 可以去掉字符串的兩邊的空白符,包括\n
in 不能在純數字中使用,如果是字典的話判斷你的是字典的鍵
元組不能用while循環(huán)來顯示,因為內容是無序的
外層是集合,里面不能是列表
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 = 3
b = 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,顯示猜測結果正確,退出循環(huán)。
	最多三次都沒有猜測正確,退出循環(huán),并顯示‘都沒猜對,繼續(xù)努力'。
2.使用while和for 遍歷字符串 "IG戰(zhàn)隊牛逼"
3.使用for循環(huán)對s="黃綠青藍紫"進行循環(huán),每次打印的內容是每個字符加上"色的",	
  例如:黃色的 綠色的 青色的 ... 
4.完成要求:
用戶可持續(xù)輸入(while循環(huán))
	輸入A,則顯示走大路回家,然后在讓用戶進一步選擇:
		是選擇公交車,還是步行?
		選擇公交車,顯示10分鐘到家,并退出整個程序。
		選擇步行,顯示20分鐘到家,并退出整個程序。
	輸入B,
		則顯示走小路回家,并退出整個程序。
	輸入C,
		則顯示繞道回家,然后在讓用戶進一步選擇:
		是選擇游戲廳玩會,還是網吧?
			選擇游戲廳,則顯示 ‘一個半小時到家,爸爸在家,拿棍等你。'并讓其重新輸入A,B,C選項。
			選擇網吧,則顯示‘兩個小時到家,媽媽已做好了戰(zhàn)斗準備。'并讓其重新輸入A,B,C選項。
5.寫代碼:計算 1 - 2 + 3 - 4 + ... + 99 中除了88以外所有數的總和?
6.(升級題)打印菱形小星星
     *
    ***
   *****
  *******
 *********
***********
***********
 *********
  *******
   *****
    ***
     *

答案:

"""
1.利用if語句寫出猜大小的游戲:
	設定一個理想數字比如:66,
	讓用戶三次機會猜數字,如果比66大,則顯示猜測的結果大了;
	如果比66小,則顯示猜測的結果小了;
	只有等于66,顯示猜測結果正確,退出循環(huán)。
	最多三次都沒有猜測正確,退出循環(huán),并顯示‘都沒猜對,繼續(xù)努力'。
"""
"""
times = 1
while 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("都沒猜對,繼續(xù)努力")
	times +=1
"""

# 2.使用while和for 遍歷字符串 "IG戰(zhàn)隊牛逼"
strvar="IG戰(zhàn)隊牛逼"
i = 0
while i < len(strvar):
	print(strvar[i])
	i +=1
for i in strvar:
	print(i)

# 3.使用for循環(huán)對s="黃綠青藍紫"進行循環(huán),每次打印的內容是每個字符加上"色的",	
  # 例如:黃色的 綠色的 青色的 ... 
s="黃綠青藍紫"
for i in s:
	print(i + "色的" )
  
# 4.完成要求:
# 用戶可持續(xù)輸入(while循環(huán))
	# 輸入A,則顯示走大路回家,然后在讓用戶進一步選擇:
		# 是選擇公交車,還是步行?
		# 選擇公交車,顯示10分鐘到家,并退出整個程序。
		# 選擇步行,顯示20分鐘到家,并退出整個程序。
	# 輸入B,
		# 則顯示走小路回家,并退出整個程序。
	# 輸入C,
		# 則顯示繞道回家,然后在讓用戶進一步選擇:
		# 是選擇游戲廳玩會,還是網吧?
			# 選擇游戲廳,則顯示 ‘一個半小時到家,爸爸在家,拿棍等你。'并讓其重新輸入A,B,C選項。
			# 選擇網吧,則顯示‘兩個小時到家,媽媽已做好了戰(zhàn)斗準備。'并讓其重新輸入A,B,C選項。
"""
sign = True
while 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("兩個小時到家,媽媽已做好了戰(zhàn)斗準備。")
"""

# 5.寫代碼:計算 1 - 2 + 3 - 4 + ... + 99 中除了88以外所有數的總和?
total = 0
for i in range(1,100):
	if i == 88:
		continue
	if i % 2 == 1:
		total += i
	elif i%2 == 0:
		total -= i
print(total)
total = 0
i = 1
while i <= 99:
	if i == 88:
		i +=1
		continue
	if i % 2 == 1:
		total += i
	elif i%2 == 0:
		total -= i
	i +=1
print(total)
# 6.(升級題)打印菱形小星星
"""
     *
    ***
   *****
  *******
 *********
***********
***********
 *********
  *******
   *****
    ***
     *
"""
"""
空格 + 星星 + 換行
總行數:
對于任意個星星n ,總行數:  n // 2 + 1
13 -> 7
11 -> 6
9  -> 5
7  -> 4
空格:
對于當前行i , 空格數量 = 總行數 - 當前行 
1 => 5
2 => 4
3 => 3
4 => 2
5 => 1
6 => 0
星星:
對于當前行i , 星星數量 = 2 * 當前行 - 1
1 => 1
2 => 3
3 => 5
4 => 7
"""
# n = int(input("輸入星星個數"))
n = 13
hang = n // 2 + 1
i = 1
while i <= hang:
	# 打印空格
	kongge = hang - i
	print(" " * kongge,end="")
	# 打印星星 
	xingxing = 2 * i - 1
	print("*" * xingxing,end="")
	# 打印換行
	print()
	i += 1
i = hang
while i >= 1:
	# 打印空格
	kongge = hang - i
	print(" " * kongge,end="")
	# 打印星星 
	xingxing = 2 * i - 1
	print("*" * xingxing,end="")
	# 打印換行
	print()
	i -= 1

# 方法二
n = 11
hang = n // 2 + 1
i = 1
while 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 += 1

i = hang
while 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循環(huán)怎么使用”的學習就結束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學習,快去試試吧!若想繼續(xù)學習更多相關知識,請繼續(xù)關注億速云網站,小編會繼續(xù)努力為大家?guī)砀鄬嵱玫奈恼拢?/p>

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內容(圖片、視頻和文字)以原創(chuàng)、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI