while循環(huán)應(yīng)用
分析:1-100的累加和,即1 + 2 + 3 + 4 +….庸诱,即前兩個(gè)數(shù)字的相加結(jié)果 + 下一個(gè)數(shù)字( 前一個(gè)數(shù)字 + 1)闷堡。
# 1~100 的累加和
i = 1
mySum = 0
while i <= 100:
# mySum = mySum + i
mySum += i
i += 1
print(mySum)
# 使用if
# 1~100 求所有能被3整除的數(shù)的和
i = 3
mySum = 0
while i <= 100:
if i%3 == 0:
print(f'i = {i}')
mySum += i
i += 1
print(mySum)
# while True:
# pass
注意:為了驗(yàn)證程序的準(zhǔn)確性镀梭,可以先改小數(shù)值,驗(yàn)證結(jié)果正確后逝薪,再改成1-100做累加隅要。
2. 計(jì)算1~100之間偶數(shù)的累積和(包含1和100)
分析:1-100的偶數(shù)和,即 2 + 4 + 6 + 8....董济,得到偶數(shù)的方法如下:
- 偶數(shù)即是和2取余結(jié)果為0的數(shù)字步清,可以加入條件語句判斷是否為偶數(shù),為偶數(shù)則累加
- 初始值為0 / 2 , 計(jì)數(shù)器每次累加2
參考代碼如下:
方法一:條件判斷和2取余數(shù)則累加
i = 1
sum = 0
while i <= 100:
if i % 2 == 0:
sum = sum + i
i+=1
print("1~100的累積和為:%d" % sum)
方法二:計(jì)數(shù)器控制
i = 0
result = 0
while i <= 100:
result += i
i += 2
# 輸出2550
print(result)
終止循環(huán)的方式
- break 終止本層循環(huán)
- continue 結(jié)束本次循環(huán),執(zhí)行下一次循環(huán)
# 累加和達(dá)到1000時(shí)停止并輸出結(jié)果
i = 1
mySum = 0
while i <= 100:
if mySum > 1000:
break
mySum += i
i += 1
print(mySum)
# 計(jì)算1~100所有奇數(shù)累加和
i = 1
mySum = 0
while i <= 100:
if i%2 == 0:
i += 1
continue
mySum += i
i += 1
print(mySum)
猜數(shù)字游戲
# 1到100之間猜數(shù)字游戲
from random import randint
# randint(a, b) 生成 [a, b]區(qū)間的隨機(jī)整數(shù)
computer_num = randint(1, 100)
# print(computer_num)
while True:
player_num = int(input("請輸入您猜的數(shù)字"))
if player_num > computer_num:
print("猜大了")
elif player_num < computer_num:
print("猜小了")
else:
print("恭喜你猜對了,去領(lǐng)取精美的獎品吧")
break
for循環(huán)
格式
for 臨時(shí)變量 in 迭代對象:
循環(huán)體
# 0~9
for i in range(10):
print(i)
# range(開始, 結(jié)束, 步長) 左閉右開的區(qū)間
# 1 ~ 10
for i in range(1, 11):
print(i)
# 1~ 20之間所有奇數(shù)
for i in range(1, 21, 2):
print(i)
for 實(shí)現(xiàn) 1~100 的累加和
mySum = 0
for i in range(1, 101):
mySum += i
print(mySum)
小作業(yè) :自行使用for完成改寫上面所有while的示例
循環(huán)嵌套
格式
while 條件1:
條件1滿足時(shí)虏肾,做的事情1
條件1滿足時(shí)廓啊,做的事情2
條件1滿足時(shí),做的事情3
...(省略)...
while 條件2:
條件2滿足時(shí)封豪,做的事情1
條件2滿足時(shí)谴轮,做的事情2
條件2滿足時(shí),做的事情3
...(省略)...
嵌套應(yīng)用
要求:打印如下圖形:
* * * * *
* * * * *
* * * * *
* * * * *
* * * * *
i = 0
while i < 5:
j = 0
while j < 5:
print("* ", end='') # 不換行
j += 1
# 換行
print()
i+=1
*
* *
* * *
* * * *
* * * * *
i = 0
while i < 5:
j = 0
while j < i+1:
print("* ", end='')
j += 1
print()
i+=1
i = 1
while i < 10:
j = 1
while j < i+1:
print(f"{j} x {i} = {i*j} ", end='\t')
j += 1
print()
i+=1
for i in range(1, 10):
for j in range(1, i+1):
print(f"{j} x {i} = {i*j} ", end='\t')
print()
列表介紹
想一想:
前面學(xué)習(xí)的字符串可以用來存儲一串信息吹埠,那么想一想第步,怎樣存儲咱們班所有同學(xué)的名字呢疮装?
定義100個(gè)變量,每個(gè)變量存放一個(gè)學(xué)生的姓名可行嗎粘都?有更好的辦法嗎廓推?
答:
列表
列表的格式
列表名 = [元素1,, 元素2....]
heroList = ['小魯班', '妲己', '貂蟬', 111, 99.1, [111, 222]]
print(heroList)
print(type(heroList))
# 訪問 索引訪問
print(heroList[0])
# 遍歷
for i in range(6):
print((heroList[i]))