我在寫的時候發現變數太多了,於是我就開始琢磨如何減少變數的問題,還真的被我發現了可以在input購買金額的時候直接做加減,會比一個一個輸入變數來的精簡。 我開始摸索更短的方法我確實成功了只用了6行 其中用到了兩個函式包括sum()跟abs()。 還用到了迴圈!!
在這次的題目中我有許多錯誤 1.if a<=5:跟elif a//5!=0:寫相反 2.輸出只要是5的倍數(5除外)都會多加一組 而在同學的教導中 我認知到我錯誤1問題出在哪 if的語法應該是要以小範圍慢慢到大範圍 而我一開始是由大範圍到小範圍 所以才會出現錯誤 而錯誤2的問題則是 我一開始寫在結果輸出的地方寫a//5+1 這樣會導致我只要是5的倍數(5除外)都會變成下一組 我後來發現到可以在if中再加一個if語法(巢狀條件判斷) 這樣就能有效解決我的問題了 這些錯誤讓我學會了巢狀條件判斷、跟if語法中先後順序問題
第一次打這題時
打了太多行程式碼
所以結果跳出錯誤時
找不到錯在哪
而向同學請教後
把許多行程式碼縮短
例如print("購物金額 {money}")跟print("應付金額 {d}")
可以不用放在if裡面
因為不論結果如何都會顯示
也了解到第一次的錯誤在於我在elif的部分
打成money=d
但正確的寫法是money==d
從這次錯誤中我學會了python的=用法是==
還有要有效縮短程式碼
自從前面錯過一次elif的語法後 後面練習到目前為止都沒有再錯過一樣的問題 而且對於if的語法使用更加熟練了
一開始做的時候打的是else if 結果發現結果顯示:語法錯誤 回去查看才發現python的寫法是elif 這次的錯誤也讓我對elif的語法有更深刻的印象
我沒加空格[應該要這樣打print(f"|{x:8.1f} {a:8.1f}|")] 但我打成print(f"|{x:8.1f}{a:8.1f}|")這樣題目真的要看清楚,我卡在沒有*s超級久,開更號也是這題的一大重點,但其實google很快就有答案了
需要一些的數學基礎,我覺得這一題很有趣
雖然一開始題目看錯試了很多次,但是發現錯誤後馬上就答對了!
這一題我思考了超級久,一直找不到哪裏有錯誤,還好最後有找到
雖然過程中有卡卡的,但是經過一番思考,最終終於答對了
連續做了好幾題if、elif、else的題目,已經蠻熟練的
這一題好有趣,算是很常見的題目,值得練習
這一題裡面包含了許多的概念,值得一做
利用到if和elif的觀念,這些觀念十分重要
我覺得這一題好有趣
雖然過程中一直有錯誤,但最後還是解決問題了
這一題需要很好的邏輯
這一題我試了好幾次,是個不錯的題目
學會如何使用if
理解如何從字串中取得我要的值
這題蠻簡單好玩的,但是我轉到0
這一題有一些難度,讓我思考了許久
運用了三次%的格式,更加熟悉
我覺得這題好有趣
學習如何使用float
very interesting
這個題目好難,我學到了好多
我認為很有趣但有點困難
我學會了如何運用%以及邏輯大幅增強
更加熟練如何使用變數來運算式子
更加了解format格是如何運用
是個能夠學習變數的運算基礎的題目
關於字串與字串間的合併更加熟練。
是一個很基礎的題目,關於print有更深入的了解
我對於印出答案有了些許進步
一直解不出來真的很想知道錯在哪,並且通過
對輸出格式尚有不熟之處,但從解題過程中也使我獲得不少樂趣
有點困難但很有趣
import math #呼叫數學模組
def compute(x, y): #開始定義funtion
gcd = math.gcd(x, y) #使用gcd 函式(求x,y之間之公因數)
return gcd #回傳結果
while True: #建立無窮迴圈
x, y = eval(input())
if x == -9999:
break #若x為-9999,迴圈終止
print(compute(x, y)) #呼叫funtion
#此題(2022/12/25)python基礎證照考試有出題過。d.strip()#去除左右空格
print("大寫",d.isupper())#是由大寫字母組成
print("小寫",d.islower())#小寫
print("字母",d.isalpha())#字母
print('數字',d.isdigit())#數字s1=set()#設定兩個集合
s2=set()
n=input()
while n!="end":
s1.add(n)#集合增加用add
n=input()
n2=input()
while n2!="end":
s2.add(n2)
n2=input()
print(sorted(s1|s2))#聯集s1+s2
print(sorted(s1&s2))#交集s1.s2都有
print(sorted(s2-s1))#差集S2有S1沒有
print(sorted(s2^s1))#S1.S2彼此沒有的科目d=[]
s=0
for i in range(2): #兩名學生資料
d.append([]) #加進去空串列
for j in range(4): #子迴圈控制串列內容
if j >0: #索引值大於0以數值內容丟進串列
d[i].append(eval(input()))
else:
d[i].append(input())#索引值為0是名字
for i in range(len(d)): #讀取二維串列資料值
s=0 #在此設定一個運算變數
for j in range(len(d[i])): #讀取二維串列內一維串列資料值
if j>0: #名字之外數值加總
s+=d[i][j]
d[i].append(s) #將總和.平均加進一維串列內
d[i].append(s/3)
print(d) d=[]#一維串列
for i in range(2):#兩個學生
d.append([])#二維串列
for j in range(4):#丟進1個名字,三筆成績
d[i].append(input())
print(d)#輸出d=[]#空串列
for i in range(10):#10筆資料迴圈丟進串列
d.append(int(input()))
c=[0]*len(d)#c為串列[0,0,0,0,0,0,0,0,0,0]
print(d)#輸出d
for i in d:#讀d串列資料
k=d.index(i)
c[k]+=1 #假設索引值1出現一次 c[1]+1
print(f'{i} 出現在 {k} 索引值 累計出現 {c[k]} 次')
#輸出串列值在串列的索引值 累計出現幾次d=[]#空串列
for i in range (10):#10筆資料跑迴圈
n=int(input())#輸入變數
d.append(n)#加進串列
print(d) #輸出串列
for j in range (0,10):#讀串列資料
print(d[j],"出現在",d.index(d[j]),"索引值")
#d.index()出現在相對應的索引值d=eval(input()) #把串列接收進d
for i in range (len(d)):#讀取d串列的資料
if i %3 ==2:#每三個為一列(索引值0.1.2一列)
(3.4.5一列,也就是索引值除三於二)
print('{:3d}'.format(d[i]))(換行輸出)
else:
print('{:3d}'.format(d[i]),end="") d=[]
a=[]#設定兩個空串列預備使用
n=eval(input())#變數n值設定
while n!=-9999:#假使無限迴圈n值不等於-9999
d.append(n)#n值丟進去d串列
n=eval(input())#無限輸入n
print("原來串列",d)#輸出d串列
for i in range(len(d)):#讀取d串列資料
if i %2==0:#偶數索引值丟進去a串列
a.append(d[i])
print("偶數索引值串列",a)#輸出a串列d=[]#空串列
n=eval(input()) #先設定一個n值
while n!=-9999:#假設無限迴圈n值不等於-999
d.append(n)#將n值丟進去空串列裡面
n=eval(input())#n值循環輸入
print("原來串列",d)#輸出原先的串列
d.remove(max(d))#移除最大值
d.remove(min(d))#移除最小值
print("最後串列",d)#輸出新串列
print("總和",sum(d))#計算總和