日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

python小题库

發(fā)布時間:2023/12/9 python 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python小题库 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

🌞歡迎來到機器學(xué)習(xí)的世界?
🌈博客主頁:卿云閣

💌歡迎關(guān)注🎉點贊👍收藏??留言📝

🌟本文由卿云閣原創(chuàng)!

🌠本階段屬于練氣階段,希望各位仙友順利完成突破

📆首發(fā)時間:🌹2021年4月3日🌹

??希望可以和大家一起完成進階之路!

🙏作者水平很有限,如果發(fā)現(xiàn)錯誤,請留言轟炸哦!萬分感謝!


目錄

🍈 一、實驗1 程序流程控制

?🍉二.?實驗2 內(nèi)置數(shù)據(jù)類型的使用

🍊三,實驗3 序列數(shù)據(jù)類型的使用

🍋四、實驗4 Python中函數(shù)的使用

🥝實驗5 類和對象(python)

🍈 一、實驗1 程序流程控制

?1?使用print()函數(shù)輸出“Hello?world!

print("hello world!")

2?編寫一個程序,通過用戶輸入一個數(shù)字,并計算這個數(shù)字的平方根

【程序分析】

關(guān)于計算平方根的,可以使用在指數(shù)運算符**來計算該數(shù)的平方根,也可以使用math函數(shù)中的sqrt,不同的是,指數(shù)**只適用于正數(shù),而sqrt適用于任何數(shù)。接下來,按照下列步驟實現(xiàn)程序:

(1) 提示用戶輸入一個數(shù)(必須將輸入的數(shù)轉(zhuǎn)為數(shù)字類型)

(2) 使用math函數(shù)的sqrt計算這個數(shù)的平方根

(3) 輸出運算結(jié)果

import math num=float(input('請輸入一個數(shù)字:')) newnum=math.sqrt(num) print('該數(shù)的平方根是:',newnum)

3?通過用戶輸入三角形三邊長度,并計算三角形的面積

【程序分析】

要想計算三角形的面積,需要獲取三角形的三邊長度,假設(shè)三角形的三邊分別是a,b,c,那么面積的計算方式如下:

三角形半周長s=(a+b+c)/2

三角形面積=(s*(s-a)*(s-b)*(s-c)) ** 0.5

import math l1=float(input('請輸入一個邊長:')) l2=float(input('請輸入一個邊長:')) l3=float(input('請輸入一個邊長:')) c=(l1+l2+l3)/2 s=math.sqrt(c*(c-l1)*(c-l2)*(c-l3)) print('由這三邊構(gòu)成的三角形的面積為:',s)

4 編寫程序,解一元二次方程 ?x2-10x+16=0

import math a=1;b=-10;c=16 x1=(-b+math.sqrt(b*b-4*a*c))/(2*a) x2=(-b-math.sqrt(b*b-4*a*c))/(2*a) print('方程x*x-10x+16的解為:',x1,x2)

5?編寫程序,計算2+4+6+8+...+100之和

sum=0 for i in range(101):if i%2==0:sum=sum+i print(sum)

6?編寫程序,計算Sn=1-3+5-7+9-11+...,并計算n為50時候的值

【程序分析】

可以使用if i%2 = = 0的語句形式判斷i是否為偶數(shù)

sum = 0 for i in range(1, 100, 2):if i % 2 == 1:if (i + 1) % 4 == 0:i = -isum = sum + i print(sum)

7 編寫程序,打印九九乘法表。要求輸出九九乘法表的上三角和下三角的顯示效果

#下三角 for i in range(1,10):s=''for j in range(1,i+1):s+=str.format("{0:1}*{1:1}={2:<2} ",i,j,i*j)print(s)print('-------------------------------------------------------------------')#上三角 for i in range(1,10):s=''for k in range(1,i):print(end=" ")for j in range(i,10):s+=str.format("{0:1}*{1:1}={2:<2} ",i,j,i*j)print(s)

8?編寫程序,輸入x,根據(jù)如下公式計算分段函數(shù)y的值。

#單分支結(jié)構(gòu) import math x=float(input('請輸入一個數(shù)字:')) if x>=0:y=(x*x-3*x)/(x+1)+2*math.pi+math.sin(x) if x<0:y=math.log(-5*x)+6*math.sqrt(math.fabs(x)+math.exp(4))-math.pow(x+1,3) print('結(jié)果為:',y) #雙分支結(jié)構(gòu) import math x=float(input('請輸入一個數(shù)字:')) if x>=0:y=(x*x-3*x)/(x+1)+2*math.pi+math.sin(x) else:y=math.log(-5*x)+6*math.sqrt(math.fabs(x)+math.exp(4))-math.pow(x+1,3) print('結(jié)果為:',y) #利用條件運算語句實現(xiàn) import math x=float(input('請輸入一個數(shù)字:')) y=((x*x-3*x)/(x+1)+2*math.pi+math.sin(x)) if ((x>=0)) else \(math.log(-5*x)+6*math.sqrt(math.fabs(x)+math.exp(4))-math.pow(x+1,3)) print('結(jié)果為:',y)

9?編寫程序,產(chǎn)生兩個0~100(包含0和100)的隨機整數(shù)a和b,求這兩個整數(shù)的最大公約數(shù)和最小公倍數(shù)。其運行效果如下圖所示

【程序分析】

(1) 可以利用“random.randint(0,100)”的語句形式生成0~100(包含0和100)的隨機整數(shù)。

(2) 利用“輾轉(zhuǎn)相除法”求最大公約數(shù),具體算法如下。

①?對于已知的兩個正整數(shù)m、n,使得m>n。

②?m除以n得余數(shù)r

③?若r10,則令m?n,n?r,繼續(xù)相除得到新的余數(shù)r。若仍然r10,則重復(fù)此過程,直到r10為止。最后的m就是最大公約數(shù)

(3) 求得了最大公約數(shù),最小公倍數(shù)就是已知的兩個正整數(shù)之積除以最大公約數(shù)的商。

import randoma=random.randint(0,100) b=random.randint(0,100) print('產(chǎn)生的第一個隨機數(shù)為:',a) print('產(chǎn)生的第二個隨機數(shù)為:',b) x=a y=b if x<y:x,y=y,x while(y):n=x%yif n==0:breakelse:x=yy=n print('最大公約數(shù)為:',y) print('最小公倍數(shù):',a*b/y)

?🍉二.?實驗2 內(nèi)置數(shù)據(jù)類型的使用

?1?編寫程序,用于實現(xiàn)十進制轉(zhuǎn)二進制、八進制、十六進制。

【程序分析】

不同進制之間的轉(zhuǎn)換,需要用到下列方法:

(1) bin():將十進制的數(shù)轉(zhuǎn)為二進制

(2) oct():將十進制的數(shù)轉(zhuǎn)為八進制

(3) hex(): 將十進制的數(shù)轉(zhuǎn)為十六進制

a=int(input("請輸入數(shù)字:")) print("十進制:",a) print("二進制:",bin(a)) print("八進制:", oct(a)) print("十六進制:",hex(a))結(jié)果: 請輸入數(shù)字:11 十進制: 11 二進制: 0b1011 八進制: 0o13 十六進制: 0xb

2?編寫程序,實現(xiàn)將字符串轉(zhuǎn)換為大寫字母,或者將字符串轉(zhuǎn)為小寫字母等。

【程序分析】

字符串str提供了很多轉(zhuǎn)換字母的方法,具體如下:

(1) upper():將所有字符中的小寫字母轉(zhuǎn)換為大寫字母

(2) lower():把所有字符中的大寫字母轉(zhuǎn)為小寫字母

(3) capitalize():把第一個字母轉(zhuǎn)化為大寫字母,其余小寫

(4) title():把每個單詞的第一個字母轉(zhuǎn)化為大寫,其余小寫

S='abcDEf' print('uppercase string:',S.upper()) print('lowercase string:',S.lower())結(jié)果: uppercase string: ABCDEF lowercase string: abcdef

3 編寫一個程序,將用戶輸入的兩個變量進行相互交換。要求不使用臨時變量實現(xiàn)

【程序分析】

與其他語言不同,Python中的變量可以通過下列方式進行賦值:

x,y = y,x

上述代碼的作用就是將x的值賦給y,將y的值賦給x,即x和y值的互換。

a=int(input("請輸入數(shù)字;")) b=int(input("請輸入數(shù)字;")) print("past a=",a) print("past b=",b) a,b=b,a print("now a=",a) print("now b=",b)結(jié)果: 請輸入數(shù)字;1請輸入數(shù)字;2 past a= 1 past b= 2 now a= 2 now b= 1

4?編寫一個程序,演示Python字符串中和判斷有關(guān)的方法的使用。

【程序分析】

字符串中常見的判斷操作的方法如下所示:

(1) isalnum(): 判斷所有字符都是數(shù)字或者字母

(2) isalpha(): 判斷所有字符都是字母

(3) isdigit():判斷所有字符都是數(shù)字

(4) islower():判斷所有字符都是小寫

(5) isupper():判斷所有字符都是大寫

(6) istitle():判斷所有單詞都是首字母大寫,像標題

(7) isspace():判斷所有字符都是空白字符、\t、\n、\r

str=input("請輸入一個字符串:") if str. isalnum():print("所有字符都是數(shù)字或者字母") if str.isalpha() :print("所有字符都是字母") if str.islower():print("所有字符都是小寫")結(jié)果: 請輸入一個字符串:abcdef 所有字符都是數(shù)字或者字母 所有字符都是字母 所有字符都是小寫

5?用程序?qū)崿F(xiàn)輸入字符串,字符串中單詞用一種分隔符(如空格,、|中的任意符號)分隔,并統(tǒng)計所輸入字符串中單詞的個數(shù)

例如,屏幕提示請輸入字符串后,輸入字符串為

“The、quick、brown、fox、jumps、over、the、lazy、dog”,

字符串中單詞用、分隔,則單詞個數(shù)為9

【程序分析】

(1) 首先利用input提示用戶輸入字符串

(2) 把輸入的字符串對象綁定給變量s

(3) 調(diào)用s.split()函數(shù)來拆分字符串。通過指定分隔符對字符串進行切片,并返回分割后的字符串列表(list)。注意,split函數(shù)的參數(shù)用來設(shè)定分隔符

(4) 統(tǒng)計list中元素的個數(shù)即為字符串的個數(shù)

s=input("請您輸入一串字符串:") list=s.split(',') print("拆分后的字符串list=",list) print("字符串的個數(shù)",len(list))結(jié)果: 請您輸入一串字符串:The,quick,brown,fox,jumps,over,the,lazy,day 拆分后的字符串list= ['The', 'quick', 'brown', 'fox', 'jumps', 'over', 'the', 'lazy', 'day'] 字符串的個數(shù) 9

6?根據(jù)Python語言中的排序和循環(huán)功能,實現(xiàn)刪除一個list里面的重復(fù)元素

例如,

變換前l(fā)ist=[1, 5, 3, 6, 3, 4, 9, 2, 7, 4, 2, 8, 1, 10]

變換后list=[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

【程序分析】

(1) 首先調(diào)用list.sort()對序列進行排序

(2) 然后調(diào)用last=list[-1]語句從后向前找出重復(fù)的元素,并逐個打印非重復(fù)的元素

List=[1, 5, 3, 6, 3, 4, 9, 2, 7, 4, 2, 8, 1, 10] print("變換前l(fā)ist=",List) List.sort() print("先排序的list=",List) last=List[-1] for i in range(len(List)-2,-1,-1):if last==List[i]:del List[i]else: last=List[i] print("變換后的list=",List)結(jié)果: 變換前l(fā)ist= [1, 5, 3, 6, 3, 4, 9, 2, 7, 4, 2, 8, 1, 10] 先排序的list= [1, 1, 2, 2, 3, 3, 4, 4, 5, 6, 7, 8, 9, 10] 變換后的list= [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

7?編寫程序,求列表s=[9, 7, 8, 3, 2, 1, 55, 6]中的元素的個數(shù),最大值和最小值,以及元素之和還有平均值,最后將列表s翻轉(zhuǎn)過來即s=[6, 55, 1, 2, 3, 8, 7, 9].要求不得使用for循環(huán)和while循環(huán)實現(xiàn)s翻轉(zhuǎn)

import numpy as np s=[9, 7, 8, 3, 2, 1, 55, 6] print("列表元素個數(shù):",len(s)) print("最大值:",max(s)) print("最小值:",min(s)) print("平均值:",np.mean(s)) print("元素之和:",sum(s)) print("翻轉(zhuǎn)后s=:",s[::-1])結(jié)果: 列表元素個數(shù): 8 最大值: 55 最小值: 1 平均值: 11.375 元素之和: 91 翻轉(zhuǎn)后s=: [6, 55, 1, 2, 3, 8, 7, 9]

8?編寫程序,將列表s=[9, 7, 8, 3, 2, 1, 5, 6]中的偶數(shù)變成它的平方,奇數(shù)保持不變。

例如,

變換前,?s=[9, 7, 8, 3, 2, 1, 5, 6]

變換后,?s=[9, 7, 64, 3, 4, 1, 5, 36]

【程序分析】

可以利用“if (s[i] % 2 ==0:…)”的語句形式判斷列表中的第i個元素是否為偶數(shù)。

s=[9, 7, 8, 3, 2, 1, 5, 6] for i in range(len(s)):if(s[i]%2==0):s[i]=s[i]**2else:s[i]=s[i] print("變化后的字符串s=",s) 結(jié)果: 變化后的字符串s= [9, 7, 64, 3, 4, 1, 5, 36]

9?編寫程序,輸入字符串,將其每個字符的ASCII碼形成列表并輸出。

例如,

輸入一個字符串ABCDE123

輸出[65,?66, 67, 68, 69, 49, 50, 51]

【程序分析】

(1) 使用ord(s[i])將字符串轉(zhuǎn)化為對應(yīng)的Unicode碼

(2) 使用s.append(x)方法將對象x追加到列表s的尾部

s=input("請輸入一個字符串:") l=[] for i in s:l.append(ord(i)) print("輸出:",l)結(jié)果: 請輸入一個字符串:ABCED123 輸出: [65, 66, 67, 69, 68, 49, 50, 51]

10?創(chuàng)建由Monday’~’Sunday7個值組成的字典,輸出鍵列表、值列表以及鍵值列表。其運行效果如下圖所示。

d = {1:'Monday', 2:'Tuesday', 3:'Wednesday', 4:'Thursday', 5:'Friday', 6:'Saturday', 7:'Sunday'}#print(d.keys()) for k in d.keys():print(k, end=' ') print()#print(d.values()) for v in d.keys():print(v, end=' ') print()#print(d.items()) for i in d.items():print(i, end=' ')結(jié)果: 1 2 3 4 5 6 7 1 2 3 4 5 6 7 (1, 'Monday') (2, 'Tuesday') (3, 'Wednesday') (4, 'Thursday') (5, 'Friday') (6, 'Saturday') (7, 'Sunday')

11?隨機生成10個0()~10()的整數(shù),分別組成集合A和集合B,輸出A和B的內(nèi)容、長度、最大值、最小值以及它們的并集、交集和差集。其運行效果如下圖所示。

import random def myFunc():List = []for j in range(5):x=random.randint(0,10)List.append(x)return set(List) A = myFunc() B = myFunc() print(str.format("集合的內(nèi)容,長度,最大值,最小值分別為:\n{0} {1} {2} {3}",A,len(A),max(A),min(A))) print(str.format("{0} {1} {2} {3}",B,len(B),max(B),min(B))) print(str.format("A和B的并集,交集和差集分別為:\n{0} {1} {2} ",A|B,A&B,A-B))結(jié)果: 集合的內(nèi)容,長度,最大值,最小值分別為: {1, 10, 4, 7} 4 10 1 {1, 2, 5, 7} 4 7 1 A和B的并集,交集和差集分別為: {1, 2, 4, 5, 7, 10} {1, 7} {10, 4}

🍊三,實驗3 序列數(shù)據(jù)類型的使用

?1 正整數(shù) A 的“DA(為 1 位整數(shù))部分”定義為由 A 中所有 DA 組成的新整數(shù) PA。例如:給定 A=3862767,DA=6,則 A 的“6 部分”PA 是 66,因為 A 中有 2 個 6。
現(xiàn)給定 A、DA、B、DB,請編寫程序計算 PA+PB。

【程序分析】

輸入在一行中依次給出 A、DA、B、DB,中間以空格分隔,其中 0<A,B<1010。在一行中輸出 PA+PB 的值。

例如:3862767 6 13530293 3

PA=66, PB=333, PA+PB=333+66=399

ist=[x for x in input( "請輸入A DA B DB:").split()] A=list[0] DA=list[1] B=list[2] DB=list[3] n,m=0,0 for x in A:if DA==x:n+=1for r in B:if DB==r:m+=1PA = n * DA PB = m * DB if n!=0 and m!=0:print("PA={0}, PB={1}, PA+PB={2}".format(int(PA),int(PB),int(PA)+int(PB))) elif n==0 and m!=0:print("PA={0}, PB={1}, PA+PB={2}".format(int(PA),int(PB),int(PB))) elif n!=0 and m==0:print("PA={0}, PB={1}, PA+PB={2}".format(int(PA),int(PB),int(PA)))elif n==0 and m==0:print("PA={0}, PB={1}, PA+PB={2}".format(int(PA),int(PB),0))

?2 通過鍵盤輸入系列整數(shù)值,輸入 0 則表示輸入結(jié)束,將這些值(不含 0)建立為一個列表,并按從大到小的順序輸出該列表各元素。

a=[] x=int(input("請輸入一個整數(shù),輸入 0 則表示輸入結(jié)束:")) while x!=0:a.append(x)x=int(input("請輸入一個整數(shù),輸入 0 則表示輸入結(jié)束:")) print(a) a.sort() a.reverse() print(a)

3編寫命令行參數(shù)解析程序,解析命令行參數(shù)所輸入邊長的值,計算并輸出正方形的周長和面積。

例如, 在命令行程序輸入:pythonarg_parse.py ?--length 5

輸出: 邊長為5正方形周長為20,面積為25

【程序分析】

1、 首先導(dǎo)入argparse 模板

2、 創(chuàng)建ArgumentParser對象

3、 調(diào)用創(chuàng)建的對象的方法add_argument(),并增加要解析的命令行參數(shù)信息

4、調(diào)用創(chuàng)建對象方法parse_argvs()解析命令行參數(shù),生成對應(yīng)的列表

import argparse parser = argparse.ArgumentParser() parser.add_argument('--length', default = 10, type =int, help ='邊長') args = parser.parse_args() zhouchang = args.length * 4 area = args.length * args.length print('邊長=',zhouchang) print('邊長={0}周長={1},面積={2}'.format(args.lengthzhouchang,area))

4?編寫讀取并輸出文本文件程序,由命令行第一個參數(shù)確認所需輸出的文本文件名。

例如,本章實驗指導(dǎo)書實驗預(yù)備知識例三。

【程序分析】

1、與例三不同的是,需要由從命令行第一個參數(shù)確認所輸出的文本文件

2、輸出的文本文件,可以是自己編寫的python程序

import sys filename = sys.argv[1] f = open(filename,'r',encoding = 'utf-8') line_no=0 while True:line_no+=1line = f.readline()if line:print(line_no,":",line)else:break f.close()

5?編寫標準輸出重定向的程序,從命令行第一個參數(shù)中獲取n的值,然后將0~n、0~n的2倍值、2的0~n次冪的列表打印輸出到out.log文件中。

【程序分析】

1、首先導(dǎo)入sys模塊

2、 指定一個變量接收從命令行輸入的第一個參數(shù)n值

3、計數(shù)賦初值

4、指定標準輸出重定向到out.log文件中

5、輸出0~n、0~n的2倍值、2的0~n次冪的列表

6、通過程序命令type?out.log顯示out.log文件中的信息

import sys n = int(sys.argv[1]) power = 1 twice = 0 i = 0 f = open('out.log','w') sys.stdout = f while i<= n:print(str(i),' ',str(twice),' ',str(power))power = 2*poweri =i+1twice = 2*i sys.stdout = sys.__stdout__ print('done!')


🍋四、實驗4 Python中函數(shù)的使用

?1?定義一個求相同數(shù)字的和的函數(shù),即求s=a+aa+aaa+aaaa+aa…a的值,其中a是一個數(shù)字。

例如, ?2+22+222+2222+22222(此時共有5個

1、 根據(jù)用戶輸入的個數(shù)(長度)決定循環(huán)的次數(shù)數(shù)相加)。幾個數(shù)相加的控制變量n和a的值為函數(shù)實參,函數(shù)返回值為s。

2、 區(qū)分每次循環(huán)輸出的內(nèi)容,只要是最后一次循環(huán),就直接輸出最終的結(jié)果,其余皆為本次結(jié)果跟上加號。

3、 先從個位的數(shù)字開始計算,每執(zhí)行一次循環(huán)就把上次的結(jié)果數(shù)乘以10,使得每次的結(jié)果為30、330、3330,然后再加上個位的基本數(shù)字就行。

a = int(input("請輸入數(shù)字:")) n = int(input("請輸入個數(shù):")) def sum(a,n):an, s = 0, 0for i in range(1, n+1):an += a * 10**(i-1)s += an return s print(sum(a,n))

2 有5個人坐在一起,問第五個人多少歲?他說比第4個人大2歲。問第4個人歲數(shù),他說比第3個人大2歲。問第三個人,又說比第2個人大兩歲。問第2個人,說比第一個人大兩歲。最后問第一個人,他說是10歲。請問第五個人多大?

【程序分析】

1、題目非常符合遞歸函數(shù)的過程,所以本題采用遞歸函數(shù)完成

2、函數(shù)把問到的第幾個人作為參數(shù)i,當i的值為1時,函數(shù)返回10,其它情況均為第i-1人年齡的基礎(chǔ)上加2.

i = int(input("請輸入問到的是第幾個人:")) def f(i):if i == 1:age = 10else:age = f(i - 1) + 2return age print('此人的年紀:',f(i))

?

?3 編寫一個程序,計算兩個數(shù)的最大公約數(shù)。兩個數(shù)由鍵盤輸入作為實參。

4 編寫一個程序,計算兩個數(shù)的最小公倍數(shù)。兩個數(shù)由鍵盤輸入作為實參。

a = int(input("請輸入數(shù)字:")) b = int(input("請輸入另一個數(shù)字:")) if(a<b):t=aa=bb=t def gcd(a,b):if b==0: return areturn gcd(b,a % b) print('最大公約數(shù)為:',gcd(a,b)) print('最小公倍數(shù):',a*b/gcd(a,b))

5 編寫一個程序,實現(xiàn)簡單計算器實現(xiàn)。包括兩個數(shù)基本的加減乘除運算。加減乘除運算采用四個函數(shù)add、subtract、multiply和divide實現(xiàn)

【程序分析】

簡單計算器的開發(fā)流程如下:

1、打印菜單,提示用戶選擇要進行的運算

2、用戶選擇運算類型

3、接受用戶輸入的值,用戶參與運算

4、輸出運算的結(jié)果

需要注意的是,由于接受的用戶輸入是字符串,需要將字符串轉(zhuǎn)化為數(shù)值類型

def add(m, n):result = m + nreturn "計算結(jié)果為:{} + {} = {}".format(m, n,result)def subtraction(m, n):result = m - nreturn "計算結(jié)果為:{} - {} = {}".format(m, n, result)def multiply(m, n):result = m * nreturn "計算結(jié)果為:{} x {} = {}".format(m, n, result) def divide(m, n):result = m / nreturn "計算結(jié)果為:{} / {} = {}".format(m, n, result) print("運算類型:1.加法 2.減法 3.乘法 4.除法") choice = input("請選擇選擇要進行的運算(對應(yīng)的數(shù)字):") if choice >= '5':print("非法輸入")print("請輸入1-4的數(shù)字") else:num1 = int(input("輸入第一個數(shù)字: "))num2 = int(input("輸入第二個數(shù)字: "))if choice == '1':print(add(num1, num2))elif choice == '2':print(subtraction(num1, num2))elif choice == '3':print(multiply(num1, num2))elif choice == '4':print(divide(num1, num2))

6 編寫程序,定義一個求階乘的函數(shù)fact(n),并編寫測試代碼,要求輸入整數(shù)n(n0)。運行效果參見如下。請分別使用遞歸和非遞歸函數(shù)實現(xiàn)。

階乘運行效果:

請輸入整數(shù)n(n) : 5

5?!= 120

n = int(input('請輸入整數(shù)n(n≥0) :')) def fact(n):if n == 0: return 1return n * fact(n - 1) def notf(m):num = 1if n == 0:num = 1else:for i in range(m):num = m * numm = m-1return num print('fact',n,'! = ',fact(n)) print('notf',n,'! = ',notf(n))


🥝五、實驗5 類和對象(python)

  • ??編寫程序, 編寫一個學(xué)生類, 要求有一個計數(shù)器的屬性, 統(tǒng)計總共實例化了多少個學(xué)生.
  • 【程序分析】

  • 定義一個學(xué)生類
  • 定義一個類屬性count
  • 類的初始化(__init__(self, name, age))
  • 實例化類(自己定義幾個)
  • 打印輸出共實例化了幾個學(xué)生。
  • class student:count = 0def __init__(self,name,age):self.name = nameself.age = agestudent.count += 1 stu1 = student("張釗","18") stu2 = student("李賀", "19") stu3 = student("李宇賀", "19") print("共實例化了%d個學(xué)生"%(student.count))結(jié)果: 共實例化了3個學(xué)生

    2. 編寫程序, A 繼承了 B, 兩個類都實現(xiàn)了 handle 方法, 在 A 中的 handle 方法中調(diào)用 B 的 handle 方法。

    class B:def handle(self):print("類B的handle方法")class A(B):def handle(self):B.handle(self)print("類A的handle方法")a = A() a.handle()結(jié)果: 類B的handle方法 類A的handle方法

    3.編寫程序,創(chuàng)建類Mymath,計算圓的周長和面積以及球的表面積和體積,并編寫測試代碼,結(jié)果均保留兩位小數(shù)。

    import math class Mymath: def __init__(self,r): self.r=rdef G(self,r): return '%.2f'%(2*math.pi*self.r)def A(self,r): return '%.2f'%(math.pi*self.r*self.r)def S(self,r): return '%.2f'%(4*math.pi*self.r*self.r)def V(self,r): return '%.2f'%(4/3*math.pi*math.pow(self.r,3)) r=float(input("請輸入半徑:")) R=Mymath(r) print("圓的周長=",R.G(r)) print("圓的面積=",R.A(r)) print("球的表面積=",R.S(r)) print("球的體積=",R.V(r)) 結(jié)果: 請輸入半徑:2 圓的周長= 12.57 圓的面積= 12.57 球的表面積= 50.27 球的體積= 33.51

    4. 編寫程序,創(chuàng)建類Temperature,其包含成員變量degree(表示溫度)以及實例方法ToFahrenhrit( )(將攝氏溫度轉(zhuǎn)換為華氏溫度)和ToCelsius( )(將華氏溫度轉(zhuǎn)換為攝氏溫度),并編寫測試代碼。

    class Temperature:def __init__(self,degree): self.degree=degreedef ToFahrenhrit(degree):degree = float(degree)degree1 = (degree * 9/5) + 32return degree1def ToCelsius(degree1): degree1 = float(degree1)degree = (degree1 - 32) * 5 /9return degree print("1.從攝氏溫度到華氏溫度.") print("2.從華氏溫度到攝氏溫度.") choice=float(input("請選擇轉(zhuǎn)換方向:")) if choice==1:degree=float(input("請輸入攝氏溫度:")) #實例F=Temperature.ToFahrenhrit(degree)print("攝氏溫度={0},華氏溫度={1}".format(degree,F)) elif choice==2:degree1=float(input("請輸入華氏溫度:")) #實例C=Temperature.ToCelsius(degree1)print("華氏溫度={0},攝氏溫度={1}".format(degree1,C)) else:print("無此選項,只能選擇1或2")結(jié)果: 1.從攝氏溫度到華氏溫度. 2.從華氏溫度到攝氏溫度.請選擇轉(zhuǎn)換方向:1請輸入攝氏溫度:37 攝氏溫度=37.0,華氏溫度=98.6

    5.編寫程序, 設(shè)計一個學(xué)生類。這個學(xué)生類中包含學(xué)生的學(xué)號、姓名和成績。計算3名學(xué)生的成績平均分。(三名學(xué)生的信息:學(xué)號:a1001,姓名:張三,成績:92。學(xué)號:a1002,姓名:李四,成績:82。學(xué)號:a1003,姓名:王五,成績:97。)

    class Student(object):def __init__(self, number,name,scores):self.number = number self.name = name self.scores = scores stu1 = Student("a1001","張三",92) stu2 = Student("a1002","李四",82) stu3 = Student("a1003","王五",97) print("3名學(xué)生的成績平均分:%.2f"%((stu1.scores+stu2.scores+stu3.scores)/3))結(jié)果: 3名學(xué)生的成績平均分:90.33

    6. 編寫程序,按照一下要求定義一個游樂園門票類,并嘗試計算2個成人+1個小孩子平日票價。

    要求:1.平日票價100元 2.周末票價為平日票價120% 3.兒童半價

    class Ticket:def __init__(self,w=True,a=True):self.price=100if w:self.ratio=1else:self.ratio=1.2if a:self.discount=1else:self.discount=0.5def get_price(self,num):return self.price*self.ratio*self.discount*num a1=Ticket(w=True,a=True) c1=Ticket(w=True,a=False) print("2個成人+1個小孩平日票價為:%.2f" %(a1.get_price(2)+c1.get_price(1))) a2=Ticket(w=False,a=True) c2=Ticket(w=False,a=False) print("2個成人+1個小孩周末票價為:%.2f" %(a2.get_price(2)+c2.get_price(1)))結(jié)果: 2個成人+1個小孩平日票價為:250.00 2個成人+1個小孩周末票價為:300.00

    7. 編寫程序,小明和小美愛跑步,小明體重75.0公斤,小美體重45.0公斤,每次跑步會減肥0.5公斤,每吃一頓飯會增加1公斤。

    class Person:def __init__(self,name,weight):self.name=nameself.weight=weightdef get(self,m,n):return self.weight+(1*n-0.5*m) a1=Person("小明",75) a2=Person("小美",45) m=int(input("兩人跑步次數(shù)m:")) n=int(input("兩人吃飯次數(shù)n:")) print("小明經(jīng)過一段時間后的體重為:%.2f" %(a1.get(m,n))) print("小美經(jīng)過一段時間后的體重為:%.2f" %(a2.get(m,n)))結(jié)果 兩人跑步次數(shù)m:1兩人吃飯次數(shù)n:2 小明經(jīng)過一段時間后的體重為:76.50 小美經(jīng)過一段時間后的體重為:46.50

    8 編寫程序,設(shè)計一個表示學(xué)生的( Student )類,該類的屬性有姓名( name )、年齡(age)成績 scores )績包含語文、數(shù)學(xué)和英語三科成績,每科成績的類型為整數(shù)),另外有3個方法。

    ????(1獲取學(xué)生姓名的方法: getname(),返回類型為String.

    ????(2)獲取學(xué)生年齡的方法: getage()方法,返回類型為int

    ????(3)返回3門科目中最高的分數(shù): get course(),返回類型為int

    Python min() 函數(shù)

    ?語法

    min(n1, n2, n3, ...)

    或者:

    min(iterable)

    有一個或多個要比較的項目的可迭代對象。

    注意:?min() 函數(shù)不能用于比較一個數(shù)和元組。

    def min_n(a, b,*c):print(a)print(b)print(c) #此時c為一個元組min_n=min(a,b)print(min_n)for i in c:min_n=min( min_n,c)print(min_n) print(min_n(16,1,7,4,18))

    def min_n(a, b,*c):min_n=min(a,b)if len(c)!=0:for i in c:min_n1=min(c)min_n=min(min_n,min_n1)return min_n print("最小值為:",min_n(8,2)) print("最小值為:",min_n(16,1,7,4,18)) #此時c為一個元組 #min() 函數(shù)不能用于比較一個數(shù)和元組。 #len():作用:回字符串、列表、字典、元組等長度

    或者

    def min_n(a, b,*c):min1=aif min1>b:min1=bfor n in c:if min1>n:min1=n return min1 print("最小值為:",min_n(8,2)) print("最小值為:",min_n(16,1,7,4,18))

    Fibonacci(斐波那契)(遞歸和非遞歸方式實現(xiàn)。

    #遞歸方式實現(xiàn) def fib(n): if n==1 or n==2:return 1else:return fib(n-1)+fib(n-2) for i in range(1,21):if i%10!=0:print("{0:>5}".format(fib(i)),end="")elif i%10==0:print("{0:>5}".format(fib(i)),'\n') #非遞歸方式實現(xiàn) s= list(range(1, 21)) s[0]=1 s[1]=1 for i in range(2,20):s[i]=s[i-2]+s[i-1] for i in range(0,20):if i%10==0:print('\n')print("{0:>5}".format(s[i]),end="")

    命令行參數(shù)的使用(Python)(詳細教程)(計算機cmd的介紹)

    ?一、(1)cmd是什么?

    cmd是command的縮寫。命令提示符是在操作系統(tǒng)中,提示進行命令輸入的一種工作提示符。在不同的操作系統(tǒng)環(huán)境下,命令提示符各不相同。

    在windows環(huán)境下,命令行程序為cmd.exe,是一個32位的命令行程序,微軟Windows系統(tǒng)基于Windows上的命令解釋程序,類似于微軟的DOS操作系統(tǒng)。輸入一些命令,cmd.exe可以執(zhí)行,比如輸入shutdown -s就會在30秒后關(guān)機。總之,它非常有用。打開方法:開始-所有程序-附件 或 開始-尋找-輸入:cmd/cmd.exe 回車。它也可以執(zhí)行BAT文件。

    隨著Windows系統(tǒng)的出現(xiàn),計算機操作已經(jīng)完全結(jié)束,編程環(huán)境直接轉(zhuǎn)換為可視化操作界面.

    由于計算機可以實現(xiàn)各種功能,因此Windows系統(tǒng)無法可視化所有應(yīng)用程序. 因此,為所有人提供了cmd命令窗口,以方便您查詢更復(fù)雜的信息或快速查找并實現(xiàn)某些功能.

    中文名

    命令提示符

    外文名

    cmd.exe



    (2)使用步驟



    1.接著在桌面上按win+R鍵,彈出運行。



    2.calc(啟動計算器)

    3.write(寫字板)

    二,命令行參數(shù)

    命令行參數(shù)是Python語言的標準組成,是用戶在命令行中Python程序之后輸入的參數(shù),在程序中可以通過sys.argv訪問命令行參數(shù),argv[0]為Python腳本名,argv[1]為第一個參數(shù),argv[2]為第二個參數(shù),依次類推。

    三,python中關(guān)于cmd的應(yīng)用

    編寫命令行參數(shù)解析程序,解析命令行參數(shù)所輸入邊長的值,計算并輸出正方形的周長和面積。

    例如, 在命令行程序輸入:pythonarg_parse.py ?--length 5

    輸出: 邊長為5正方形周長為20,面積為25

    【程序分析】

    1、 首先導(dǎo)入argparse 模板

    2、 創(chuàng)建ArgumentParser對象

    3、 調(diào)用創(chuàng)建的對象的方法add_argument(),并增加要解析的命令行參數(shù)信息

    4、調(diào)用創(chuàng)建對象方法parse_argvs()解析命令行參數(shù),生成對應(yīng)的列表

    import argparse parser = argparse.ArgumentParser() parser.add_argument('--length', default = 10, type =int, help ='邊長') args = parser.parse_args() zhouchang = args.length * 4 area = args.length * args.length print('周長=',zhouchang) print('面積=',area)

    從控制臺讀取n個整數(shù)并計算其累計和。其中,n由程序的第一個命令行參數(shù)所確定。

    import sys n = int(sys.argv[1]) sum = 0 for i in range(n):number = int(input('請輸入整數(shù):'))sum += number print('累計和=',sum)

    ?C:\Users\Administrator? ? python解釋器的位置(由安裝路徑?jīng)Q定)

    python? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?表示用python解釋器運行文件

    Desktop/io_sum.py? ? ? ? ? ?表示文件的路徑+文件名(這里我把文件保存到桌面上)

    5? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 參數(shù)(argv[1]為第一個參數(shù))

    編寫程序,利用元組作為函數(shù)的返回值,求序列類型中的最大值,最小值和元素個數(shù),并編寫測試代碼。

    def print_info(x):i = max(x)j = min(x)l = len(x)print("最大值={0},最小值是{1},元素個數(shù)是{2}".format(i,j,l))return i, j, l s1 = [9, 8, 7, 3, 2, 1, 55, 6] s2 = ['apple', 'pear', 'melon', 'kiwi'] s3 = 'TheQuickBrownFox' print("s1=",s1) q = print_info(s1) print("s2=",s2) w = print_info(s2) print("s3=",s3) e = print_info(s3)

    總結(jié)

    以上是生活随笔為你收集整理的python小题库的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。