python程序練習題集


1.#輸入a,b,c,d4個整數,計算a+b-c*d的結果

a=input("please input a nimber:")
b=input("please input a number:")
c=input("please input a number:")
d=input("please input a number:")
print a+b-c*d
輸出結果:
please input a nimber:3
please input a number:3
please input a number:3
please input a number:3
-3
2.#計算一個12.5m*16.7m的矩形房間的面積和周長
a=12.5
b=16.7
s=a*b
c=a+a+b+b
print "面積是%f,周長是%f"%(s,c)
輸出結果是
面積是208.750000,周長是58.400000
3.#怎么得到9/2的小數結果
>>> float(9/2)
4.0
4.#python計算中7*7*7*7.可以有多少種寫法
第一種:
>>> 7*7*7*7
2401
第二種:
>>>pow(7,4)
2401
第三種:
>>>7**4
24401
第四種:
>>> eval("%s*%s*%s*%s"%(7,7,7,7))

2401
第五種:

 >>> a=7
>>> for i in range(3):
...     a*=7
...
>>> a
2401 
第六種:

>>> "*7"*4
'*7*7*7*7'
>>> "*7"*4[1:]
Traceback (most recent call last)
File "<stdin>", line 1, in <mod
TypeError: 'int' object has no at
>>> ("*7"*4)[1:]
'7*7*7*7'
>>> eval(("*7"*4)[1:])

2401

第七種:

 >>> a=['7']*4
>>> "*".join(a)
'7*7*7*7'
>>> eval("*".join(['7']*4))
2401
 
5.#寫程序將溫度從華氏溫度轉換為攝氏溫度。轉換公式為C=5/9*(F-32)
 >>> def FtoC(degree):
...     return float("%.2f" %(5.0*100/9*(degree-32)/100))
...
>>> print FtoC(100)
37.78 
 
6.#一家商場在降價促銷。如果購買金額50-100元(包含50元和100元)之間,會給10%的折扣,如果購買金額大於100元會給20%折扣。編寫一程序,詢問購買價格,再顯示出折扣(%10或20%)和最終價格

#coding=utf-8

customer_price=float(raw_input("please input pay money:"))
if customer_price >=50 and customer_price<=100:
print "disconunt 10%% ,after discount you shoud pay %s" \
%(customer_price*(1-0.1))
elif customer_price >100:
print "disconunt 20%% ,after discount you shoud pay %s" \
%(customer_price*(1-0.2))
else:
print "disconunt 0%% ,after discount you shoud pay %s" \
%customer_price

 
7.#判斷一個數n能同時被3和5整除
while 1:
     n=input("please input a number:")
     if n%3==0 and n%5==0:
          print "the number 可以同時被3和5整除"
     else:
          print"input again!"
輸出結果:
please input a number:1
the number 可以同時被3和5整除
please input a number:4
input again!
please input a number:5
input again!
please input a number:
8.#求1+2+3+...+100(第一種)
s=0
for i in range(101):
     s+=i
     i+=1
print s
輸出結果:
5050
#求1+2+3+...+100(第二種)
i=1
s=0
while i<101:
   s+=i
   i+=1
print s
輸出結果:
5050
#求1+2+3+...+100(第三種)
>>> print reduce(lambda x,y:x+y,range(1,101))
5050
>>>
9.#交換兩個變量的值
第一種:
a=input("please input a number a:")
b=input("please input a number b:")
if a>b:
    tmp=a
    a=b
    b=tmp
print a,b
輸出結果:
please input a number a:3
please input a number b:2
2 3
>>>
第二種:
 >>> a=1
>>> b=2
>>> a,b=b,a
>>> a,b
(2, 1) 
10.#輸入三個數字,以逗號隔開,輸出其中最大的數
a=input("please input a list of three bumber:")
print max(a)
輸出結果:
please input a list of three bumber:4,7,3
7
11.#輸入一個年份,輸出是否為閏年
#閏年條件:能被4整除但不能被100整除,或者能被400整除的年份都是閏年

#encoding=utf-8
a=input("please input a number as
time of year:")
if a%4==0 and a%400==0:
print "%d is a leap year!"%a
elif a%400==0:
print "%d is a leap year!"%a
else:
print "%d is not leap year!"%a

輸出結果:
please input a number as time of year:2000
the number is leap year!
>>>
==================== RESTART: C:\Users\ASUS\Desktop\a.py ====================
please input a number as time of year:2014
the number is not leap year!
>>>

12.#一個足球隊在尋找年齡在10歲到12歲的小女孩(包括10歲和12歲)加入。編寫一個程序,詢問用戶的性別(m表示男性,f表示女性)和年齡,然后顯示一條消息指出這個人是否可以加入球隊,詢問10次后,輸出滿足條件的總人數。

#encoding=utf-8

i=0
sum=0
while i<10:
a=raw_input("please tell me your gender:")
b=input("please tell me your age:")
if a=='f' and 10<=b<=12:
print "You can join in our basketball team!"
sum+=1
i+=1

print u"\n滿足條件的人數為:%d人" %sum

 

13.#輸入1-127的ASCII碼並輸出對應的字符
while 1:
     a=input("please input the ASCII of 1-127:")
     print chr(a)
14.#3個人在餐廳吃飯,想分攤飯費。總共花費35.27美元,他們還想給15%的消費。每個人該怎么付錢
print (35.27+0.15*35.27)/3
輸出結果:
13.5201666667
>>>
15.#一周有幾天,一天有幾個小時,一小時有幾分鍾,一分鍾有多少秒
#encoding=utf-8
a=int(raw_input('一周有幾天:'))
b=int(raw_input('一天有幾小時:'))
c=int(raw_input('一小時有幾分鍾:'))
d=int(raw_input('一分鍾有幾秒:'))
 
print '*'*20
print '一周有%d分鍾'%(a*b*c)
print '一周有%d秒'%(a*b*c*d)
15、#猜數:
猜數小練習:

生成隨機整數,從1-5取出來
然后輸入一個數字,來猜,如果大於,則打印bigger
小了,則打印less
如果相等,則打印equal

#coding=utf-8

import random
a=random.randint(1,5)
print "a is %d"%a
b=input("please input a number:")
if b>a:
print"bigger!"
elif b<a:
print"less!"
elif b==a:
print "equal!"

16、打印10到1的數字:

17.寫一個列表,倒序輸出,用while循環實現

 18.在15題的基礎上,補充只允許輸入3次,猜錯了就退出

 #coding=utf-8
import random

target_number=random.randint(1,5)
print target_number
guess_times=3
while guess_times>0:
    guess_number=int(raw_input("please input your guess number:"))
    if guess_number>target_number:
        print "bigger"
    elif guess_number<target_number:
        print "less"
    else:
        print "you got it"
        break
    guess_times-=1
 

 19.在18題的基礎上,補充猜不中的情況下一直循環,直到猜中為止,計算猜的次數

 #coding=utf-8
import random

target_number=random.randint(1,5)
print target_number
guess_times=3
while guess_times>0:
    guess_number=int(raw_input("please input your guess number:"))
    if guess_number>target_number:
        print "bigger"
    elif guess_number<target_number:
        print "less"
    else:
        print "you got it"
        break
    guess_times-=1
 20、什么是素數
 素數:只能被1和它本身整除,這樣的數稱之為素數 
 >>> number=raw_input("input a number:")
input a number:13
>>> number=int(number)
>>> number
13
>>> for i in range(2,number):
...     if number%i==0:
...         print "not a prime"
...         break
... else:
...     print "%s is a prime" %number
...
13 is a prime
 21.#階乘
 >>> def fact(n):
...     result=1
...     for i in range(1,n+1):
...         result*=i
...     return result
...
>>> print fact(4)
#遞歸
 #coding=utf-8

def fact(n):
    #第一個條件:寫出結束遞歸的分支
    #第二個條件:寫出自己調用自己的分支
    if n<=1:
        return 1
    else:
        return n*fact(n-1)
print fact(5)
練習:

# coding=utf-8
def f(n):
for i in n:
if isinstance(i,(tuple,dict,list)):
f(i),#,表示不打回車
else:
print i,#,表示不打回車


a = [1,2,(3,4,'sdsf',[5,6,'greg','kohi',
(7,8,9)]),'greg','pprgr']
f(a)

輸出結果

1 2 3 4 sdsf 5 6 greg kohi 7 8 9 greg pprgr

 22.#嵌套循環輸出10-50中個位帶有1-5的所有數字

方法一:

 >>> for i in range(1,5):
...     for j in range(1,6):
...         print str(i)+str(j)
方法二:
 >> for i in range(10,50):
..     if str(i)[1] in ["1","2","3","4","5"]:
..         print i

 23、輸入1-127的ascii碼並輸出對應字符

>>> for i in range(1,128):
... print chr(i)

輸出結果:

24、計算一周有多少分鍾、多少秒鍾

>>> days_in_a_week=7
>>> hours_in_a_day=24
>>> mins_in_a_hour=60
>>> secs_in_a_minute=60
>>> print days_in_a_week*hours_in_a_day* mins_in_a_hour*secs_in_a_minute
604800

 25、3個人在餐廳吃飯,想分攤飯費。總共花費35.27美元,他們還想給15%的消費。每個人該怎么付錢

 >>> print "pay %.2f per person" %(35.27*(1+0.15)*100/3/100) #.2f意思是保留兩個小數
pay 13.52 per person
26.現在有面包、熱狗、番茄醬、芥末、洋蔥,預定是1,不訂是0,其中面包必訂,
 #coding=utf-8

for bread in ["1"]:
    for hotdog in ["1","0"]:
        for jam in ["1","0"]:
            for jiemo in ["1","0"]:
                for onion in ["1","0"]:
                    print bread+hotdog+jam+jiemo+onion
26、

#coding=utf-8

cal_in_bread=1
cal_in_hotdog=1
cal_in_jam=1
cal_in_jiemo=1
cal_in_onion=1

for bread in ["1"]:
for hotdog in ["1","0"]:
for jam in ["1","0"]:
for jiemo in ["1","0"]:
for onion in ["1","0"]:
print "*"*50
print bread+hotdog+jam+jiemo+onion
print int(bread)*cal_in_bread+int(hotdog)*cal_in_hotdog+int(jam)*cal_in_jam+int(jiemo)*cal_in_jiemo+int(onion)*cal_in_onion

27、輸入3個數,以逗號隔開,輸出其中最大的數

 >>> a=1
>>> b=2
>>> c=3
>>> if a>b:
...     max=a
... else:
...     max=b
...
>>> if max>c:
...     print max
...    else:
...        print c

28、求兩個正整數m和n的最大公約數:
 def hcf(x, y):
# 獲取最小值
    if x > y:
        smaller=y
        biger=x
    else:
        smaller=x
        biger=y
    if biger%smaller==0:
        hcf=smaller
    else:
        for i in range(1,(smaller + 1)/2):
            if((x % i == 0) and (y % i == 0)):
                hcf = i
    return hcf


# 用戶輸入兩個數字
num1 = int(input("輸入第一個數字: "))
num2 = int(input("輸入第二個數字: "))

print num1,"和", num2,"的最大公約數為", hcf(num1, num2)
 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM