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!

推薦閱讀: