Python 基础练习
今天接觸了python,了解了一下 python 的基礎語法,于是想著手訓練一下,在本習題集中,參考代碼為提供的參考答案,前面的代碼為自己思考的代碼,最后每道題給出練習的時間。
Python 基礎練習題1
題目:有1、2、3、4個數字,能組成多少個互不相同且無重復數字的三位數?都是多少?
代碼
def printNum():sum = 0for i in range(1,5):for j in range(1,5):for k in range(1,5):if i==j or i == k or j == k:continueelse:sum += 1print i,j,kprint "sum:",sum,"line"printNum()運行結果
1 2 3 1 2 4 1 3 2 1 3 4 1 4 2 1 4 3 2 1 3 2 1 4 2 3 1 2 3 4 2 4 1 2 4 3 3 1 2 3 1 4 3 2 1 3 2 4 3 4 1 3 4 2 4 1 2 4 1 3 4 2 1 4 2 3 4 3 1 4 3 2 sum: 24 line參考代碼
#!/usr/bin/python # -*- coding: UTF-8 -*-for i in range(1,5):for j in range(1,5):for k in range(1,5):if( i != k ) and (i != j) and (j != k):print i,j,k用時: 44min
Python 基礎練習題2
題目:企業發放的獎金根據利潤提成。利潤(I)低于或等于10萬元時,獎金可提10%;利潤高于10萬元,低于20萬元時,低于10萬元的部分按10%提成,高于10萬元的部分,可可提成7.5%;20萬到40萬之間時,高于20萬元的部分,可提成5%;40萬到60萬之間時高于40萬元的部分,可提成3%;60萬到100萬之間時,高于60萬元的部分,可提成1.5%,高于100萬元時,超過100萬元的部分按1%提成,從鍵盤輸入當月利潤I,求應發放獎金總數?
代碼
#!/usr/bin/python # -*- coding: UTF-8 -*-def countBonus():profit = int(raw_input('請輸入利潤(萬):')) #這里要定義為intif profit <= 10:bonus = profit * 0.1elif profit > 10 and profit <= 20:bonus = 10 * 0.1 + (profit-10) * 0.075elif profit > 20 and profit <= 40:bonus = 10 * 0.1 + 10 * 0.075 + (profit-20)*0.05elif profit > 40 and profit <= 60:bonus = 10 * 0.1 + 10 * 0.075 + 20 * 0.05 + (profit-40) * 0.03elif profit > 60 and profit <= 100:bonus = 10 * 0.1 + 10 * 0.075 + 20 * 0.05 + 20 * 0.03 + (profit - 60) * 0.015elif profit > 100:bonus = 10 * 0.1 + 10 * 0.075 + 20 * 0.05 + 20 * 0.03 + 40 * 0.015 + (profit-100)*0.01print "獎金(萬)為:",bonuscountBonus()運行結果
請輸入利潤(萬):12 獎金(萬)為: 1.15參考代碼
#!/usr/bin/python # -*- coding: UTF-8 -*-i = int(raw_input('凈利潤:')) arr = [1000000,600000,400000,200000,100000,0] rat = [0.01,0.015,0.03,0.05,0.075,0.1] r = 0 for idx in range(0,6):if i>arr[idx]:r+=(i-arr[idx])*rat[idx]print (i-arr[idx])*rat[idx]i=arr[idx] print r用時: 20min
Python 基礎練習題3
題目:一個整數,它加上100和加上268后都是一個完全平方數,請問該數是多少?
代碼
#!/usr/bin/python # -*- coding: UTF-8 -*-import math def calculate():for i in range(1,10001):getNum1 = math.sqrt(i+100)getNum2 = math.sqrt(i+268)if getNum1 % int(getNum1) == 0 and getNum2 % int(getNum2) == 0:print icalculate()運行結果
21 261 1581參考代碼
#!/usr/bin/python # -*- coding: UTF-8 -*-import math for i in range(10000):#轉化為整型值x = int(math.sqrt(i + 100))y = int(math.sqrt(i + 268))if(x * x == i + 100) and (y * y == i + 268):print i用時: 16min
Python 基礎練習題4
題目:輸入某年某月某日,判斷這一天是這一年的第幾天
代碼
#!usr/bin/python # -*- coding: UTF-8 -*-#閏年 leapYear = [31,29,31,30,31,30,31,31,30,31,30,31] # 普通年 commonYear = [31,28,31,30,31,30,31,31,30,31,30,31]def countDay():getDate = raw_input("請輸入年月日(XXXX.XX.XX 例如:2016.10.30):")date = getDate.split(".")# 分別獲得年月日year = int(date[0])month = int(date[1])day = int(date[2])sum = 0if (year % 100 == 0 and year % 400 == 0) or (year % 4 == 0 and year % 100 != 0):# 閏年for i in range(1,month):sum += leapYear[i]sum += dayelse:for i in range(1,month):sum += commonYear[i]sum += dayprint "該日期為該年份的第:",sum,"天"while 1:countDay()ifExit = raw_input("是否退出?(Y/N):")if ifExit == "Y" or ifExit == "y":break運行結果
請輸入年月日(XXXX.XX.XX 例如:2016.10.30):2016.10.03 該日期為該年份的第: 277 天 是否退出?(Y/N):n 請輸入年月日(XXXX.XX.XX 例如:2016.10.30):2000.8.7 該日期為該年份的第: 220 天 是否退出?(Y/N):n 請輸入年月日(XXXX.XX.XX 例如:2016.10.30):1900.3.2 該日期為該年份的第: 61 天 是否退出?(Y/N):y參考代碼
#!/usr/bin/python # -*- coding: UTF-8 -*-year = int(raw_input('year:\n')) month = int(raw_input('month:\n')) day = int(raw_input('day:\n'))months = (0,31,59,90,120,151,181,212,243,273,304,334) if 0 < month <= 12:sum = months[month - 1] else:print 'data error' sum += day leap = 0 if (year % 400 == 0) or ((year % 4 == 0) and (year % 100 != 0)):leap = 1 if (leap == 1) and (month > 2):sum += 1 print 'it is the %dth day.' % sum用時: 27min
Python 基礎練習題5
題目:輸入三個整數x,y,z,請把這三個數由小到大輸出。
代碼
#!usr/bin/python # -*- coding: UTF-8 -*-def demoFunction():getNum = raw_input("請輸入三個數字(用英文符號 , 隔開):")num = getNum.split(",")num1 = int(num[0])num2 = int(num[1])num3 = int(num[2])if num1>num2:temp = num2num2 = num1num1 = tempif num1>num3:temp = num3num3 = num1num1 = tempif num2 > num3:temp = num3num3 = num2num2 = tempprint num1,num2,num3demoFunction()運行結果
請輸入三個數字(用英文符號 , 隔開):3,7,1 1 3 7代碼優化
#! usr/bin/python # -*- coding: UTF-8 -*-def demoFunction():getNum = raw_input("請輸入三個數字(用英文符號 , 隔開):")num = getNum.split(",")num1 = int(num[0])num2 = int(num[1])num3 = int(num[2])if num1>num2:num1,num2 = num2,num1if num1>num3:num1,num3 = num3,num1if num2 > num3:num2,num3 = num3,num2print num1,num2,num3demoFunction()參考代碼
#!/usr/bin/python # -*- coding: UTF-8 -*-l = [] for i in range(3):x = int(raw_input('integer:\n'))l.append(x) l.sort() print l用時: 10min
Python 基礎練習題6
題目:斐波那契數列。
代碼
#! usr/bin/python # -*- coding: UTF-8 -*-# 斐波那契數列 def Fibonacci(num):if num == 1:print "0"elif num == 2:print "1"else:fib = [0,1]for i in range(2, num):fib.append(int(fib[i-1]) + int(fib[i-2]))print fibnum = int(raw_input("請輸入斐波那契數列的位數:")) Fibonacci(num)運行結果
請輸入斐波那契數列的位數:10 [0, 1, 1, 2, 3, 5, 8, 13, 21, 34]參考代碼
方法一
#!/usr/bin/python # -*- coding: UTF-8 -*-def fib(n):a,b = 1,1for i in range(n-1):a,b = b,a+breturn a# 輸出了第10個斐波那契數列 print fib(10)方法二
#!/usr/bin/python # -*- coding: UTF-8 -*-# 使用遞歸 def fib(n):if n==1 or n==2:return 1return fib(n-1)+fib(n-2)# 輸出了第10個斐波那契數列 print fib(10)方法三
#!/usr/bin/python # -*- coding: UTF-8 -*-def fib(n):if n == 1:return [1]if n == 2:return [1, 1]fibs = [1, 1]for i in range(2, n):fibs.append(fibs[-1] + fibs[-2])return fibs# 輸出前 10 個斐波那契數列 print fib(10)用時: 12min
Python 基礎練習題7
題目:將一個列表的數據復制到另一個列表中。
參考代碼
#!/usr/bin/python # -*- coding: UTF-8 -*-a = [1, 2, 3] b = a[:] print b運行結果
[1,2,3]用時: 0min
Python 基礎練習題8
題目:輸出9x9乘法口訣表
代碼
#! usr/bin/python # -*- coding: UTF-8 -*-for i in range(1,10):for j in range(i,10):print i,"*",j,"=",i*jprint ""運行結果
1 * 1 = 1 1 * 2 = 2 1 * 3 = 3 1 * 4 = 4 1 * 5 = 5 1 * 6 = 6 1 * 7 = 7 1 * 8 = 8 1 * 9 = 92 * 2 = 4 2 * 3 = 6 2 * 4 = 8 2 * 5 = 10 2 * 6 = 12 2 * 7 = 14 2 * 8 = 16 2 * 9 = 183 * 3 = 9 3 * 4 = 12 3 * 5 = 15 3 * 6 = 18 3 * 7 = 21 3 * 8 = 24 3 * 9 = 274 * 4 = 16 4 * 5 = 20 4 * 6 = 24 4 * 7 = 28 4 * 8 = 32 4 * 9 = 365 * 5 = 25 5 * 6 = 30 5 * 7 = 35 5 * 8 = 40 5 * 9 = 456 * 6 = 36 6 * 7 = 42 6 * 8 = 48 6 * 9 = 547 * 7 = 49 7 * 8 = 56 7 * 9 = 638 * 8 = 64 8 * 9 = 729 * 9 = 81用時: 4min
Python 基礎練習題9
題目:暫停一秒輸出。
代碼1
#! usr/bin/python # -*- coding: UTF-8 -*-import timefor i in range(5):time.sleep(1)print i運行結果
0 1 2 3 4代碼2
#!/usr/bin/python # -*- coding: UTF-8 -*- import timeprint time.strftime('%Y-%m-%d %H:%M:%S',time.localtime(time.time()))# 暫停一秒 time.sleep(1)print time.strftime('%Y-%m-%d %H:%M:%S',time.localtime(time.time()))運行結果
2016-11-03 11:18:10 2016-11-03 11:18:11用時: 2min
轉載于:https://www.cnblogs.com/hlwyfeng/p/6011275.html
總結
以上是生活随笔為你收集整理的Python 基础练习的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: php获取目录中的所有文件名
- 下一篇: websocket python爬虫_p