top of page


論壇文章
bobo0836cw
Python學員
2022年4月14日
In Coding-程式類部落格
九九乘法也是常見的題目,因為個人覺得編碼沒甚麼非常困難,會遇到的都不是很難,真正難的要比賽,個人喜歡去用懂金鑰,密鑰這種觀念的機制,因為工作後都沒甚麼應用,所以覺得處在學習的狀態也是好的(這樣跟自己說) 方法一
def times():
for i in range(1,10):
for j in range(1,10):
print(i,"*",j,"=",i*j,end="\t") #這裡印出的是一連串橫的,因為有\t
print()
times()
方法二
def times():
for i in range(1,10):
for j in range(1,10):
print(j,"*",i,"=",i*j,end="\t") #這裡要印直的,就把j和i對換
print()
times()
所以觀察結果也很重要,我最一開始是把想法寫在紙上,一個一個推算,比方學迴圈,我就把變量的變化寫在紙上,第一次會產生甚麼,第二回變量增加多少都寫下來,html例外,html是格式的規劃
2
2
71
bobo0836cw
Python學員
2022年4月02日
In Coding-程式類部落格
在寫代碼時,我們都會遇到必須產生資料的狀況,如果可以自己產生,那是最好,所以想分享一個可以隨機出現的方法 def listini(): a=input() for i in range(7): n=random.randint(1,49) #取random數 list1.append(n) #在list增加 list1.sort(reverse=False) #這裡是排序,若不想則刪除 python3有很多子函數,很多人懂2成便不得了,像sort如果知道,便不必寫排序法 def listini(): a=input() for i in range(7): n=random.randint(1,49) if n in list1: #這裡是關鍵,寫條件式檢驗,有無重複 n = random.randint(1, 49) #重新產生 list1.append(n) list1.sort(reverse=False) 上方就是產生一個資料沒有重複的list,如果順利的話,也可以將list當成彩卷號碼器,如此將生活融入代碼,這裡是一個例子,接下來以無限迴圈,印出 while True: list1=[] ini() print("num:",end='') print(list1) 要記得import random,才會做亂數
4
2
96
bobo0836cw
Python學員
2022年3月23日
In Coding-程式類部落格
select sort又名選擇排序,排序法很多都是O(n)^2,不過我們都希望是O(n),如果有人想到線性方法,也許會推翻前面的古人,然後會使用新演算法 python3: import random #import 模塊 list1=[] def ini(): #寫一函式產生list for i in range(10): n=random.randint(0,20) list1.append(n) ini() print(list1) def sort(): for j in range(10): min=j #最小值在j for k in range(j+1,10): #從比鄰j開始 if (list1[k]<list1[min]): min=k #有更小就更新 if(j!=min): list1[j],list1[min]=list1[min],list1[j] #交換 sort() #排序 print(list1) 選擇排序是以指標的方式,更換list的值位置做到目的,在交換的時候注意是j和min交換,由於是新寫法,所以位置要正確,這裡的時間效能依然是O(n)^2,當資料量龐大時是很慢的,除了選擇排序,還有水桶排序,快速排序,都是很有名的演算法
3
0
28
bobo0836cw
Python學員
2022年3月22日
In Coding-程式類部落格
在寫程式時,有時候要排序,我們會用各種演算法排資料,我想貼幾個演算法介紹,有一種是泡泡排序 python3: import random n=6 list=[] def ini(): #這裡寫一個初始子函數 for i in range(n): m=random.randint(5,15) #產生隨機值 list.insert(i,m) def pri_list(): print(list) #印list def bubsort(): for i in range(n-1): #如果list範圍n就會交換n-1次 for j in range(n-1): if(list[j]<=list[j+1]): #比值交換,因為到n-1,所以j最後要加一 temp=list[j] list[j]=list[j+1] list[j+1]=temp ini() #初始 pri_list() #印list bubsort() #排序 pri_list() #秀出排序完list 泡泡排序是以依序一個一個比值,若小至大就遇小交換,時間效能是O(n-1)^2,每次都是以一維陣列做排序,因為是基本演算法,所以介紹很簡單,演算法會越多越好,要不看虛擬碼也知道,最好自己先想過一次,就會記在心裡
3
0
39
bobo0836cw
Python學員
2022年3月21日
In Coding-程式類部落格
有一個最終想製作的圖形,三層樹: * *** ***** * *** ***** * *** ***** *** *** *** python3: global k for a in range(3): k=1 for i in range(3): j=i+1 #為了印空格 for l in range(3-j): print(" ",end='') for m in range(k): print("*",end='') #印樹葉 print() k+=2 for b in range(3): print(" ", end='') for c in range(3): print("*",end='') #印樹幹 print() 希望若有更簡短的方法請不吝分享
4
1
57
bobo0836cw
Python學員
2022年3月21日
In Coding-程式類部落格
現在要印一個這樣的平行四邊形: *** *** *** 這樣的圖也能製作如下: * ** *** 兩個編程思路似乎很像 現在提供python3碼: for i in range(3): for j in range(3): if j>=i: print(" ",end='') #先印空格 for k in range(3): print("*",end='') print() 這裡以內層兩個迴圈完成,有點分工的感覺 p.s.我python3功力不好,謝謝前輩提醒,我最一開始學的是HTML,再來是JAVA,但是在學校JAVA沒有認真學,後來才學C語言,指標一節花很多時間,接著又學JAVA,所以觀念很舊,功力讓人為之一笑,請見諒
5
2
53
bobo0836cw
Python學員
2022年3月20日
In Coding-程式類部落格
這個圖和第一篇只是倒過來,現在要印一個這樣的圖: *** ** * 以兩層for迴圈寫 for i in range(3): for j in range(3): if j>=i: #j會執行至極值,下一回就會因外圈漸小 print("*",end='') print() #此為換行 以第二個方法 for i in range(3): a=2 #因為寫range實際會比限制少一個, 所以a從2起點 while a>=i: print("*",end='') a-=1 #a遞減 print() 這張圖和第一篇只是倒過來,思路沒甚麼變化,順序由高至低變換 後面還有一些圖可供參考 公布程式碼只是因為難度不高 真正難的要自己想,才有成就感 日常生活的事情都可以寫成編碼 若能察覺都可以進行編寫
4
1
45
bobo0836cw
Python學員
2022年3月07日
In Coding-程式類部落格
這是我第一篇文,有突兀處多包涵 以前習慣先以range寫list,現在若用list都會檔案一開頭list=[]或寫一函式初始 * ** *** 以下我作為初學者想了兩種寫法供捧友們參考,請多多指教: list_1=range(0,3,) list_2=range(0,3,) #設定list for i in list_1: for j in list_2: if j<=i: #i依序增值,進到j,j隨i增加 print("*",end='') #這是為了印連續 print("\n") 這是兩層for迴圈,那天我剛安裝編譯器,初試python,如今看來習慣已變# list=range(0,3) for i in list: a=0 #以while做for要把變量分開寫 while a<=i: print("*",end='') a+=1 #while print("\n") 印星星是很出名的題目,也很基本,還有很多變化
4
2
93
bobo0836cw
Python學員
+4
更多動作
bottom of page