2023年5月25日 星期四

劉任昌python import openpyxl 處理EXCEL

 import openpyxl #蔣姿如輸入import openpyxl處理EXCEL的函式庫

book = openpyxl.load_workbook(r'wb.xlsx') #開啟EXCEL工作簿wb.xlsx
print("1. 列出所有工作表名稱")
sheetNames=book.sheetnames                #所有工作表的集合
for name in sheetNames:
   print(name)

print("2. 針對特定工作表, 列出前面數列")
#sheet = book["python"]
#for row in sheet.iter_rows(min_row=1, max_row=3, min_col=1, max_col=5, values_only=True):
#    print(row)
    
print("3. 列出工作表所有內容")
#sheet["F1"], sheet["G1"], sheet["H1"], sheet["I1"]="波段H","波段L","部位","損益"
#sheet["F2"], sheet["G2"], sheet["H2"], sheet["I2"]=sheet["C2"].value, sheet["D2"].value, 0, 0
#for row in sheet.iter_rows(min_row=1, max_row=3, min_col=1, max_col=9, values_only=True):
#    print(row)
#book.save()
from tkinter import *
import pygame
root = Tk()
root.title("蔣姿如")
root.geometry("500x400")

pygame.mixer.init()
def play():
    pygame.mixer.music.load('mixkit-tech-house-vibes-130.mp3')
    pygame.mixer.music.play(loops=0)
def stop():
    pygame.mixer.music.stop()

my_button = Button(root, text=("演奏"), command=play)
my_button.pack(pady=20)
stop_button = Button(root, text="停止", command=stop)
stop_button.pack(pady=20)
root.mainloop()
# www.pygame.org
#pip install -U pygame==2.4.0 --user

2023年5月11日 星期四

蔣姿如 python math radon

w3schools學習python math random函式庫

import math #蔣姿如 輸入數學函式庫
import random #輸入亂數資料庫
x = math.sqrt(2)
print(x)
#大樂透是49個號碼開出六個
for i in range(6):
   x=random.randint(1,49)
   print("開出的第 " + str(i+1) +" 個號碼: " + str(x))
#str是將數字轉成字串string   

w3schools學習python math random截圖


亂數函數主要用在蒙地卡羅模擬分析,用於衍生性金融商品的訂價。

貪吃蛇的python程式






影片


 

2023年5月4日 星期四

蔣姿如Python視窗使用者介面GUI類別class建構正多邊形或星形


#蔣姿如教python設窗程式設計
from tkinter import * #從函式庫 tkinter 輸入所有 * 方法
from math import *    #從函式庫 math 輸入所有 * 方法
class Regular:        #定義類別Regular正多邊形或星型
    def __init__(self, cx, cy, cr, s, t, c, w): #類別共同的設定
        self.cx, self.cy, self.cr = cx, cy, cr  #取得中心座標cx, cy, 半徑cr
        self.s, self.t = s, t    #取得邊角數目s,t尖銳程度,取代原來的k = s.get()
        self.c, self.w = c, w    #取得顏色c,寬度w
        self.u = 2 * pi / self.s #使用模組 math 圓周率 pi
        self.x, self.y = [], []
        for i in range( int(self.s * 1.5)):
            self.x.append(self.cx + self.cr*cos(i*self.u)) 
            self.y.append(self.cy + self.cr*sin(i*self.u)) 
    def draw(self):                                 #類別的方法
        for i in range( int(self.s * 1.5) - self.t):
            canvas.create_line(self.x[i], self.y[i], 
                    self.x[i + self.t], self.y[i + self.t], fill = self.c, width = self.w)
def show():          #畫圖
    poly = Regular(cx.get(), cy.get(), cr.get(), s.get(), t.get(), c.get(), w.get())
    polyList.append(poly)
    polyList[len(polyList)-1].draw()
def clear():         #清除視窗的all所有canvas圖
    canvas.delete('all')

polyList = []
xyr = (50,75,100,150,200,250,300,350,400)
st = (1,2,3,4,5,6,7,8,9,10,11,12,16,20,24,28,32)
tk = Tk()
tk.title("蔣姿如視窗使用者介面GUI")  #也可以定義視窗名為 window, root課本都如此習慣
canvas = Canvas(tk, width=600, height=450)
canvas.pack()
cx, cy, cr, s, t = IntVar(tk),IntVar(tk),IntVar(tk),IntVar(tk),IntVar(tk)
cx.set(xyr[3]) #預設座標 x=200
cy.set(xyr[3]) #預設座標 y=200
cr.set(xyr[1]) #預設半徑 r=100
s.set(st[9])   #預設邊形 8
t.set(st[0])   #預設堅度 1即凸多邊形
label1 = Label(tk, text="位置x ").pack(side=LEFT)  #距離左側
option1 = OptionMenu(tk, cx, *xyr).pack(side=LEFT)
label2 = Label(tk, text="位置y ").pack(side=LEFT)  #距離頂端
option2 = OptionMenu(tk, cy, *xyr).pack(side=LEFT)
label3 = Label(tk, text="半徑r ").pack(side=LEFT)  #半徑
option3 = OptionMenu(tk, cr, *xyr).pack(side=LEFT)
label4 = Label(tk, text="邊形s ").pack(side=LEFT)  #幾個邊
option4 = OptionMenu(tk, s, *st).pack(side=LEFT)
label5 = Label(tk, text="堅度t ").pack(side=LEFT)  #相鄰建構,尖銳度
option5 = OptionMenu(tk, t, *st).pack(side=LEFT)
label6 = Label(tk, text="顏色").pack(side=LEFT)    #顏色
c = StringVar(tk)
colorL = ('black','red', 'green', 'blue', 'purple', 'gray')
c.set(colorL[0])
option6 = OptionMenu(tk, c, *colorL).pack(side=LEFT)
label7 = Label(tk, text="寬度").pack(side=LEFT)  #寬度
w = IntVar(tk)
widthL = (1, 2, 3, 4, 5, 6)
w.set(widthL[0])
option7 = OptionMenu(tk, w, *widthL).pack(side=LEFT)
button = Button(tk, text=" 繪圖 ", command = show, bg='black',fg='white').pack(side=LEFT)
button1 = Button(tk, text="移除All", command = clear).pack(side=LEFT)
tk.mainloop()

增加出現所有圖形的函數與按鈕


影片


電子試算表發明人

 1978年,哈佛大學EMBA學生在教室中發明電子試算表(electronic spreadsheet),這個發明永遠改變人們利用電腦在商業應用的方式(forever changed how people use computers in business.)。後來,賈伯斯請比爾...