林宥蓁python全域變數global和判斷if

from tkinter import * #或者import tkinter as tk
import math
tk = Tk()           #建構視窗名為tk
tk.geometry('1200x400')#視窗 寬1200像素
tk.title("林宥蓁python tkinter三角函數")
canvas = Canvas(tk, width=1200, height=400, bg='black')
canvas.grid(row=0,column=0,padx=5,pady=5,columnspan=3)
delay=3 # milliseconds, 1/1000秒
x1,y1,z1=0,200,10#python特徵,多變數=對等值
h=190      #上下範圍,相當於數學1到-1
def LH():
    global x1, y1, z1#global全球,local當地
    x2 = x1 + 1 #換到下個+1 
    y2=200 - h*math.sin(0.02*x2)
    z2=200 - h*math.cos(0.02*x2) 
    L1=canvas.create_line(x1,y1,x2,y2,fill='pink',width=10)
    L2=canvas.create_line(x1,z1,x2,z2,fill='blue',width=10)   
    if (x2 < 1200): #沒有超過, 記得將 "小於" 改成運算
        x1,y1,z1=x2,y2,z2#下一個起點是現在終點
        canvas.after(delay,LH)#每隔delay執行
    else:
        canvas.delete("all")
        x1,y1,z1=0,200,10#下一個起點是回到原點
        canvas.after(delay,LH)#return沒你的事,滾回你老家    
LH()            #執行LauHou老猴
tk.mainloop()

財金程式設計615拷貝mainloop的資訊

在程式設計中,主迴圈(mainloop) 是一個重複執行的程式結構,用於管理事件、處理輸入、更新程式狀態並渲染輸出,直到程式終止。它是圖形化使用者介面 (GUI) 應用程式和遊戲的核心。 
主要功能與概念
  • 事件驅動模型: 主迴圈將程式控制權從線性執行轉移到事件驅動模型。它持續監聽來自作業系統的事件(例如:滑標點擊、鍵盤輸入、視窗調整大小、網路輸入)。
  • 保持應用程式運行: 它是一個無限迴圈,使應用程式保持活動狀態,直到使用者關閉視窗或程式被終止。
  • 阻塞執行緒: 通常,呼叫 mainloop() 的方法會阻塞該執行緒的執行,這表示在該方法之後的任何程式碼直到迴圈結束(即視窗關閉)才會執行。 
在不同應用程式中的應用
  • GUI 應用程式: 在 Tkinter 等 GUI 程式庫中,root.mainloop() 負責啟動事件處理迴圈,確保視窗保持響應,並將事件傳遞給相應的小部件(widgets)進行處理。
  • 遊戲開發: 在遊戲中,主迴圈通常被稱為「遊戲迴圈」(game loop),是遊戲的「心跳」。每個迴圈迭代稱為一個「畫面」(frame),負責以下步驟:
    1. 處理使用者輸入 (processes input)。
    2. 更新遊戲狀態(例如:物理計算、角色位置) (update game state)。
    3. 將遊戲狀態渲染到螢幕上 (render/draw to screen)。
  • 其他系統: 事件迴圈的概念也應用於其他需要非同步 I/O 或事件處理的系統,例如 Node.js 的事件迴圈。 
總結來說,主迴圈是現代互動式應用程式的基礎架構,確保程式能夠即時響應使用者互動和系統事件。

這個網誌中的熱門文章

林宥蓁Python字串find字串[開始:結束]

林宥蓁Python字串方法count與split

林宥蓁金融常識互動測驗python產生HTML,CSS,JAVASCRIPT