DHU Python Curriculumly Learning【5】——大作业_key_by_TA
生活随笔
收集整理的這篇文章主要介紹了
DHU Python Curriculumly Learning【5】——大作业_key_by_TA
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
文章目錄
- 寫在前面
- 第一次大作業
- 第二次大作業
- 第三次大作業
- 第四次大作業
- 第五次大作業
- 第六次大作業
- 第七次大作業
- 第八次大作業
- 第九次大作業
- 第十次大作業
寫在前面
助教寫的參考答案,嗯~ o( ̄▽ ̄)o,僅供參考
題目見我的另一篇博客,誒不過大多數都有在程序的最頂端有備注題目
這篇只是在復習之余隨便寫了玩玩的
同學試圖用這個復習,發現看不懂,那可不,因為有的部分用了簡潔的算法,比如遞歸什么的,還有的指令書上和ppt里都沒有,只是講解的時候跟我們提到過,讓我們了解一下他的代碼到底在說個啥
所以說上編程課不聽甚至逃課,要么自學力驚人,要么有雄厚底蘊,要么……等死(“明年再見ヾ( ̄▽ ̄)”)
-“老師,幫我看看這個程序唄,上次做的大作業,有個bug不能dig”
-“等會助教會來的鴨,作業問題你問他就好了,還有不是每次都有分析題目的嗎?”
-“可是他用的東西,大多數,超綱啊……”
-“噗”
大佬學長:“受人之托(有人出錢讓他幫忙給他講python,順便做大作業),我只做我該做的事”,“我經常寫超綱東西給他交上去,沒有什么關系的”
確實
第一次大作業
""" 一年365天,以第1天的能力值為基數,記為1.0,當好好學習時能力值相比前一天提高1‰,當沒有學習時由于遺忘等原因能力值相比前一天下降1‰。每天努力和每天放任,一年下來的能力值相差多少呢?輸出能力上升與下降兩者間的差值。 """dayup = (1.0 + 0.01)**365 daydown = (1.0 - 0.01)**365 print("每天努力:{:.2f},每天放任:{:.2f}".format(dayup,daydown)) print("dayup=",dayup) # -*- coding: utf-8 -*- """一年365天,一周5個工作日,如果每個工作日都很努力,可以提高1%,僅在周末放任一下,能力值每天下降1%,效果如何呢?請輸出一年后提高的倍數。"""power = 1 for i in range(365):if i % 7 in [0,6]:power = power * (1 - 0.01)else:power = power * (1 + 0.01) print("每周向上5天向下2天的能力值:{:.2f}".format(power)) # -*- coding: utf-8 -*- """ 如果每周連續努力5天,休息2天,為了達到每天努力1%所達到的的水平,計算:需要在工作日將提高的程度達到多少? """#一 (1+1%)^365=(1+x)^260 52周 x=(1+0.01)**(365/260)-1 print(x)#二 休息的兩天下降1%def dayUP(df):day = 1.0for i in range(365):if i % 7 in [6, 0]:day = day * (1 - 0.01)else:day = day * (1 + df)return daydayf = 0.01 while (dayUP(dayf)<37.78):dayf += 0.001 print("每天的努力參數是: {:.3f}.".format(dayf))第二次大作業
pos = int(input("請輸入月份")) months=["January","February","March","April","May","June","July","August","September","October","November","December"] print(months[pos-1]); # -*- coding: utf-8 -*- """ 編寫一個程序:從鍵盤輸入某個分鐘數,將其轉化為用小時和分鐘表示。 """time = int(input("請輸入分鐘數:"))minute=time%60hour=int(time/60)print(hour,"小時",minute,"分鐘") # -*- coding: utf-8 -*- """ 編寫計算圓面積和球體積的程序,輸出結果。 """import mathradius = float(input("請輸入半徑:"))S=math.pi*radius**2V=(4/3)*math.pi*radius**3print("面積為:{:.2f}".format(S)) print("體積為:{:.2f}".format(V)) # -*- coding: utf-8 -*- """ 4.輸入平面上的兩個點,計算兩點的距離。 """x1 = float(input("請輸入x1=")) y1 = float(input("請輸入y1=")) x2 = float(input("請輸入x2=")) y2 = float(input("請輸入y2="))distance = ((x2-x1)**2+(y2-y1)**2)**(1/2) print("距離為{:.2f}.".format(distance))第三次大作業
# -*- coding: utf-8 -*- """ 將百分制轉換為五級制,即成績不低于90分用“優秀”表示,80~89用“良好”表示,70~79用“中等”表示,60~69用“及格”表示,低于60用“不及格”表示。 """score = float(input("請輸入成績:"))if score>=90:grade="優秀" elif score>=80 and score<90:grade="良好" elif score>=70 and score<80:grade="中等" elif score>=60 and score<70:grade="及格" elif score<60:grade="不及格"print(grade) # -*- coding: utf-8 -*- """ 輸入一行字符,分別統計出其中英文字母、空格、數字和其他字符的個數。""" s =input('請輸入字符串:') dic={'letter':0,'integer':0,'space':0,'other':0} for i in s:if i >'a' and i<'z' or i>'A' and i<'Z' :dic['letter'] +=1elif i in '0123456789':dic['integer'] +=1elif i ==' ':dic['space'] +=1else:dic['other'] +=1print('統計字符串:',s) print(dic) print('------------顯示結果---------------') for i in dic:print('%s='%i,dic[i]) # -*- coding: utf-8 -*- """ 輸入三角形的3條邊,判斷能否組成三角形。若能,計算三角形的面積。 """ import matha=int(input("請輸入邊長a:")) b=int(input("請輸入邊長b:")) c=int(input("請輸入邊長c:")) if a+b > c and a+c > b and b+c > a:p = (a+b+c)/2temp = p*(p-a)*(p-b)*(p-c)s = math.sqrt(temp)print("可以構成三角形", "面積為: ", s) else:print("三邊不能構成三角形!!") # -*- coding: utf-8 -*- """ 4.勾股定理中3個數的關系a^2+b^2=c^2.編寫程序,輸出30以內,滿足上述條件的整數組合,如3,4,5就是一個組合。""" for a in range(1,31):for b in range(1,31):for c in range(1,31):if a**2+b**2==c**2 and a<b<c:print(a,b,c) # -*- coding: utf-8 -*- """ 5.求200以內能夠被13整除的最大的整數,并輸出。 """ list=[] for i in range(1,201):if i%13==0:list.append(i) print(list) print("能夠被13整除的最大的整數為",max(list)) # -*- coding: utf-8 -*- """ 6.求1~100之間的所有偶數的和。 """ sum=0 for i in range(1,101):if i%2==0:sum=sum+i print("求1~100之間的所有偶數的和為",sum)第四次大作業
# -*- coding: utf-8 -*- """ 求1~100之間所有的素數,并統計素數的個數。"""num = 2 counter = 0 while num<100:flag=1i=2while i<num:if num%i==0:flag=0breaki=i+1if flag==1:counter=counter+1print(num)num=num+1 print("counter=",counter) # -*- coding: utf-8 -*- """ 求200以內能被17整除的最大正整數。(用while) """n=200while n<=200:if n%17==0:print(n)breakn=n-1 """ 猜數游戲。預設一個0~9的整數,讓用戶輸入所猜的數。如果大于預設的數,顯示“bigger”;如果小于預設的數,顯示“smaller”.如此循環,直至猜中該數,顯示“right”。"""num=7 while True:guess = int(input("please input a number"))if guess ==num:print("right")break;elif guess >num:print("bigger")elif guess <num:print("smaller") # -*- coding: utf-8 -*- """ 用數字1、2、3、4能組成多少個互不相同且無重復數字的三位數,打印結果。"""counter=0 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):counter+=1print(i,j,k) print("個數:",counter) # -*- coding: utf-8 -*- """ Created on Wed Oct 30 15:17:24 2019@author: firstmonday """year = int(input("請輸入年份:"))if ((year % 4 == 0) and (year % 100 != 0)) or (year % 400 == 0):print(year,"是閏年" ) else:print(year,"不是閏年" ) # -*- coding: utf-8 -*- """ 求斐波那西數列第n個數及前n項和 """ """ def fun(n):list=[1,1]for i in range(2,n):list.append(list[i-1]+list[i-2])print(list)print("第n個數為",list[n-1])sum=0for j in list:sum=sum+jprint("前n項和為",sum)a = int(input("please input n")) fun(a) """def fib_recur(n):if n <= 1:return nreturn fib_recur(n-1) + fib_recur(n-2)sum=0 n = int(input("please input n")) for i in range(1, n+1):print(fib_recur(i), end=' ')sum=sum+fib_recur(i); print() print("sum=",sum)第五次大作業
# -*- coding: utf-8 -*- """ 編制判斷素數的Sub或Function函數,驗證哥德巴赫猜想:一個不小于6的偶數可以表示為兩個素數之和。例如,6=3+3,8=3+5,10=3+7"""def IsPrime(val):i=2while i<=val:if val%i ==0:breaki=i+1if i==val:return Trueelse:return Falseb=int(input("Please input a even")) if b%2==0:i=1while i<=b:j=b-iif(IsPrime(j)):if(IsPrime(b-j)):print(j,"+",b-j,"=",b)i=i+1 else: print("不是偶數") # -*- coding: utf-8 -*- """ 實現計算表達式1+3+...+(2n-1)值的函數。 """def sum(n):i=1s=0while i<=2*n-1:s=s+ii=i+2print("sum=",s)n=int(input("please input a number")) sum(n) # -*- coding: utf-8 -*- """ 完成一個函數,將所給的(1,2,3,-5,-4,5,9,-8,-1)重新排列,使得所有負數都在正數的左邊。""" def fun():num=[1,2,3,-5,-4,5,9,-8,-1]num.sort()print(num)num1=[1,2,3,-5,-4,5,9,-8,-1]num1.sort(reverse=True)print(num1)fun() # -*- coding: utf-8 -*- """ 題目:假設有4種幣值,面值分別為二角五分、一角、五分和一分。現在要找給某顧客六角三分錢。怎樣找零錢才能給顧客的硬幣個數最少 """ """ 思路:每次選擇面值不超過需要找顧客的錢的最大面值 """ v=[25,10,5,1] n=[0,0,0,0] def greedy(T):if T==0:returnelif T>v[0]:T=T-v[0];n[0]=n[0]+1greedy(T)elif v[0]>=T>v[1]:T=T-v[1];n[1]=n[1]+1greedy(T)elif v[1]>=T>v[2]:T=T-v[2];n[2]=n[2]+1greedy(T)else:T=T-v[3];n[3]=n[3]+1greedy(T)def change():T=int(input("please input money"))greedy(T)count=0for i in n:count = count+iprint(n)print("硬幣個數:",count)change()第六次大作業
# -*- coding: utf-8 -*- """ 1.a+b的n次冪的展開式中各項的系數很有規律,n=2,3,4時展開式中的各項系數分別是:1 2 1,1 3 3 1,1 4 6 4 1。這些系數構成了著名的楊輝三角形11 11 2 11 3 3 11 4 6 4 11 5 10 10 5 1 編寫代碼,輸入n值輸出楊輝三角形"""def get_triangle(num):triangle=[]for i in range(0,num+1):tmp=[1]*(i+1)for j in range(1,i):tmp[j]=triangle[i-1][j-1]+triangle[i-1][j]triangle.append(tmp)return triangledef print_triangle(triangle):n = len(triangle)for i in range(0,len(triangle)):print(" ")for k in range(1,len(triangle)-i):print(" ",end='')for j in range(0,len(triangle[i])):print(triangle[i][j]," ",end='')triangle=get_triangle(4) print_triangle(triangle) """ 2. 如果有兩個數,其中任一個數除它本身以外的所有因數的和正好等于另一個數, 則稱這兩個數互為互滿數。求出3000以內所有的互滿數并輸出。 """# 對因數求和 def appsum(x):s=0;i=1while i<x:if x%i == 0:s+=ii+=1return s# 遍歷3000以內所有數 for i in range(1, 3000):j = appsum(i)if (appsum(j)==i and i>j): #i的因數和=j且j的約數和等于iprint(i, '與', j, '是互滿數') """ 3.驗證任意一個大于5的奇數可表示為3個素數之和。 """def IsPrime(val):i=2while i<=val:if val%i ==0:breaki=i+1if i==val:return Trueelse:return Falseb=int(input("Please input a even")) if b%2==1:for i in range(2,b):for j in range(2,b-i):k = b-i-j;if (IsPrime(j) and IsPrime(j) and IsPrime(k) and i!=j!=k):print(i, "+", j,"+", k, "=", b)else:print("不是偶數") """ 4.若將某素數的各位數字順序顛倒后得到的數仍是素數,則此數稱為可逆素數。 求出100以內的可逆素數。 """def IsPrime(val):i=2while i<=val:if val%i ==0:breaki=i+1if i==val:return Trueelse:return Falsedef rev(n):x = n // 10y = n % 10r = y*10+xreturn rfor i in range(2,100):if i<10 and IsPrime(i):print("%d" % i)if (i>=10 and i<100 and IsPrime(i)):if IsPrime(rev(i)):print("%d" %i) """ 5.將一個正整數分解質因數。例如:輸入90 打印出90=2*3*3*5 """#思路:首先判斷是否是質數,然后依次進行分解。除1以外的最小質數依次整除,直到自身被整除。 num = int(input("請輸入一個數:")) print(num, end='') print('=', end='') while (num!=1):for i in range(2,num+1):if (num % i) == 0:num = int(num / i)if num == 1:print('%d' %i,end='')else:print('%d*'%i,end='')break第七次大作業
""" 1、編寫人員類(Person),該類具有姓名(Name)、年齡(Age)、性別(Sex)等域。 然后通過對Person類的繼承得到一個教師類(Teacher),該類能夠存放教師的職稱、學歷、工資、獎金等信息, 并能計算出總收入(工資+獎金),要求對該類構造函數進行重載。 """class Person:# __init__方法在類的對象被創建時執行def __init__(self, Name, Age, Sex):self.Name = Nameself.Age = Ageself.Sex = Sexclass Teacher(Person):sum = 0def __init__(self, Name, Age, Sex, Title, Qual, Salary, Prize):self.Name = Nameself.Age = Ageself.Sex = Sexself.Title = Titleself.Qual = Qualself.Salary = Salaryself.Prize = Prizedef p(self):print("Name:",self.Name)print("Age:", self.Age)print("Sex:", self.Sex)print("Title:", self.Title)print("Qual:", self.Qual)print("Salary:", self.Salary)print("Prize:", self.Prize)def count(self):sum=self.Salary+self.Prizeprint("sum is",sum)tea=Teacher('li ming',20,'male','professor','doctor',5500,2000) tea.p() tea.count() """ 2、實現如下功能:學校成員類具有成員的姓名和總人數屬性。 老師類繼承學校成員類,具有工資屬性。學生類繼承學校成員類,具有成績屬性。 創建對象時,總人數增一;對象注銷時,總人數減一。執行結果: 學校新加入一個成員:老黃 現在有成員1人 大家好,我叫:老黃 我是老師,我的工資是:3000 學校新加入一個成員:小河 現在有成員2人 大家好,我叫:小河 我是學生,我的成績是:77 小河離開了,學校還有1人 老黃離開了,學校還有0人 """class SchoolMember:# 總人數,這個是類的變量sum_member = 0# __init__方法在類的對象被創建時執行def __init__(self, name):self.name = nameSchoolMember.sum_member += 1print ("學校新加入一個成員:%s" % self.name)print ("現在有成員%d人" % SchoolMember.sum_member)# 自我介紹def say_hello(self):print("大家好,我叫:%s" % self.name)# __del__方法在對象不使用的時候運行def __del__(self):SchoolMember.sum_member -= 1print("%s離開了,學校還有%d人" % (self.name, SchoolMember.sum_member))# 老師類繼承學校成員類 class Teacher(SchoolMember):def __init__(self, name, salary):SchoolMember.__init__(self, name)self.salary = salarydef say_hello(self):SchoolMember.say_hello(self)print"我是老師,我的工資是:%d" % self.salarydef __del__(self):SchoolMember.__del__(self)# 學生類 class Student(SchoolMember):def __init__(self, name, mark):SchoolMember.__init__(self, name)self.mark = markdef say_hello(self):SchoolMember.say_hello(self)print"我是學生,我的成績是:%d" % self.markdef __del__(self):SchoolMember.__del__(self)t = Teacher("老黃", 3000) t.say_hello() s = Student("小河", 77) s.say_hello()第八次大作業
""" 1、編程序,從函數輸入一個字符串,將字符串中的數字刪除, 并將大寫字母改為小寫,最后的結果在函數中打印。 例如輸入Abc123De4f,則輸出abcdef """def f(A):B = []for i in A:if i >= 'a' and i <= 'z' or i >= 'A' and i <= 'Z':B.append(i)# join()方法用于將列表中的元素以指定的字符連接生成一個新的字符串C = ''.join(B)print(C.lower())A = str(input("請輸入一串字符:")) f(A) """ 2、編寫函數,實現如下功能:從函數輸入一個字符串,將 字符串中索引為偶數,同吋ASCII為奇數的字符后面加*號, 新生成的字符串在函數中打印。例如,輸入字符串 ABCDEFG12345,則打印A*BC*DE*FG*12345。 """ def fun(s):ret = ''# enumerate()函數用于將一個可遍歷的數據對象組合為一個索引序列# [(0,list[0]),(1,list[1]),... ]for i,elem in enumerate(s):if i % 2 == 0 and ord(elem) % 2 != 0:ret += elem + ('*')else:ret += elem + ('')return rets = 'ABCDEFG12345' print (fun(s)) """ 3、編寫函數,統計字符串中的單詞個數。例如輸入 I am a boy ! 則返回單詞個數為4。 """def f(x):B=[]B=x.split() # 字符串操作:默認以空格為切分,返回列表n=len(B)print(n)x=str(input("請輸入一串字符串:")) f(x) """ 4、創建一個字典,關鍵字為只包含字母的字符串a) 把字典中的鍵按照字母順序顯示出來。b) 根據已按照字母順序排序好的鍵,顯示這個字典中的鍵和值。 """# 創建一個字典,并把這個字典中的鍵按照字母順序顯示出來 user = {'A': 'jim', 'C': 'male', 'B': 18} a = user.keys() #keys() 函數以列表返回一個字典所有的鍵 b = sorted(a) for i in b:print(i) # 現在根據已按照字母順序排序好的鍵,顯示出這個字典中的鍵和值 for i in b:print (i, user[i]) """ 5、建立字典。輸入兩個長度相同的列表,比如說,列表[1,2,3,...]和['abc',?'def',?'ghi',?...], 用這兩個列表里的所有數據組成一個字典。像這樣:{1:'abc',?2:'def',?3:'ghi',?...}。 """# dict()函數用于創建一個字典 # zip() 將對象中對應的元素打包成一個個元組# 映射函數方式來構造字典 listdict = dict(zip([1,2,3], ['abc','def','ghi'])) print(listdict) """ 6. 使用random模塊中的randint()生成一個隨機數集合: 從0到9(包括9)中隨機選擇,生成1到10個隨機數。這些數 字組成集合A(A可以是可變集合,也可以不是)。同理,按此 方法生成集合B,顯示結果 A丨B和 A & B 。 """ import randomtmp = [] for i in range(0, 10):tmp.append(random.randint(0, 9)) A = set(tmp) tmp = [] for i in range(0, 10):tmp.append(random.randrange(0, 10)) B = set(tmp)print (A) print (B) print (A | B) print (A & B)第九次大作業
""" 1、將file1.txt文件中的每行按逆序方式輸出到file2.txt文件中。 """trans_file = ''# 保證無論是否出錯都能正確地關閉文件, # Python引入了with語句來自動幫我們調用close()方法with open('file1.txt') as file:# 遍歷file的每一行linefor line in file:# Python列表切片應用,字符串逆序輸出trans_file += line[ : :-1].strip()trans_file += '\n'with open('file2.txt', 'w') as file:file.write(trans_file)x= 'abcdaerea' z=x[-1:3:-1] print(z)# b = a[i:j] 表示:復制a[i]到a[j-1],以生成新的list對象 # b = a[i:j:s] 表示:i,j與上面的一樣,但s表示步進,缺省為1 # 當s<0時,i缺省時,默認為-1. j缺省時,默認為-len(a)-1 """ 2、scores.txt文件存放著某班學生的計算機課成績,包含學號、平時成績、期末成績三列。 請根據平時成績占40%,期末成績占60%的比例計算總評成績,并按學號、總評成績兩列寫入另一個文件scored.txt中。 同時在屏幕上輸出學生總人數,按總評成績計算90分以上、80-89分、70-79分、60-69分、 60分以下各成績區間的人數和班級總平均分(取小數點后兩位) """f = open("F:\\本科\\大一\\Python\\大作業\\python作業答案\\作業9\\2\\scores.txt") a = f.readline() line = (f.readline()).strip() # 移除字符串頭尾空格,返回字符串 f2 = open("F:\\本科\\大一\\Python\\大作業\\python作業答案\\作業9\\2\\scored.txt",'w') f2.write("學號 平均成績\n") L2 = [0,0,0,0,0] count = 0 sum = 0 while (len(line) != 0):L1 = line.split() # 字符串操作:默認以空格為切分,返回列表f2.write(L1[0]+" ")f_score = int(int(L1[1])*0.4+int(L1[2])*0.6)if 90<f_score <=100:L2[0] += 1elif f_score >=80:L2[1] += 1elif f_score >=70:L2[2] += 1elif f_score >=60:L2[3] += 1else :L2[4] += 1count += 1sum += f_scoref2.write(str(f_score)+"\n")line = (f.readline().strip()) f.close() f2.close() avg_score = int(sum/count) print("學生總人數為{0},按總評成績計,90以上{1}人,80-90有{2}人,""70-80有{3}人,60-70有{4}人,60以下有{5}人,班級總平均分為{6}".format(count,L2[0],L2[1],L2[2],L2[3],L2[4],avg_score))第十次大作業
# 作業1:加法程序from tkinter import *def fun1(x,y):a = xb = ys='%s+%s=%.2f\n'%(str(a),str(b),float(a)+float(b))txt.insert(END,s)def fun2():inp1.delete(0,END)inp2.delete(0,END)txt.delete(0.0,END) # text.delete(index1, index2) index1, index2 必須為 n.n的形式,#0.0代表的是下標為第0行的第0個元素,后面的tkinter.END表示末尾,#初始化Tk() root = Tk() root.geometry('450x350') root.title('加法') inp1=Entry(root) inp1.place(relx=0.15,rely=0.1,relwidth=0.2,relheight=0.1) inp2=Entry(root) inp2.place(relx=0.65,rely=0.1,relwidth=0.2,relheight=0.1) btn1=Button(root,text='加法',command=lambda:fun1(inp1.get(),inp2.get())) btn1.place(relx=0.15,rely=0.3,relwidth=0.2,relheight=0.1) btn2=Button(root,text='清空',command=fun2) btn2.place(relx=0.65,rely=0.3,relwidth=0.2,relheight=0.1) txt=Text(root) txt.place(relx=0.15,rely=0.5,relwidth=0.7,relheight=0.4)root.mainloop() # 作業2:四則運算程序from tkinter import *def fun1(x,y):a = xb = ys='%s加%s等于%.2f\n'%(str(a),str(b),float(a)+float(b))lab.config(text=s)def fun2(x,y):a = xb = ys='%s減%s等于%.2f\n'%(str(a),str(b),float(a)-float(b))lab.config(text=s)def fun3(x,y):a = xb = ys='%s乘以%s等于%.2f\n'%(str(a),str(b),float(a) * float(b))lab.config(text=s)def fun4(x,y):a = xb = ys='%s除以%s等于%.2f\n'%(str(a),str(b),float(a) / float(b))lab.config(text=s)#初始化Tk() root = Tk() root.geometry('450x350') root.title('四則運算程序')ent1=Entry(root) ent1.place(relx=0.1,rely=0.1,relwidth=0.2,relheight=0.1) ent2=Entry(root) ent2.place(relx=0.6,rely=0.1,relwidth=0.2,relheight=0.1)var = IntVar() rb1=Radiobutton(root,text='加',variable=var,value=1,command=lambda:fun1(ent1.get(),ent2.get())) rb1.place(relx=0.4,rely=0.3) rb2=Radiobutton(root,text='減',variable=var,value=2,command=lambda:fun2(ent1.get(),ent2.get())) rb2.place(relx=0.4,rely=0.4) rb3=Radiobutton(root,text='乘',variable=var,value=3,command=lambda:fun3(ent1.get(),ent2.get())) rb3.place(relx=0.4,rely=0.5) rb4=Radiobutton(root,text='除',variable=var,value=4,command=lambda:fun4(ent1.get(),ent2.get())) rb4.place(relx=0.4,rely=0.6)lab=Label(root,text=' ') lab.place(relx=0.35,rely=0.75)root.mainloop() from tkinter import *#初始化Tk() root=Tk() root.title("售票程序") root.geometry("500x500") label1=Label(root,text="請選擇景點:") label1.pack()var=IntVar()rd1=Radiobutton(root,text=("東方明珠"),variable=var,value=1) rd1.pack()rd2=Radiobutton(root,text=("野生動物園"),variable=var,value=2) rd2.pack()rd3=Radiobutton(root,text=("科技館"),variable=var,value=3) rd3.pack()def fun():if var.get()==1:a=160b=int(num.get())if b>=50:sum=a*0.8*belif b>=20 and b<50:sum=a*0.95*belse:sum=a*bs=("購買東方明珠票%s張,票價%d元 \n"%(b,sum))txt.insert(END,s)num.delete(0,END)elif var.get()==2:a=130b=int(num.get())if b>=50:sum=a*0.8*belif b>=20 and b<50:sum=a*0.95*belse:sum=a*bs=("購買野生動物園票%s張,票價%d元 \n"%(b,sum))txt.insert(END,s)num.delete(0,END)elif var.get()==3:a=60b=int(num.get())if b>=50:sum=a*0.8*belif b>=20 and b<50:sum=a*0.95*belse:sum=a*bs=("購買科技館票%s張,票價%d元 \n"%(b,sum))txt.insert(END,s)num.delete(0,END)label2=Label(root,text=("請輸入購票張數:")) label2.pack()num=Entry(root) num.pack() bt = Button(root,text = '計算',command = fun) bt.pack()txt=Text(root) txt.place(relx=0.1,rely=0.45,relheight=0.5,relwidth=0.8)root.mainloop()總結
以上是生活随笔為你收集整理的DHU Python Curriculumly Learning【5】——大作业_key_by_TA的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 微圈社群助手到底是什么?怎么用?
- 下一篇: 土豆皮,蒜苗长短,胡萝卜