python小白練習(xí)題之條件控制與循環(huán)控制
Python條件語句是通過一條或多條語句的執(zhí)行結(jié)果(True或者False)來決定執(zhí)行的代碼塊。
計算機之所以能做很多自動化的任務(wù),因為它可以自己做條件判斷。
比如,輸入用戶年齡,根據(jù)年齡打印不同的內(nèi)容,在Python程序中,用if語句實現(xiàn):
age = 20 if age >= 18: print('your age is', age) print('adult')
根據(jù)Python的縮進規(guī)則,如果if語句判斷是True,就把縮進的兩行print語句執(zhí)行了,否則,什么也不做。
可以通過下圖來簡單了解條件語句的執(zhí)行過程:
一:選擇結(jié)構(gòu):
1.身高預(yù)測
每個做父母的都關(guān)心自己孩子成人后的身高,據(jù)有關(guān)生理衛(wèi)生知識與數(shù)理統(tǒng)計分析表明,影響小孩成人后身高的因素有遺傳、飲食習(xí)慣與堅持體育鍛煉等。小孩成人后的身高與其父母的身高和自身的性別密切相關(guān)。
設(shè)faHeight為其父身高,moHeight為其母身高,身高預(yù)測公式為:
男性成人時身高 = (faHeight + moHeight) * 0.54
女性成人時身高 = (faHeight * 0.923 + moHeight) / 2
此外,如果喜愛體育鍛煉,那么可增加身高2%,如果有良好的衛(wèi)生飲食習(xí)慣,那么可增加身高1.5%。
要求父母的身高、是否愛好體育鍛煉等參數(shù)從鍵盤輸入。
print("-------------身高預(yù)測小程序---------------") faHeight=float(input("請輸入父親的身高(cm):")) moHeight=float(input("請輸入母親的身高(cm):")) sex=int(input("請輸入你的性別(1:代表男,0:代表女):")) a=int(input("是否喜愛鍛煉(1:代表是,2:代表不否):")) b=int(input("是否有衛(wèi)生飲食的習(xí)慣(1:代表是,2:代表不否):")) if(sex == 1): # print("你是個男生!") if(a == 1): # print("你有體育鍛煉的習(xí)慣!") if(b == 1): # print("你有衛(wèi)生飲食的習(xí)慣!") height=(faHeight+moHeight)*0.54*1.02*1.015 print("你是男生,鑒于你愛好鍛煉和健康飲食,你的身高為:"+str(height)) else: height = (faHeight + moHeight) * 0.54 * 1.02 print("你是男生,鑒于你愛好鍛煉,你的身高為:" + str(height)) else: if (b == 1): # print("你有衛(wèi)生飲食的習(xí)慣!") height = (faHeight + moHeight) * 0.54 * 1.015 print("你是男生,鑒于你健康飲食,你的身高為:" + str(height)) else: height = (faHeight + moHeight) * 0.54 print("你是男生,鑒于你不鍛煉和衛(wèi)生飲食,你的身高為:" + str(height)) else: # print("你是個女生!") if (a == 1): # print("你有體育鍛煉的習(xí)慣!") if (b == 1): # print("你有衛(wèi)生飲食的習(xí)慣!") height = (faHeight *0.923 + moHeight)/2 * 1.02 * 1.015 print("你是女生,鑒于你愛好鍛煉和健康飲食,你的身高為:" + str(height)) else: height = (faHeight *0.923 + moHeight)/2 * 1.02 print("你是女生,鑒于你愛好鍛煉,你的身高為:" + str(height)) else: if (b == 1): # print("你有衛(wèi)生飲食的習(xí)慣!") height = (faHeight *0.923 + moHeight)/2 * 1.015 print("你是女生,鑒于你健康飲食,你的身高為:" + str(height)) else: height = (faHeight *0.923 + moHeight)/2 print("你是女生,鑒于你不鍛煉和衛(wèi)生飲食,你的身高為:" + str(height))
2.計算銷售總金額
圖書批發(fā)商店的某本書的零售價是26.5元/本,如果客戶一次性購買100本以上(包括100本),則每本的價格打9折,如果客戶一次性購買500本以上(包括500本),則每本的價格打8折并返回1000元給客戶,請分別計算購買8本、150本、600本的應(yīng)付金額是多少。要求購買書的數(shù)量從控制臺輸入。
print("請輸入你三次購買圖書的數(shù)量:") for i in range(3): num = int(input("請輸入你購買的圖書總量:")) if (num < 100): cost = 26.5 * num print("你需付:" + str(cost) + "元") elif (num < 500): cost = 26.5 * num * 0.9 print("由于你購買大于100本書,已為你打9折,你需付:" + str(cost) + "元") else: cost = 26.5 * num * 0.8 print("由于你購買大于500本書,已為你打8折,你需付:" + str(cost) + "元")
3、輸入兩個整數(shù),按由小到大的順序輸出這兩個數(shù)。
#3. 輸入兩個整數(shù),按由小到大的順序輸出這兩個數(shù) num1=int(input("請輸入第一個整數(shù):")) num2=int(input("請輸入第二個整數(shù):")) if(num1<num2): print("兩個數(shù)從小到大排序為:",num1,num2) else: print("兩個數(shù)從小到大排序為:", num2, num1)
二:循環(huán)結(jié)構(gòu)
1、 有1020個西瓜,第一天賣掉總數(shù)的一半后又多賣出兩個,以后每天賣剩下的一半多兩個,問幾天以后能賣完?
num=1020 count=0 while(num>0): num=num/2-2 count+=1 print(count) print("西瓜在",count,"天后賣完")
2、計算1000以內(nèi)所有不能被7整除的整數(shù)之和。
#方法一: sum=0 for i in range(1,1000): if(i%7 !=0 ): sum+=i print("1000以內(nèi)所有不能被7整除的整數(shù)之和為:",sum) #方法二: i=1 sum1=sum2=0 while i<1000: if(i%7 ==0): sum1 += i i += 1 else: sum2 += i i += 1 print("1000以內(nèi)能被7整除的整數(shù)之和",sum1) print("1000以內(nèi)不能被7整除的整數(shù)之和",sum2)
3、計算 1+2-3+4-5+6-7…+100的結(jié)果//注意審題
#7、計算 1+2-3+4-5+6-7....+100的結(jié)果; sum1=sum2=sum=0 for i in range(2,101): if(i%2 == 0): sum1+=i else: sum2+=i sum=sum1-sum2+1 print("結(jié)果為:",sum)
4、一張紙的厚度大約是0.08mm,對折多少次之后能達到或超過珠穆朗瑪峰的高度(8848.13米)
#4、一張紙的厚度大約是0.08mm,對折多少次之后能達到或超過珠穆朗瑪峰的高度(8848.13米) n=0.00008 count=0 while n<8848.13: n=n*2 count+=1 print("需要對折:",count,"次")
5、從控制臺輸入一個正整數(shù),計算該數(shù)的階乘。例如輸入5,階乘為 54321
#9、從控制臺輸入一個正整數(shù),計算該數(shù)的階乘。例如輸入5,階乘為 5*4*3*2*1 sum=1 num=int(input("請輸入一個正整數(shù):")) while num>0: sum=sum*num num=num-1 print("隨機數(shù)num的階乘為:",sum)
6、 猴子吃桃問題: 猴子第一天摘下若干個桃子,當即吃了一半,還不過癮,又多吃了一個,第二天早上又將剩下的桃子吃了一半,又多吃一個,以后每天都吃了前一天剩下的一半零一個。到第10天早上想再吃時,見只剩下一個桃子。求第一天共摘了多少個?
#2、猴子吃桃問題: 猴子第一天摘下若干個桃子,當即吃了一半,還不過癮,又多吃了一個, # 第二天早上又將剩下的桃子吃了一半,又多吃一個,以后每天都吃了前一天剩下的一半零一 #個。到第10天早上想再吃時,見只剩下一個桃子。求第一天共摘了多少個? i=sum=1 while i<=9: sum=(sum+1)*2 i+=1 print("第一天共摘了",sum,"個桃子")
7、任意輸入一個整數(shù)(小于10位),輸出它一共有多少位。
#4、任意輸入一個整數(shù)(小于10位),輸出它一共有多少位。 num=float(input("請任意輸入一個整數(shù)(小于10位):")) count=0 while (num > 1 and num<1000000000): num /=10 count+=1 print("你輸入的數(shù)一共有",count,"位")
8、本金10000元存入銀行,年利率是千分之三,每過1年,將本金和利息相加作為新的本金。計算5年后,獲得的本金是:
#本金10000元存入銀行,年利率是千分之三,每過1年,將本金和利息相加作為新的本金。 # 計算5年后,獲得的本金是 num=10000 i=1 while i<=5: num*=1.003 i+=1 print("五年后的本金為:",num)
9、你的程序要讀入一系列正整數(shù)數(shù)據(jù),輸入-1表示輸入結(jié)束,-1本身不是輸入的數(shù)據(jù)。程序輸出讀到的數(shù)據(jù)中的奇數(shù)和偶數(shù)的個數(shù)
#你的程序要讀入一系列正整數(shù)數(shù)據(jù),輸入-1表示輸入結(jié)束,-1本身不是輸入的數(shù)據(jù)。 # 程序輸出讀到的數(shù)據(jù)中的奇數(shù)和偶數(shù)的個數(shù) print("請輸入一系列數(shù)字(輸入-1代表輸入結(jié)束):") sum1=sum2=0 x=int(input("請輸入第一個數(shù):")) # input("請輸入下一個數(shù):") while (x!=-1): x=int(input("請輸入下一個數(shù):")) if(x%2==0): sum1+=1 else: sum2+=1 print("這一系列數(shù)中偶數(shù)個數(shù)為:",sum1) print("這一系列數(shù)中奇數(shù)個數(shù)為:",sum2)
總結(jié)
到此這篇關(guān)于python條件控制與循環(huán)控制的文章就介紹到這了,更多相關(guān)python條件控制與循環(huán)控制內(nèi)容請搜索本站以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持本站!
版權(quán)聲明:本站文章來源標注為YINGSOO的內(nèi)容版權(quán)均為本站所有,歡迎引用、轉(zhuǎn)載,請保持原文完整并注明來源及原文鏈接。禁止復(fù)制或仿造本網(wǎng)站,禁止在非www.sddonglingsh.com所屬的服務(wù)器上建立鏡像,否則將依法追究法律責(zé)任。本站部分內(nèi)容來源于網(wǎng)友推薦、互聯(lián)網(wǎng)收集整理而來,僅供學(xué)習(xí)參考,不代表本站立場,如有內(nèi)容涉嫌侵權(quán),請聯(lián)系alex-e#qq.com處理。