python小白練習題之條件控制與循環控制
前言
Python條件語句是通過一條或多條語句的執行結果(True或者False)來決定執行的代碼塊。
計算機之所以能做很多自動化的任務,因為它可以自己做條件判斷。
比如,輸入用戶年齡,根據年齡打印不同的內容,在Python程序中,用if語句實現:
age = 20 if age >= 18: print('your age is', age) print('adult')
根據Python的縮進規則,如果if語句判斷是True,就把縮進的兩行print語句執行瞭,否則,什麼也不做。
可以通過下圖來簡單瞭解條件語句的執行過程:
一:選擇結構:
1.身高預測
每個做父母的都關心自己孩子成人後的身高,據有關生理衛生知識與數理統計分析表明,影響小孩成人後身高的因素有遺傳、飲食習慣與堅持體育鍛煉等。小孩成人後的身高與其父母的身高和自身的性別密切相關。
設faHeight為其父身高,moHeight為其母身高,身高預測公式為:
男性成人時身高 = (faHeight + moHeight) * 0.54
女性成人時身高 = (faHeight * 0.923 + moHeight) / 2
此外,如果喜愛體育鍛煉,那麼可增加身高2%,如果有良好的衛生飲食習慣,那麼可增加身高1.5%。
要求父母的身高、是否愛好體育鍛煉等參數從鍵盤輸入。
print("-------------身高預測小程序---------------") faHeight=float(input("請輸入父親的身高(cm):")) moHeight=float(input("請輸入母親的身高(cm):")) sex=int(input("請輸入你的性別(1:代表男,0:代表女):")) a=int(input("是否喜愛鍛煉(1:代表是,2:代表不否):")) b=int(input("是否有衛生飲食的習慣(1:代表是,2:代表不否):")) if(sex == 1): # print("你是個男生!") if(a == 1): # print("你有體育鍛煉的習慣!") if(b == 1): # print("你有衛生飲食的習慣!") 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("你有衛生飲食的習慣!") height = (faHeight + moHeight) * 0.54 * 1.015 print("你是男生,鑒於你健康飲食,你的身高為:" + str(height)) else: height = (faHeight + moHeight) * 0.54 print("你是男生,鑒於你不鍛煉和衛生飲食,你的身高為:" + str(height)) else: # print("你是個女生!") if (a == 1): # print("你有體育鍛煉的習慣!") if (b == 1): # print("你有衛生飲食的習慣!") 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("你有衛生飲食的習慣!") height = (faHeight *0.923 + moHeight)/2 * 1.015 print("你是女生,鑒於你健康飲食,你的身高為:" + str(height)) else: height = (faHeight *0.923 + moHeight)/2 print("你是女生,鑒於你不鍛煉和衛生飲食,你的身高為:" + str(height))
2.計算銷售總金額
圖書批發商店的某本書的零售價是26.5元/本,如果客戶一次性購買100本以上(包括100本),則每本的價格打9折,如果客戶一次性購買500本以上(包括500本),則每本的價格打8折並返回1000元給客戶,請分別計算購買8本、150本、600本的應付金額是多少。要求購買書的數量從控制臺輸入。
print("請輸入你三次購買圖書的數量:") 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、輸入兩個整數,按由小到大的順序輸出這兩個數。
#3. 輸入兩個整數,按由小到大的順序輸出這兩個數 num1=int(input("請輸入第一個整數:")) num2=int(input("請輸入第二個整數:")) if(num1<num2): print("兩個數從小到大排序為:",num1,num2) else: print("兩個數從小到大排序為:", num2, num1)
二:循環結構
1、 有1020個西瓜,第一天賣掉總數的一半後又多賣出兩個,以後每天賣剩下的一半多兩個,問幾天以後能賣完?
num=1020 count=0 while(num>0): num=num/2-2 count+=1 print(count) print("西瓜在",count,"天後賣完")
2、計算1000以內所有不能被7整除的整數之和。
#方法一: sum=0 for i in range(1,1000): if(i%7 !=0 ): sum+=i print("1000以內所有不能被7整除的整數之和為:",sum) #方法二: i=1 sum1=sum2=0 while i<1000: if(i%7 ==0): sum1 += i i += 1 else: sum2 += i i += 1 print("1000以內能被7整除的整數之和",sum1) print("1000以內不能被7整除的整數之和",sum2)
3、計算 1+2-3+4-5+6-7…+100的結果//註意審題
#7、計算 1+2-3+4-5+6-7....+100的結果; sum1=sum2=sum=0 for i in range(2,101): if(i%2 == 0): sum1+=i else: sum2+=i sum=sum1-sum2+1 print("結果為:",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、從控制臺輸入一個正整數,計算該數的階乘。例如輸入5,階乘為 54321
#9、從控制臺輸入一個正整數,計算該數的階乘。例如輸入5,階乘為 5*4*3*2*1 sum=1 num=int(input("請輸入一個正整數:")) while num>0: sum=sum*num num=num-1 print("隨機數num的階乘為:",sum)
6、 猴子吃桃問題: 猴子第一天摘下若幹個桃子,當即吃瞭一半,還不過癮,又多吃瞭一個,第二天早上又將剩下的桃子吃瞭一半,又多吃一個,以後每天都吃瞭前一天剩下的一半零一個。到第10天早上想再吃時,見隻剩下一個桃子。求第一天共摘瞭多少個?
#2、猴子吃桃問題: 猴子第一天摘下若幹個桃子,當即吃瞭一半,還不過癮,又多吃瞭一個, # 第二天早上又將剩下的桃子吃瞭一半,又多吃一個,以後每天都吃瞭前一天剩下的一半零一 #個。到第10天早上想再吃時,見隻剩下一個桃子。求第一天共摘瞭多少個? i=sum=1 while i<=9: sum=(sum+1)*2 i+=1 print("第一天共摘瞭",sum,"個桃子")
7、任意輸入一個整數(小於10位),輸出它一共有多少位。
#4、任意輸入一個整數(小於10位),輸出它一共有多少位。 num=float(input("請任意輸入一個整數(小於10位):")) count=0 while (num > 1 and num<1000000000): num /=10 count+=1 print("你輸入的數一共有",count,"位")
8、本金10000元存入銀行,年利率是千分之三,每過1年,將本金和利息相加作為新的本金。計算5年後,獲得的本金是:
#本金10000元存入銀行,年利率是千分之三,每過1年,將本金和利息相加作為新的本金。 # 計算5年後,獲得的本金是 num=10000 i=1 while i<=5: num*=1.003 i+=1 print("五年後的本金為:",num)
9、你的程序要讀入一系列正整數數據,輸入-1表示輸入結束,-1本身不是輸入的數據。程序輸出讀到的數據中的奇數和偶數的個數
#你的程序要讀入一系列正整數數據,輸入-1表示輸入結束,-1本身不是輸入的數據。 # 程序輸出讀到的數據中的奇數和偶數的個數 print("請輸入一系列數字(輸入-1代表輸入結束):") sum1=sum2=0 x=int(input("請輸入第一個數:")) # input("請輸入下一個數:") while (x!=-1): x=int(input("請輸入下一個數:")) if(x%2==0): sum1+=1 else: sum2+=1 print("這一系列數中偶數個數為:",sum1) print("這一系列數中奇數個數為:",sum2)
總結
到此這篇關於python條件控制與循環控制的文章就介紹到這瞭,更多相關python條件控制與循環控制內容請搜索WalkonNet以前的文章或繼續瀏覽下面的相關文章希望大傢以後多多支持WalkonNet!