⑴ 總結用python繪制正多邊形的規律
如果能夠找到規律,可以讓代碼變得更簡單。上述代碼中其實就是調用circle()函數四次,每次傳入參數不同而已。
我們可以加入循環,循環就是重復不停地做相同的事情;再找到循環變數和畫圓參數之間的規律即可。
第一個圓的半徑為50,每次按15的節奏遞減,直到繪制完半徑為5的圓。這樣就可以使用range()函數,傳入如下參數:range(50,0,-15)。
或者由小到大繪制,傳入這樣的參數也可以:range(5,51,15)。
還可以這樣:循環四次,循環變數i依次為0、1、2、3,再在繪制圓的過程中構造遞減的表達式:100/2-i*15。
分析這個表達式,當i等於0時,結果為50,繪制半徑為50的圓;當i等於1時,結果為35,繪制半徑為35的圓……正好符合題目要求的參數值。
【擴展】思考如何繪制以坐標原點為中心的同心圓呢?
仔細觀察畫筆繪制圓的軌跡,可發現:默認小海龜從坐標原點出發,逆時針旋轉一圈畫圓;然後,再回到起始點。
所以,繪制同心圓。我們需要將畫筆向下移動一定的距離,即改變y的坐標,x坐標保持不變為0。參考代碼如下:
循環體內,每次需要抬筆和落筆功能。
02
案例二:繪制一個正多邊形
繪制正多邊形有這樣一個結論:用360°去除以繪制的邊數,即可得到旋轉角度。
比如:正三角形的旋轉角度(360/3=120°)、正四邊形的旋轉角度(360/4=90°)、正八邊形的旋轉角度(360/8=45°)。其他以此類推。
那麼,我們要繪制一個正八邊形呢?
使用循環結構,循環八次。每次前移一定距離,再旋轉(360/邊數)的角度,這里旋轉的就是45°角。參考代碼如下:
有了這樣的結論,其他的正多邊形都可以信手拈來,小菜一碟了。只需要稍微改幾個參數即可。
03
案例三:繪制由多種顏色組成的正螺旋線
比如,這樣的圖形:
這是由八種顏色組成的正八邊形螺旋線結構圖,顏色依次為:紅(red)、綠(green)、藍(blue)、黃(yellow)、紫(purple)、橙(orange)、黑(black)、粉(pink)等八種。
繪制思路:
首先,需要創建一個顏色列表list,含有八種顏色元素。
第二,前移一定距離,這個距離值是由小到大逐級遞增的過程。
第三,旋轉一定角度,可參照案例二的結論。
最後,考慮畫筆的顏色,每8次(邊數)為一個周期循環顏色列表。
參考代碼如下:
其他的正螺旋線,也是如此規律。
【擴展】如果是有一定旋轉角度的螺旋線呢?比如,這樣的圖形:
解題思路:只需要在正螺旋線的基礎上,讓旋轉角度多偏移1-2°即可。修改上述案例中最後一行的代碼:
⑵ 用python畫鴿子代碼
我在逛Quora的時候發現這么一個問題:
What is the most beautiful program you ever coded in Python?
有網友分享了自己用turtle或者pylab畫出來的酷炫圖形。
前兩個是用turtle畫的動態圖(簡書可以傳動圖嗎?),第三個是用pylab畫的靜態圖,原來用pylab也能畫出這么多彩的圖形。
<code>
from turtle import*
from time import sleep
title("fanatic")
bgcolor("white")
speed(0)
ht()
pu()
goto(-400,0)
pd()
tracer(False)
L=["green","yellow"]
for i in range(5,101,2):
for j in range(i):
for z in range(40):
pencolor(L[z%2])
fd(20)
rt(180-180/i)
tracer(True)
sleep(0.03)
tracer(False)
clear()
'''
⑶ 用python,turtle繪制數字,如繪制260這三個數字,同時要求每個數字填不同的顏色
1、雙擊打開pycharm開發工具,在已新建的項目中新建python文件,輸入文件名稱。
⑷ 用python畫七角星填充顏色為黃色每條邊長200像素點每條邊顏色紅黃藍交替變化
用python畫七角星填充顏色為黃色每條邊長200像素點每條邊顏色紅黃藍交替變化
⑸ Python設置多畫筆同時動
可以。
如果想Python設置多畫筆同時動使用:庫名.函數名(函數參數)Pythonturtle繪圖庫調用。
Python是一種跨平台的計算機程序設計語言是一個高層次的結合了解釋性、編譯性、互動性和面向對象的腳本語言最初被設計用於編寫自動化腳本(shell),隨著版本的不斷更新和語言新功能的添加,越多被用於獨立的、大型項目的開發Python的應用領域還是非常廣泛的,因為Python是一種解釋型腳本語言,所以可以應用的領域就非常的豐富,比如:Web和Internet開發,科學計算和統計,人工智慧,桌面界面開發,軟體開發,後端開發。
⑹ 如何用python畫冰墩墩
隨著北京冬奧會的開幕,吉祥物「 冰墩墩」可是火出了圈,銷售「 冰墩墩」的店鋪排起了長龍,用python可以繪畫冰墩墩嗎?當然是可以的。很多小夥伴在求python代碼,下面就是源碼啦,大家趕緊用python實現冰墩墩吧,徹底實現一人一墩。
一、python實現冰墩墩步驟:
1、安裝python環境;
2、在桌面創建文本文件,將下面的代碼復制粘貼進去;
3、將創建文件的格式修改為.py
4、雙擊運行就可以啦!
二、python實現冰墩墩源代碼:
importturtle
turtle.title('Python(冰墩墩)')
turtle.speed(40)#可以自己調節速度
#左手
turtle.penup()
turtle.goto(177,112)
turtle.pencolor("lightgray")
turtle.pensize(3)
turtle.fillcolor("white")
turtle.begin_fill()
turtle.pendown()
turtle.setheading(80)
turtle.circle(-45,200)
turtle.circle(-300,23)
turtle.end_fill()
#左手內
turtle.penup()
turtle.goto(182,95)
turtle.pencolor("black")
更多源碼點擊下方鏈接查看
python畫冰墩墩源代碼
⑺ 請問如何用Python turtle畫一個多角星
一般是要靠算角度的
import turtle
import time
turtle.forward(100)
turtle.right(144)
time.sleep(1)
turtle.forward(100)
turtle.right(144)
time.sleep(1)
turtle.forward(100)
turtle.right(144)
turtle.forward(100)
time.sleep(1)
turtle.right(144)
turtle.forward(100)
time.sleep(3)
你可以寫一個子函數通過給定的角的數量用公式計算出角度再代入上述代碼的角度參數里就OK了
⑻ 如何在pytho語言所選的多行代碼添加#號,同時撤銷所選的多行代碼的#號,在鍵盤上有什麼快捷鍵嗎
python版本:3.5.3,
添加多行#號:alt+3,
撤銷多行#號:alt+4。
⑼ Python turtle海龜制圖 求代碼
# coding:utf-8
import turtle as t
# 繪制小豬佩奇
# =======================================
t.pensize(4)
t.hideturtle()
t.colormode(255)
t.color((255, 155, 192), "pink")
t.setup(840, 500)
t.speed(10)
# 鼻子
t.pu()
t.goto(-100, 100)
t.pd()
t.seth(-30)
t.begin_fill()
a = 0.4
for i in range(120):
if 0 <= i < 30 or 60 <= i < 90:
a = a + 0.08
t.lt(3) # 向左轉3度
t.fd(a) # 向前走a的步長
else:
a = a - 0.08
t.lt(3)
t.fd(a)
t.end_fill()
t.pu()
t.seth(90)
t.fd(25)
t.seth(0)
t.fd(10)
t.pd()
t.pencolor(255, 155, 192)
t.seth(10)
t.begin_fill()
t.circle(5)
t.color(160, 82, 45)
t.end_fill()
t.pu()
t.seth(0)
t.fd(20)
t.pd()
t.pencolor(255, 155, 192)
t.seth(10)
t.begin_fill()
t.circle(5)
t.color(160, 82, 45)
t.end_fill()
# 頭
t.color((255, 155, 192), "pink")
t.pu()
t.seth(90)
t.fd(41)
t.seth(0)
t.fd(0)
t.pd()
t.begin_fill()
t.seth(180)
t.circle(300, -30)
t.circle(100, -60)
t.circle(80, -100)
t.circle(150, -20)
t.circle(60, -95)
t.seth(161)
t.circle(-300, 15)
t.pu()
t.goto(-100, 100)
t.pd()
t.seth(-30)
a = 0.4
for i in range(60):
if 0 <= i < 30 or 60 <= i < 90:
a = a + 0.08
t.lt(3) # 向左轉3度
t.fd(a) # 向前走a的步長
else:
a = a - 0.08
t.lt(3)
t.fd(a)
t.end_fill()
# 耳朵
t.color((255, 155, 192), "pink")
t.pu()
t.seth(90)
t.fd(-7)
t.seth(0)
t.fd(70)
t.pd()
t.begin_fill()
t.seth(100)
t.circle(-50, 50)
t.circle(-10, 120)
t.circle(-50, 54)
t.end_fill()
t.pu()
t.seth(90)
t.fd(-12)
t.seth(0)
t.fd(30)
t.pd()
t.begin_fill()
t.seth(100)
t.circle(-50, 50)
t.circle(-10, 120)
t.circle(-50, 56)
t.end_fill()
# 眼睛
t.color((255, 155, 192), "white")
t.pu()
t.seth(90)
t.fd(-20)
t.seth(0)
t.fd(-95)
t.pd()
t.begin_fill()
t.circle(15)
t.end_fill()
t.color("black")
t.pu()
t.seth(90)
t.fd(12)
t.seth(0)
t.fd(-3)
t.pd()
t.begin_fill()
t.circle(3)
t.end_fill()
t.color((255, 155, 192), "white")
t.pu()
t.seth(90)
t.fd(-25)
t.seth(0)
t.fd(40)
t.pd()
t.begin_fill()
t.circle(15)
t.end_fill()
t.color("black")
t.pu()
t.seth(90)
t.fd(12)
t.seth(0)
t.fd(-3)
t.pd()
t.begin_fill()
t.circle(3)
t.end_fill()
# 腮
t.color((255, 155, 192))
t.pu()
t.seth(90)
t.fd(-95)
t.seth(0)
t.fd(65)
t.pd()
t.begin_fill()
t.circle(30)
t.end_fill()
# 嘴
t.color(239, 69, 19)
t.pu()
t.seth(90)
t.fd(15)
t.seth(0)
t.fd(-100)
t.pd()
t.seth(-80)
t.circle(30, 40)
t.circle(40, 80)
# 身體
t.color("red", (255, 99, 71))
t.pu()
t.seth(90)
t.fd(-20)
t.seth(0)
t.fd(-78)
t.pd()
t.begin_fill()
t.seth(-130)
t.circle(100, 10)
t.circle(300, 30)
t.seth(0)
t.fd(230)
t.seth(90)
t.circle(300, 30)
t.circle(100, 3)
t.color((255, 155, 192), (255, 100, 100))
t.seth(-135)
t.circle(-80, 63)
t.circle(-150, 24)
t.end_fill()
# 手
t.color((255, 155, 192))
t.pu()
t.seth(90)
t.fd(-40)
t.seth(0)
t.fd(-27)
t.pd()
t.seth(-160)
t.circle(300, 15)
t.pu()
t.seth(90)
t.fd(15)
t.seth(0)
t.fd(0)
t.pd()
t.seth(-10)
t.circle(-20, 90)
t.pu()
t.seth(90)
t.fd(30)
t.seth(0)
t.fd(237)
t.pd()
t.seth(-20)
t.circle(-300, 15)
t.pu()
t.seth(90)
t.fd(20)
t.seth(0)
t.fd(0)
t.pd()
t.seth(-170)
t.circle(20, 90)
# 腳
t.pensize(10)
t.color((240, 128, 128))
t.pu()
t.seth(90)
t.fd(-75)
t.seth(0)
t.fd(-180)
t.pd()
t.seth(-90)
t.fd(40)
t.seth(-180)
t.color("black")
t.pensize(15)
t.fd(20)
t.pensize(10)
t.color((240, 128, 128))
t.pu()
t.seth(90)
t.fd(40)
t.seth(0)
t.fd(90)
t.pd()
t.seth(-90)
t.fd(40)
t.seth(-180)
t.color("black")
t.pensize(15)
t.fd(20)
# 尾巴
t.pensize(4)
t.color((255, 155, 192))
t.pu()
t.seth(90)
t.fd(70)
t.seth(0)
t.fd(95)
t.pd()
t.seth(0)
t.circle(70, 20)
t.circle(10, 330)
t.circle(70, 30)
t.done()
⑽ python 用eval(input)畫這樣四個圓 提示用戶輸入半徑
python有兩種編程方式,互動式和文件式。
互動式:對每個輸入語句即時運行結果------適合語法練習
文件式:批量執行一組語句並運行結果------編程的主要方式
實例1:圓面積的計算(根據半徑r計算圓面積)
字元串的使用
使用[ ]獲取字元串中一個或多個字元
1 TempStr = input("請輸入帶有符號的溫度值: ") 2 if TempStr[-1] in ['F', 'f']:#TempStr[-1]指的是最後一個字元 3 C = (eval(TempStr[0:-1]) - 32)/1.8#TempStr[0:-1]指的是字元串從第一個到最後一個之前的所有字元串 4 print("轉換後的溫度是{:.2f}C".format(C)) 5 elif TempStr[-1] in ['C', 'c']: 6 F = 1.8*eval(TempStr[0:-1]) + 32 7 print("轉換後的溫度是{:.2f}F".format(F)) 8 else: 9 print("輸入格式錯誤")
數字類型:整數和浮點數
整數:數學中的整數
32或-89
浮點數:數學中的實數,帶有小數部分
1.8或者-1.8或者-1.0
列表類型:由0個或多個數據組成的有序序列
列表使用[ ]表示,採用逗號分隔各元素
[ 'F' , 'f' ]表示列表裡含義兩個元素'F'和'f'
使用保留字in判斷一個元素是否在列表中
TempStr[-1] in ['C' , 'c']判斷前者是否與列表中的某個元素相同
賦值語句:由賦值符號構成的一行代碼
賦值符號筆者之前提過,就是我們俗稱的等於號,但等於號在編程語言中通常表示賦值,不表示等於號的含義。
1、賦值語句用來給變數賦予新的數據值
C = (eval(TempStr[0:-1]) - 32)/1.8 #右側運算結果值賦值給C
2、賦值語句右側的數據類型同時作用於變數
TempStr = input("請輸入帶有符號的溫度值: ") #input返回一個字元串,所以TempStr也是字元串
分支語句:由判斷條件決定程序運行方向的語句
1 if TempStr[-1] in ['F', 'f']:
如果條件為True則執行冒號後的語句
2、每個保留字所在行最後存在一個冒號:,是語法的一部分
冒號及後續縮進用來表示後續語句與條件的所屬關系
函數:根據輸入參數產生不同輸出的功能過程
類似於數學中的函數,y=f(x)
print("輸入格式錯誤") #列印出 輸入格式錯誤
函數採用<函數名>(<參數>)的方式使用
1 eval(TempStr[0:-1])#TempStr[0:-1]是參數
python的輸入輸出
input():從控制台獲得用戶輸入的函數
input()函數的使用格式:
1 <變數>=input (<提示信息字元串>)
用戶輸入的信息以字元串類型保存在<變數>中
1 TempStr=input("請輸入") #TempStr保存用戶輸入的信息
輸出函數print()
以字元形式向控制台輸出結果的函數
print()函數的基本使用格式
1 print(<擬輸出字元串或字元串變數>)
字元串類型的一對引號僅在程序內部使用,輸出無引用
1 print("輸入格式錯誤")#向控制台輸出 輸入格式錯誤
print函數的格式化:
1 print("轉換後的溫度是{:.2f}C".format(C))
{ }表示槽,後續變數填充到槽中
{:.2f}表示將變數C填充到這個位置時取小數點後2位
如果C的值是123.456789,則輸出結果為123.45C
評估函數eval():去掉參數最外側引號並執行餘下語句的函數
eval的基本使用格式
1 eval(<字元串或字元串變數>)
>>>eval("1") 1