h=int(input())#h值的設定
for i in range (h):#參數設定重複h次
print("*"*h)#輸出*n=int(input())#n值設定
for i in range (1,n+1):#參數設定1-n+1範圍
if i%3==0 or i%5==0:#找出3or5的倍數
print(i)#輸出n=int(input())#n值設定
s=0#為了迴圈運算設定
for i in range (1,n+1):#迴圈參數設定1-n+1的範圍
s=i+s#累加值運算
print(f'迴圈值 {i} 累計值 {s}')#重複輸出累計值跟迴圈值m=int(input())
n=int(input())
for i in range(m,n-1,-1):
#遞減要用-1,範圍設定n值注意要跟著-1。
print(i)m=int(input())#m值的設定
n=int(input())#n值的設定
for i in range(m,n+1):#迴圈設定參數m-n範圍
print(i)#重複輸出判斷西元年是否為閏年,這是經典考題, 在老師的系統上及在python的課本上都有重複出現過, 只要抓到判斷閏年的條件再加上邏輯運算子, 只需一行的敘述就可以判斷, 題意有點繞口,但理解題目也是很重要的一環。 tip:每400年一閏、每4年一閏"且"遇百年不閏
因課本的chap3有類似的練習題, 便拿練習題的code來直接改寫, 但關於迴圈+字串應用還不是很能理解, 只是先試著改寫這樣, 希望老師下堂課能對於字串應用有再更詳細的說明, 謝謝。
s=0#為了循環運算設定
for i in range (30):#設定參數循環30次
k=int(input())#30個輸入變數
s=s+k #將30個變數值加總起來
print(s)#輸出總和n=int(input())#設定輸入變數
for i in range (n+1):#參數設定
print(i)#循環輸出0-na=input()#設定變數
n=int(input())#次數變數
for i in range(n):#i是參數
print(a) #會循環輸出n次
print("我說完了")#結尾固定輸出這題很簡單,但卻卡很久, 我一直執著在迴圈累加,明明就有很相似的題目, 改了一下程式碼卻答案卻一直兜不攏, 今天狀況不好,索性去寫通識作業, 突然又想到這題,其實轉個念頭就好了...
使用模組還套入計算,在這段print("面積","=","%0.2f"%(c)程式中我卡的最久,因為忘了如何縮減小數。利用此公式可算出三角形面積,只要再改一些也能算出更多圖形面積
我的作答方式是先把攻勢都打好,再用ABC去帶入,讓一條程式看不來比較部會那麼亂
我使用IF條件順序去判斷是否為3和5的同個倍數,使條件部會有所衝突,如:15 既是3也是5的倍數,假如判斷是先放判斷是否為3,會造成她沒判斷到他也是5的倍數。
使用網路上搜尋之程式碼套入,讓他自動辨識是何種字元,事後老師蔣捷才了解用大於小於也能辦判別,就不需背程式碼了
這道題我卡在算是這方面的問題,事後才理解出來開根號等於他原本數字就可以知道它使否為完全憑方數。
我是打這道題的程式是先把兩個相除餘數另外計算,再用是否餘數0來判斷他是否為整數。
輸入任意兩值和兩值相加值,可以藉由這個程式來檢測自己算術是否有錯誤
在打程式時看著明明輸出答案都與範例相同,想步道哪裡錯了,仔細看才知道我忽略了花了200剩下會是0,如果沒打他程式是無法顯示的。
昨晚又開始新的章節,迴圈敘述: 其實直到隔日我還是對老師的授課內容似懂非懂, 除了重新將課本內容3-2 for...in range迴圈反複研讀之外, 還將昨日上課內容已經完成的題目再一題一題點進去看, 除了可以參考同學繳交的內容,老師提供的解答也是要點進去看, 每種的學習都是從模仿開始, 重複裸解,直到熟悉題意,甚至是在自己的程式碼上再加上註解, 上課的內容才真正的屬於自己。 共勉。 p.s題目中的:加總數字的"各"數述敘有誤,應為"個"。
計算與題目說的相反 先次數後文字
不包含畸形兔
寫超久 好難
第一層for迴圈計算高度 第二層在跑i時+1
熟悉初始值、終止值、遞增值如何排列在輸出i就能得出結果了
算完後加逗點完 要再想辦法將最後一列數字後的逗點去掉 可使用串列轉字串
for迴圈練更熟的話就會清楚很多
我好像想複雜了:))
同學大神們哈們支援耶穌愛你
好幾把難 王彥雄教得好 謝謝雄割
好難好難,恩割雄割教得好
這題想很久,想通之後其實挺簡單的,原本都把逗點放在後面,然後想著要滿足某個條件把最後的逗點去掉,但其實先加逗點比較好判斷
因為第二章的選擇敘述尚未教到,
所以題目有提:對應硬幣數量為零者不用輸出
在這句卡住有點久。
但知道這是需要用條件判斷的寫法,
搞懂用法就很簡單了。
謝謝老師。
今天我又重新改寫一次,
第一次的程式碼我把所有算式展開不取變數名,
除了讓程式變的難以除錯,他人也很難理解。
原程式:
num = int(input())
print(f'{num} 元等於')
num1 = num//50
if num1 > 0:
print(f'{num//50} 個50元')
num2 = (num-((num//50)*50))//10
if num2 > 0:
print(f'{(num-((num//50)*50))//10} 個10元')
num3 = ((num-(((num//50)*50)))-(((num-((num//50)*50))//10)*10))//5
if num3 > 0:
print(f'{((num-(((num//50)*50)))-(((num-((num//50)*50))//10)*10))//5} 個5元')
num4 = ((num-(((num//50)*50)))-(((num-((num//50)*50))//10)*10))-((num-(((num//50)*50)))-(((num-((num//50)*50))//10)*10))//5*5
if num4 > 0:
print(f'{((num-(((num//50)*50)))-(((num-((num//50)*50))//10)*10))-((num-(((num//50)*50)))-(((num-((num//50)*50))//10)*10))//5*5} 個1元')
print(f'可用 {(num//50)+((num-((num//50)*50))//10)+(((num-(((num//50)*50)))-(((num-((num//50)*50))//10)*10))//5)+(((num-(((num//50)*50)))-(((num-((num//50)*50))//10)*10))-((num-(((num//50)*50)))-(((num-((num//50)*50))//10)*10))//5*5)} 個硬幣組成')
改寫後(有參考老師的做法)
m = eval(input())
print(f'{m} 元等於')
#各幣值對應硬幣數量(取商數),
#計算出剩餘金額後,
#繼續往下算出各幣值對應數量及金額。
coin50 = m // 50
m = m - coin50*50
coin10 = m // 10
m = m - coin10*10
coin5 = m // 5
m = m - coin5*5
#總金額減去各幣值金額即為1元硬幣數量與金額。
coin1 = m // 1
if coin50 > 0:
print(f'{coin50} 個50元')
if coin10 > 0:
print(f'{coin10} 個10元')
if coin5 > 0:
print(f'{coin5} 個5元')
if coin1 > 0:
print(f'{m} 個1元')
print(f'可用 {coin50 + coin10 + coin5 + m} 個硬幣組成')希望老師下節講課能多提一些有關於數學模組函數的介紹。 關於根號7本來想用暴力解法直接去查對數表的, 但轉個彎就想到7的0.05次方就是開根號了...@_@ 謝謝老師。
test
看了解答的我真的是吐了==我好笨,明明前面就可以直接顯示的,我還在那邊判斷要不要顯示
這題卡住很久,自己複雜化太多了,解答很簡略,
邏輯上運用不一樣,簡單的方法也有,繞圈子的方法也有,
總之多練習就是好的。
#已知輸入小於500元金額,
#求解用50元、10元、5元、1元之最少硬幣個數之等值組合。
#請留意若對應硬幣數量為零者不用輸出。
a=int(input())
#第六列這一行固定要輸出
print(f'{a} 元等於')
b=a//50 #這行是要求出需要幾個50元
c=a-(b*50) #定義出新的值(128-(2*50))=28
d=c//10 #然後去求出來需要幾個10元 (28//10=2)
e=c-(d*10) #再定義新的值 28-(2*10)=8
f=e//5 #求出需要幾個5元 8//5=1
g=e-(f*5) #再定義新的值 8-(1*5)=3
h=g//1 #求出需要幾個1元 3//1=3
if b>0: #b是幾個50塊 如果是0個就不用輸出
print(f'{b} 個50元')
if d>0: #d是幾個10塊 如果是0個就不用輸出
print(f'{d} 個10元')
if f>0: #f是幾個5塊 如果是0個就不用輸出
print(f'{f} 個5元')
if h>0: #f是幾個1塊 如果是0個就不用輸出
print(f'{h} 個1元')
print(f'可用 {b+d+f+h} 個硬幣組成')
#最後這一行也是固定要輸出的
同學反覆問我這一題,重新寫了一次,邏輯跟思維也更清楚了。下午利用剩餘時間來解python的習題, 但解到現在已近週日晚上十點, 精神狀況不太好,明日七點前還得早起, 雖然還剩下二題, 但其中有一題頗難(需要用到邏輯判斷及運算子計算)。 剛也花了些時間在解那題,但狀況不好的情況下, 除了解不出來是必然的,還花費很多時間在空轉。 明日有空在解剩餘的。
這題的程式碼我是拿前一題高速公路超速罰款的code來修改, 老師的解答是利用多項判斷, 但這題我是用巢式判斷去解答, 解法很多種,不管是精簡亦或是走彎路, 每次的練習都是再次的訓練自己的邏輯判斷能力。
這題一開始我是用多向判斷來解, 雖然提交答案正確, 但看到老師的解答(使用巢狀判斷), 還是改寫成老師的寫法。 希望自己爾後看到類似題目也可以有另一種解題的模式來做。
絕對值計算是國1數學的程度, 輸入任意二數,正轉負/負轉正,求二數間的(距離)即是解答。 印象中在課本中p1-18有提到求取絕對值的函數: fabs(x)浮點數/abd(x)整數。 但這題是要用條件判斷寫出, 故使用函數求取絕對值就用不到了。 謝謝老師又讓我重溫國中數學的概念(笑)
老師的解答中有使用到flag這個判斷條件, 因為印象中課本第二章及線上教材都沒有提及, 所以寫在這裡提供參考: flag作為一個標識,如果滿足條件, 那麼就會後續的if-else執行滿足條件的區塊敘述。
數值取整,除了可以利用format/%, 二種格式做指定取小數的位數為0轉成整數之外, 還可以利用int函數將數值轉型為整數。
這題老實說卡了很久,一直在想如何判斷兩天休息一天的部分,一開始就有想到用迴圈判斷,但始終卡在邏輯上,最後想通判斷20餘數,且迴圈終止值不加一就好
多向判斷可解, 只是我忽略了滿千送百這個折扣的部份要先扣除再*上對應的折扣數, 很多人都認為是以打9折計算, 但實際上是要購買1100的商品才能以1000元做計算, 實際上只打了91折... 謝謝老師。
第二個解答:
a=int(input())
c=(a-(100*b))*0.8
if a<1000:
print(f'消費 {a} 元,還差 {1000-a} 元符合優惠。')
elif a>=1000 and a<5000:
print("折扣後金額為",a-(100*b),"元")
else:
print("折扣後金額為 %.f 元"%c)
本來我是用巢狀條件,結果老師的題目解一解,
發現這可以用多向就解出來了哈哈哈哈
搭配 or 或是 and 是不是就不一定要用巢狀了030想出好的題目,比刷老師開放的題目還難, 解題的時候要是都是基本的概念, 會覺得好簡單啊,一下就解出來了。 好的題目大概像是閱讀英文文章一樣, 也許每個單字拆開你都懂。但合在一起呢? 觀念的運用,邏輯思考轉換,唯有靠不停的練習才能精進。
求開根號除了x**0.5可得之外, 也可以利用數學模組常用的函數: sqrt(x) 這樣也是一個做法, 至於要判斷整數與否,只要判斷數值除1,餘數是否為0即是。
小數這題真的是我腦洞大開才解出來的, 是說題目也沒限制為小數點一位的小數。 但我就是先這樣寫看能不能過XDDDD