Python與曼陀羅繪圖
它無法直接判斷你的程式碼邏輯是否正確,只是透過多組測試資料來檢查輸出結果是否符合預期。
先註冊一個帳號
Text
用這個註冊最快
AC (Accept): 即表示通過
NA (Not Accept): 在多測資點的題目中若未通過所有測資點
(Wrong Answer): 表示答案錯誤,並在訊息中指出錯誤行數及正確答案
只要稍微有印象就好,
忘記可以回首頁看
臙脂(蛋包飯咖哩飯)
永遠不會放棄你(Never gonna give you up)
永遠不會讓你失望(Never gonna let you down)
永遠不會拋棄你(Never gonna run around and desert you)
這些由好心人寫的解題思路或提示:
IDLE
字形請選等寬字體 (Consolas, Courier, Source Code Pro, Monospace…)
顏色請調成深色模式(highlight -> "IDLE Classic"改成"IDLE Dark")
點它⮕
選第一個⮕
互動式直譯器
文字編輯器
點它
點它,或按F5快捷鍵
「設定變數」就是給一個名字,儲存資料或數值,讓你之後可以用這個名字來操作。也就是你給資料取的「暱稱」。
_
不能設為變數的特殊字
今日嘉賓
print("hello, world")sep= 控制中間的間隔符號。
print("A", "B", "C", sep=",") 中間就會被","隔開。
如果要控制結尾(不是中間),要用 end=
前面要用變數來儲存輸入內容
| int | 整數(沒有小數點) |
-5, 0, 42
|
||
| float | 浮點數(有小數點) |
3.14, -0.5, 2.0
|
||
| string | 字串(文字資料) |
"Hello","123"
|
程式碼:
name=input()
print("hello,",name)y=int(input())
print(y-1911) 程式碼:
____________
print(__-1911) x,y=map(int,input().split())a,b=map(int,input().split())
print(a+b)程式碼:
邏輯同c++
+ |
加法 | 3 + 2 |
5 |
- |
減法 | 5 - 3 |
2 |
* |
乘法 | 4 * 2 |
8 |
/ |
除法(浮點) | 7 / 2 |
3.5 |
// |
整除(取整) | 7 // 2 |
3 |
% |
取餘數 | 7 % 2 |
1 |
** |
次方(冪次) | 2 ** 3 |
8 |
== |
是否相等 | 5 == 5 |
|
!= |
是否不相等 | 5 != 3 |
|
> |
是否大於 | 7 > 5 |
|
< |
是否小於 | 3 < 5 |
|
>= |
是否大於等於 | 5 >= 5 |
|
<= |
是否小於等於 | 3 <= 5 |
h=int(input())
print((h+24-15)%24)h=int(input())
print((h+24-15)___)m=int(input())
print((85-m)%60)邏輯同c++
if 條件:
#要執行的程式碼
elif 條件:
#要執行的程式碼
如果不符合if的條件但符合這裡的條件,就會執行
else:
#要執行的程式碼
其他(不符合上面所有if和elif的條件)
you="盤子" #假設都符合條件
if True: //流麻
print("買!")
if True: //徽章
print("買!")
if True //拍立得
print("買!")
if True //金屬胸章
print("買!")if you: #假設都符合條件
print("you")
elif 薄巧:
print("薄巧")比起薄巧我更喜歡你
x=5
y=10
if y==10:
print("a")
if x==5:
print("b")x=5
y=10
if y==10:
print("a")
elif x==5:
print("b")a
b
a
i=int(input())
if i%2==0:
print("Even")
else:
print("Odd")x=5
y=10
if x==5 and y!=10:
print("a")x=5
y=10
if x==5 or y!=10:
print("a")a,b,c=map(int,input().split())
if a>b and a>c:
print(a)
elif b>a and b>c:
print(b)
else:
print(c)in 檢查某個 key 有沒有存在字典名 = {
key:value,
key:value
}person={
"name":"黃語涵",
"age":"16",
"class":"Ren"
}print(person["age"]) #輸出:16person["age"]=17 #原有的key會修改
person["school"]="JingMei" #沒有的會新增
print(person)
del person["school"] # 刪除 key=school
person.pop("age") # 也能刪除 key=ageif "name" in person:
print("有 name 這個key")
print(person.keys())
print(person.values()) 邏輯同c++
for i in range(起始值,終點,變化):
#要重複執行的程式碼3
4
要將想用for迴圈重複執行的程式碼縮排:空4個空格或用Tab
for i in range(4):
print(i)0
1
2
3
for i in range(0,5,2):
print(i)0
2
4
for i in range(4,0,-1):
print(i)4
3
2
1
n=int(input())
for i in range(n):
print("I don't say swear words!")________________
for i in range(__):
print("I don't say swear words!")for i in range(2):
for j in range(3):
print(i,"+",j,"=",i+j)0 + 0 = 0
0 + 1 = 1
0 + 2 = 2
1 + 0 = 1
1 + 1 = 2
1 + 2 = 3
x=int(input())
y=int(input())
for i in range(y):
for k in range(x):
print("*",end="")
print("")while 條件:
#要執行的程式碼while 條件:
#要執行的程式碼1
2
n=1
while n!=0:
n=int(input())
if n%2==0:
print("Even")
else:
print("Odd")for i in range(5):
if i==3:
breakfor i in range(5):
if i==3:
continuewhile True:
n=int(input())
if n==0:
break
if n%4==0 and (n%100!=0 or n%400==0):
print("E leap year")
else:
print("a normal year")有名字 – 方便呼叫(像叫某人名字一樣)。
有輸入(參數) – 你可以把資料交給函式處理。
有回傳值 – 處理完的結果可以交回給主程式(也可以不回傳)。
能重複使用 – 寫一次,可以呼叫多次。
可重複使用的程式區塊,它能執行特定的任務,並且可以把結果回傳給呼叫它的地方。
把複雜問題拆成多個小任務,每個小任務用一個函式處理。
看程式時,不需要深入看每行細節,只要看「這個函式叫什麼名字」就知道功能。
如果程式需要修改,只要改 函式內部的程式碼。
函式讓你的程式像拼積木一樣,一塊一塊組成,容易管理。
# def [函式名稱](參數列表):
# 程式碼
# return 結果#沒有回傳值就不用寫╭────────────╮
│ sayHello │ ← 名稱
├────────────┤
│ ( ) │ ← 沒有參數
├────────────┤
│ print(...) │ ← 只做事,不回傳
╰────────────╯
def say_hello():
print("Hello!")
say_hello() #輸出:Hello!不用運算,不需要資料進來,也不用資料出去
join(name)
↓
[ 參數 name = "IZCC暑訓" ]
↓
(印出 IZCC暑訓,一定要來!)
↓
(沒有回傳值)
def join(name):
print(name,",一定要來喔!",sep="")
name="IZCC暑訓"
join(name) # 輸出:IZCC暑訓,一定要來喔!只需要執行某件事,而不需要結果
add(3,5)
│
▼
[接收參數 a=3,b=5]
│
▼
(計算 3+5 = 8)
│
▼
回傳 8def add(a,b):
return a+b # 回傳相加結果
result=add(3,5) # result = 8
print("3 + 5 =",result)輸入一些資料並得到一個結果
n=3
def add():
global n #告訴程式用外部的n
n+=1 #修改外面的n
add()
print(n)函式內的變數與外界共用
pen.speed(0) # 繪畫速度,0~1: 0最快,1最慢
pen.size() # 線條粗細
pen.forward(x) # 畫出長x的線條
pen.right(90) # 右轉90度
pen.left(120) # 左轉120度
pen.penup() # 把筆拿起來
pen.goto(x,-10) # 把筆移到畫布上指定位置
pen.pendown() # 把筆放下import turtle #匯入繪圖模組
turtle.setup(600,600) #圖片大小
turtle.bgcolor("#000000") #圖片底色
pen=turtle.Turtle()
pen.pensize(2) #畫筆粗細
pen.color("#4DFFFF") #畫筆顏色
pen.speed(1) #畫筆速度,0最快,1最慢
括號內的參數都可以修改,例如圖片底色、筆的顏色與粗細等
選喜歡的顏色,
將色碼貼到程式裡面即可,
記得要加引號“” 和井號 #
(不是rpg!)
先做到第四關,然後用以上邏輯試試看怎麼畫出□
pen.forward(200) #向右畫出一條直線pen.right(90) #畫筆向右轉90度for i in range(4): #用for迴圈將它們包起來重複執行四次import turtle #匯入繪圖模組
turtle.setup(600,600) #圖片大小
turtle.bgcolor("#000000") #圖片底色
pen=turtle.Turtle()
pen.pensize(2) #畫筆粗細
pen.color("#4DFFFF") #畫筆顏色
pen.speed(1) #畫筆速度,0最快,1最慢
def draw():
for i in range(4):
pen.forward(200) #向右畫出一條直線
pen.right(90)
draw()沒有回傳值、沒有參數
import turtle #匯入繪圖模組
turtle.setup(600,600) #圖片大小
turtle.bgcolor("#000000") #圖片底色
pen=turtle.Turtle()
pen.pensize(2) #畫筆粗細
pen.color("#4DFFFF") #畫筆顏色
pen.speed(1) #畫筆速度,0最快,1最慢
def draw():
for i in range(4):
pen.forward(200) #向右畫出一條直線
pen.right(90)
draw()pen.forward(200) #向右畫出一條直線pen.left(360/5) for i in range(5): #用for迴圈將它們包起來重複執行五次沒有回傳值、沒有參數
pen.left(360/7) pen.left(360/6) pen.left(360/8) 讓funtion可以依據參數畫出對應的幾何
def draw(x):
for i in range(x):
pen.forward(200) #向右畫出一條直線
pen.right(360/x)
x=__
draw(x)飯粒
參考遊戲中的邏輯
for j in range(10):
for i in range(4):
pen.forward(200) #向右畫出一條直線
pen.left(360/4)
pen.left(36) #想畫越密度數就設越小import turtle #匯入繪圖模組
turtle.setup(750,750) #圖片大小
turtle.bgcolor("#000000") #圖片底色
pen=turtle.Turtle()
pen.pensize(2) #畫筆粗細
pen.color("#4DFFFF") #畫筆顏色
pen.speed(0) #畫筆速度,0最快,1最慢
x=3 #從x邊形開始
for k in range(要畫幾個多邊形):
for i in range(x):
pen.forward(100)
pen.left(_____)
x=x+1 #看要遞增多少角x=3 #從x邊形開始
for k in range(4):
for j in range(10):
for i in range(x):
pen.forward(100)
pen.left(360/x)
pen.left(36)
x=x+1 #看要遞增多少角import turtle #匯入繪圖模組
turtle.colormode(255)
turtle.setup(750,750) #圖片大小
turtle.bgcolor("#000000") #圖片底色
pen=turtle.Turtle()
pen.pensize(2) #畫筆粗細
pen.speed(0) #畫筆速度,0最快,1最慢
x=3
a=255
b=0
for k in range(3):
for j in range(40):
for i in range(x):
a=(a-5)%225 #減少紅色的量
b=(b+5)%225 #增加藍色的量
pen.color(a,155,b) #紅,綠,藍
pen.forward(150)
pen.left(360/x)
pen.left(9)
x+=2import turtle #匯入繪圖模組
turtle.colormode(255)
turtle.setup(750,750) #圖片大小
turtle.bgcolor("#000000") #圖片底色
pen=turtle.Turtle()
pen.pensize(2) #畫筆粗細
pen.speed(0) #畫筆速度,0最快,1最慢
x=6
r=225
g=0
for k in range(3):
for j in range(40):
for i in range(x):
pen.forward(100)
pen.left(360/x)
pen.color(r,g,155) #紅,綠,藍
r=(r-10)%225 #減少紅色的量
g=(g+10)%225 #增加綠色的量
pen.left(9)
x+=1死別(手風琴版)
for i in range(很多次):
pen.forward(i)
pen.right(i*45) #調整角度會有奇妙的發現import turtle #匯入繪圖模組
def draw():
for i in range(150):
pen.forward(i)
pen.right(i*45)
def move():
pen.penup() # 把筆拿起來
pen.goto(0,0) #回到原點
pen.pendown() # 把筆放下
turtle.setup(750,750) #圖片大小
turtle.bgcolor("#000000") #圖片底色
pen=turtle.Turtle()
pen.pensize(1) #畫筆粗細
pen.speed(0) #畫筆速度,0最快,1最慢
for j in range(2):
pen.color("#4DFFFF")
draw() #畫風車頁片
pen.color("#FFFFFF")
move()#移動筆的位子
draw()
move()for i in range(100): #要迴圈很多次
pen.forward(i*4)
pen.right(96) #調整角度會有奇妙的發現(度數要>90)pen.penup() #避免筆在移動時留下筆跡
pen.goto(0,0) #定位回原點
pen.color("#FFFFFF")
pen.pendown()
pen.pensize(1)
for i in range(150):
pen.forward(i*3)
pen.left(110) #調整角度會有奇妙的發現