Python3.x 練習(xí) --- demo

demo.1

??功能說明: 數(shù)學(xué)公式 xx * xxx = xxxx (x位正整數(shù)1~9中任一一個(gè)數(shù)字)著觉。下列代碼是讓計(jì)算機(jī)隨機(jī)枚舉等號(hào)右邊結(jié)果為9997~9999時(shí),等號(hào)左邊有幾組數(shù)字睹逃。

#!/usr/bin/env python
# -*- coding: UTF-8 -*-
# Author: jinfeng

import random
x=[a for a in range(1,10)]
set1=[]
set2=[]
set3=[]
while True:
    i=x[random.randint(0,8)]*10+x[random.randint(0,8)]
    j=x[random.randint(0,8)]*100+x[random.randint(0,8)]*10+x[random.randint(0,8)]
    k=x[random.randint(8,8)]*1000+x[random.randint(8,8)]*100+x[random.randint(8,8)]*10+x[random.randint(6,8)]
    if k==i*j:
        if i not in set1:
            set1.append(i)
        if j not in set2:
            set2.append(j)
        set3.append(k)
        print(set1)
        print(set2)
        print(set3)

?
?
?

demo.2 斐波那契數(shù)列

#!/usr/bin/env python
# -*- coding: UTF-8 -*-
# Author: jinfeng

# Fibonacci series:
# the sum of two elements defines the next
 a, b = 0, 1
while a < 10:
print(a)

?
?
?

demo.3 Flag系列--China 有待改進(jìn) 不夠智能

#!/usr/bin/env python
# -*- coding: UTF-8 -*-
# Author: jinfeng

import turtle
import time
#縮放倍數(shù)
n=1.5
#前兩個(gè)參數(shù)用于說明畫布的大小,后兩個(gè)參數(shù)說明窗體的位置
turtle.setup(600*n,400*n)
#將畫筆實(shí)例化
flag=turtle.Pen()
flag.speed(10)

#--------------------------------------------------------------------------
#計(jì)算五角星五個(gè)頂點(diǎn)的坐標(biāo)
# b=[69,141,213,285,357]
# c=[]
# i=0
# while i<5:
#     flag.up()
#     flag.setposition(-50, 10)
#     flag.down()
#     flag.setheading(b[i])
#     flag.pencolor("yellow")
#     flag.fd(10)
#     zb=flag.pos()
#     c.append(zb)
#     i += 1
# print(c)
#--------------------------------------------------------------------------

#開始畫紅旗挪圾,比例為3:2
flag.up()
flag.setposition(-150*n,100*n)
flag.down()
flag.setheading(0)
a=0
flag.begin_fill()
flag.fillcolor("red")
flag.pencolor("red")
while a<2:
    flag.fd(300*n)
    flag.right(90)
    flag.fd(200*n)
    flag.right(90)
    a+=1
flag.end_fill()

#開始畫大五角星
flag.up()
flag.setposition(-128.53*n,59.27*n)
flag.down()
flag.pencolor("yellow")
flag.begin_fill()
flag.fillcolor("yellow")
flag.goto(-71.47*n,59.27*n)
flag.goto(-117.63*n,25.73*n)
flag.goto(-100.00*n,80.00*n)
flag.goto(-82.37*n,25.73*n)
flag.goto(-128.53*n,59.27*n)
flag.end_fill()

#開始畫小五角星 甲芒划、乙、丙蚤蔓、丁
flag.begin_fill()
flag.up()
flag.setposition(-40.04*n,80.87*n)
flag.down()
flag.goto(-58.57*n,85.15*n)
flag.goto(-46.09*n,70.79*n)
flag.goto(-47.75*n,89.74*n)
flag.goto(-57.55*n,73.44*n)
flag.goto(-40.04*n,80.87*n)
flag.end_fill()

flag.begin_fill()
flag.up()
flag.setposition(-22.93*n,67.07*n)
flag.down()
flag.goto(-39.88*n,58.44*n)
flag.goto(-21.09*n,55.46*n)
flag.goto(-34.54*n,68.91*n)
flag.goto(-31.56*n,50.12*n)
flag.goto(-22.93*n,67.07*n)
flag.end_fill()

flag.begin_fill()
flag.up()
flag.setposition(-20.60*n,33.42*n)
flag.down()
flag.goto(-39.61*n,32.76*n)
flag.goto(-23.84*n,22.12*n)
flag.goto(-30.35*n,39.99*n)
flag.goto(-35.59*n,21.71*n)
flag.goto(-20.60*n,33.42*n)
flag.end_fill()

flag.begin_fill()
flag.up()
flag.setposition(-46.42*n,19.34*n)
flag.down()
flag.goto(-58.39*n,4.55*n)
flag.goto(-40.01*n,9.48*n)
flag.goto(-57.77*n,16.29*n)
flag.goto(-47.41*n,0.34*n)
flag.goto(-46.42*n,19.34*n)
flag.end_fill()
#----------------------------------------------------------------------------

#寫文字
flag.pencolor("black")
flag.up()
flag.setposition(0*n,-120*n)
flag.down()
flag.write("中國 CHINA ", align="center")

flag.hideturtle()
turtle.done()

?
?
?

demo.3.1 Flag系列--China 可以縮放 畫法比較科學(xué)

#!/usr/bin/env python
# -*- coding: UTF-8 -*-
# Author: jinfeng

import turtle as t
import time
import math
#縮放倍數(shù)
N=1
#前兩個(gè)參數(shù)用于說明畫布的大小卦溢,后兩個(gè)參數(shù)說明窗體的位置
t.setup(600*N,400*N,400/(2*N),150/(2*N))

#計(jì)算五角星的邊長
#第一步計(jì)算正五邊形邊長,半徑可以更換
r=10*N
l=math.sin(math.radians(36))*r*2
#第二部計(jì)算五角星的邊長
standl=math.sin(math.radians(54))*l*2
#驗(yàn)證計(jì)算結(jié)果
print(standl)

#-------------------------------------------------------
#開始畫紅旗秀又,比例為3:2

t.penup()
t.setposition(-150*N,100*N)
t.pendown()
t.setheading(0)
t.color("red")
t.begin_fill()
for i in range(2):
    t.fd(300*N)
    t.rt(90)
    t.fd(200*N)
    t.rt(90)
t.end_fill()
#-------------------------------------------------------
#開始畫大五角星
t.penup()
t.setposition(-100*N,80*N)
t.pendown()
t.color("yellow")
t.begin_fill()
t.setheading(18-90)
for i in range(5):
    t.fd(3*standl)
    t.rt(144)
t.end_fill()

#開始畫小五角星
#第一步小五角星頂點(diǎn)定位单寂,計(jì)算出小五角星中心線與大五角星中心線方位角
x1=-100*N
y1=50*N
agl=math.degrees(math.atan((80*N-y1)/(-50*N-x1)))

#第二步 畫甲星
t.penup()
t.setposition(-50*N,80*N)
t.pendown()
t.setheading(agl+180)
t.fd(10*N)
t.rt(180-agl/2)
t.begin_fill()
for i in range(5):
    t.fd(standl)
    t.rt(144)
t.end_fill()

#第二步 畫乙星 只需替換他們的中心坐標(biāo)就可以 中心坐標(biāo)根據(jù)規(guī)范取得 下面依次類推
agl=math.degrees(math.atan((60*N-y1)/(-30*N-x1)))
t.penup()
t.setposition(-30*N,60*N)
t.pendown()
t.setheading(agl+180)
t.fd(10*N)
t.rt(180-agl/2)
t.begin_fill()
for i in range(5):
    t.fd(standl)
    t.rt(144)
t.end_fill()

agl=math.degrees(math.atan((30*N-y1)/(-30*N-x1)))
t.penup()
t.setposition(-30*N,30*N)
t.pendown()
t.setheading(agl+180)
t.fd(10*N)
t.lt(180-agl/2)
t.begin_fill()
for i in range(5):
    t.fd(standl)
    t.rt(144)
t.end_fill()

agl=math.degrees(math.atan((10*N-y1)/(-50*N-x1)))
t.penup()
t.setposition(-50*N,10*N)
t.pendown()
t.setheading(agl+180)
t.fd(10*N)
t.lt(180-agl/2)
t.begin_fill()
for i in range(5):
    t.fd(standl)
    t.rt(144)
t.end_fill()

#在下面標(biāo)注國旗名稱
t.penup()
t.setposition(0*N,-130*N)
t.pendown()
t.color("black")
t.write("中國  CHINA",align="center",font=("宋體",12,"normal"))
t.hideturtle()

#點(diǎn)擊窗口退出 與done()一樣可以保持窗口顯示
t.exitonclick()

?
?
?

demo.3.2 Flag系列--USA

#!/usr/bin/env python
# -*- coding: UTF-8 -*-
# Author: jinfeng

import turtle as t
import math

#---------------畫法----------------------------
# 國旗的寬度:?A?=?1.0???國旗的長度:?B?=?1.9
# 聯(lián)邦范圍寬度:?C?=?0.5385?(7/13,?7條間紋的闊度)???
# 聯(lián)邦范圍長度:?D?=?0.76?(1.9?×?2/5,?五份二的國旗長度)??
# E?=?F?=?0.0538?(C/10,?聯(lián)邦范圍的十份之一闊度)??
# G?=?H?=?0.0633?(D/12,?聯(lián)邦范圍的十二份之一長度)???
# 星的直徑:?K?=?0.0616?
# 條紋的寬度:?L?=?0.0769?(1/13)

#---------------畫法----------------------------

N=2
t.setup(600*N,400*N,400/(2*N),150/(2*N))
flagw=190*N
flagh=100*N
t.speed(10)
#--畫圖框----------------
t.up()
t.setposition(-flagw,flagh)
t.down()

for i in range(2):
    t.fd(2*flagw)
    t.rt(90)
    t.fd(2*flagh)
    t.rt(90)

#畫紅條 顏色采用16進(jìn)制輸入
t.color("#B22234")
redw=2*flagh/13
for i in range(7):
    t.begin_fill()
    t.fd(2*flagw)
    t.rt(90)
    t.fd(redw)
    t.rt(90)
    t.fd(2*flagw)
    if i !=6:
        t.lt(90)
        t.fd(redw)
        t.lt(90)
    else:
        t.rt(90)
    t.end_fill()

#--畫聯(lián)邦區(qū)域
t.up()
t.setposition(-flagw,flagh)
t.setheading(0)
t.down()

lbw=(2*flagw)/5*2
lbh=7*redw
t.color("#3C3B6E")
t.begin_fill()
for i in range(2):
    t.fd(lbw)
    t.rt(90)
    t.fd(lbh)
    t.rt(90)
t.end_fill()

#--畫小星星 難點(diǎn)
# E?=?F?=?0.0538?(C/10,?聯(lián)邦范圍的十份之一闊度)
# G?=?H?=?0.0633?(D/12,?聯(lián)邦范圍的十二份之一長度)

# 星的直徑:?k=0.0616
#計(jì)算五角星的邊長
#第一步計(jì)算正五邊形邊長,半徑可以更換
r=0.025*200*N
l=math.sin(math.radians(36))*r*2
#第二部計(jì)算五角星的邊長
standl=math.sin(math.radians(54))*l*2
#驗(yàn)證計(jì)算結(jié)果
#print(standl)

#有五顆五角星的列做循環(huán)
x1=-flagw+(lbw/12)/2
for i in range(6):
    y1=flagh-lbh/10
    for i in range(5):
        t.up()
        t.setposition(x1,y1)
        t.setheading(0)
        t.down()
        t.color("white")
        t.begin_fill()
        for i in range(5):
            t.fd(standl)
            t.rt(144)
        t.end_fill()
        y1-=2*(lbh/10)
    x1+=2*(lbw/12)

#有四顆五角星的列做循環(huán)

x1=-flagw+(lbw/12)*1.5
for i in range(5):                   #總共五列 循環(huán)5次
    y1=flagh-2*lbh/10
    for i in range(4):               #一列四顆五角星 循環(huán)4次
        t.up()
        t.setposition(x1,y1)
        t.setheading(0)
        t.down()
        t.color("white")
        t.begin_fill()
        for i in range(5):          #一顆五角星 循環(huán)5次
            t.fd(standl)
            t.rt(144)
        t.end_fill()
        y1-=2*(lbh/10)
    x1+=2*(lbw/12)

#在下面標(biāo)注國旗名稱
t.penup()
t.setposition(0*N,-130*N)
t.pendown()
t.color("black")
t.write("美國  America",align="center",font=("宋體",12,"normal"))
t.hideturtle()
t.exitonclick()

?
?
?

demo.3.3 Flag系列--JAP

#!/usr/bin/env python
# -*- coding: UTF-8 -*-
# Author: jinfeng

import turtle as t
import math

#--調(diào)整系數(shù)涮坐,及設(shè)置窗口大小根據(jù)調(diào)整系數(shù)做相應(yīng)調(diào)整
N=2
t.setup(600*N,400*N,400/(2*N),150/(2*N))

#--設(shè)置初始坐標(biāo)凄贩,根據(jù)旗幟的比例設(shè)置
starx=-150*N
stary=100*N

#--設(shè)置旗幟默認(rèn)大小,后續(xù)可以根據(jù)N來調(diào)整
flagw=2*abs(starx)
flagh=2*abs(stary)
t.speed(6)

#--畫圖框----------------
t.up()
t.setposition(starx,stary)
t.down()
for i in range(2):
    t.fd(flagw)
    t.rt(90)
    t.fd(flagh)
    t.rt(90)

#--畫太陽-----------
t.up()
t.setposition(0,-(flagh*0.6)/2)
t.down()
t.color("red")
t.begin_fill()
t.circle(flagh*0.3)
t.end_fill()

#在下面標(biāo)注國旗名稱
t.penup()
t.setposition(0*N,-130*N)
t.pendown()
t.color("black")
t.write("日本  Japan",align="center",font=("宋體",12,"normal"))
t.hideturtle()
t.exitonclick()

?
?
?

demo.3.3 Flag系列--UK

#!/usr/bin/env python
# -*- coding: UTF-8 -*-
# Author: jinfeng

import turtle as t
import math

#--調(diào)整系數(shù)袱讹,及設(shè)置窗口大小根據(jù)調(diào)整系數(shù)做相應(yīng)調(diào)整
N=1
t.setup(600*N,400*N,400/(2*N),150/(2*N))
t.speed(0)

#--設(shè)置初始坐標(biāo),根據(jù)旗幟的比例設(shè)置
starx=-200*N
stary=100*N

#--設(shè)置旗幟默認(rèn)大小,后續(xù)可以根據(jù)N來調(diào)整
flagw=2*abs(starx)
flagh=2*abs(stary)
t.speed(10)

#--第一步畫藍(lán)色底--------------------------
t.up()
t.setposition(starx,stary)
t.down()
t.color("#003399")
t.begin_fill()
for i in range(2):
    t.fd(flagw)
    t.rt(90)
    t.fd(flagh)
    t.rt(90)
t.end_fill()

#--第二步畫白斜線--------------------------------------

#--求出斜線角度\長度------------------------------------
agl=math.degrees(math.atan(flagh/flagw))
xl=math.sqrt(flagh**2+flagw**2)
t.setheading(90-agl)

for i in [stary,-stary]:
    t.up()
    t.setposition(starx,i)
    t.down()
    t.color("white")
    if i==-stary:
        t.setheading(90+agl)
    t.begin_fill()
    for i in range(2):
        t.fd(flagh/10)
        t.rt(90)
        t.fd(xl)
        t.rt(90)
        t.fd(flagh/10)
    t.end_fill()


#--畫小紅斜線-----------------------------------------------
smly=(flagh/15)/(math.cos(math.atan(flagh/flagw)))
smlx=(flagh/15)/(math.sin(math.atan(flagh/flagw)))

t.up()
t.home()
t.down()
t.color("red")

#--第1條-------------------------------------
t.begin_fill()
t.setheading(270-agl)
t.fd(flagh/15)
t.rt(90)
t.goto(starx,stary-smly)
t.goto(starx,stary)
t.home()
t.end_fill()

#--第2條---------------------------------------------------
t.begin_fill()
t.setheading(90-agl)
t.fd(flagh/15)
t.rt(90)
t.goto(-starx,-stary+smly)
t.goto(-starx,-stary)
t.home()
t.end_fill()

#--第3條----------------------------------
t.begin_fill()
t.setheading(agl+90)
t.fd(flagh/15)
t.rt(90)
t.goto(-starx-smlx,stary)
t.goto(-starx,stary)
t.home()
t.end_fill()

#--第4條-------------------------------------------
t.begin_fill()
t.setheading(agl+270)
t.fd(flagh/15)
t.lt(90)
t.goto(starx+smlx,-stary)
t.goto(starx,-stary)
t.home()
t.end_fill()


#--畫大白十字------------------------
t.up()
t.setposition(starx+flagw/60*25,stary)
t.setheading(270)
t.down()

t.color("white")
t.begin_fill()
for i in range(2):
    t.fd(flagh/3)
    t.rt(90)
    t.fd(flagw/60*25)
    t.lt(90)
    t.fd(flagh/3)
    t.lt(90)
    t.fd(flagw/60*25)
    t.rt(90)
    t.fd(flagh/3)
    t.lt(90)
    t.fd(flagw/60*10)
    t.lt(90)
t.end_fill()

#--畫紅色十字----------------------
t.up()
t.setposition(starx+flagw/60*27,stary)
t.setheading(270)
t.down()

t.color("#CC0000")
t.begin_fill()
for i in range(2):
    t.fd(flagh/15*6)
    t.rt(90)
    t.fd(flagw/60*27)
    t.lt(90)
    t.fd(flagh/15*3)
    t.lt(90)
    t.fd(flagw/60*27)
    t.rt(90)
    t.fd(flagh/15*6)
    t.lt(90)
    t.fd(flagw/60*6)
    t.lt(90)
t.end_fill()

#--在下面標(biāo)注國旗名稱
t.penup()
t.setposition(0*N,-130*N)
t.pendown()
t.color("black")
t.write("英國  UK",align="center",font=("宋體",12,"normal"))
t.hideturtle()
t.exitonclick()

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
禁止轉(zhuǎn)載捷雕,如需轉(zhuǎn)載請通過簡信或評(píng)論聯(lián)系作者椒丧。
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市救巷,隨后出現(xiàn)的幾起案子壶熏,更是在濱河造成了極大的恐慌,老刑警劉巖浦译,帶你破解...
    沈念sama閱讀 222,590評(píng)論 6 517
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件棒假,死亡現(xiàn)場離奇詭異,居然都是意外死亡精盅,警方通過查閱死者的電腦和手機(jī)帽哑,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 95,157評(píng)論 3 399
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來叹俏,“玉大人妻枕,你說我怎么就攤上這事≌吵郏” “怎么了屡谐?”我有些...
    開封第一講書人閱讀 169,301評(píng)論 0 362
  • 文/不壞的土叔 我叫張陵,是天一觀的道長蝌数。 經(jīng)常有香客問我愕掏,道長,這世上最難降的妖魔是什么顶伞? 我笑而不...
    開封第一講書人閱讀 60,078評(píng)論 1 300
  • 正文 為了忘掉前任饵撑,我火速辦了婚禮,結(jié)果婚禮上枝哄,老公的妹妹穿的比我還像新娘肄梨。我一直安慰自己,他們只是感情好挠锥,可當(dāng)我...
    茶點(diǎn)故事閱讀 69,082評(píng)論 6 398
  • 文/花漫 我一把揭開白布众羡。 她就那樣靜靜地躺著,像睡著了一般蓖租。 火紅的嫁衣襯著肌膚如雪粱侣。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 52,682評(píng)論 1 312
  • 那天蓖宦,我揣著相機(jī)與錄音齐婴,去河邊找鬼。 笑死稠茂,一個(gè)胖子當(dāng)著我的面吹牛柠偶,可吹牛的內(nèi)容都是我干的情妖。 我是一名探鬼主播,決...
    沈念sama閱讀 41,155評(píng)論 3 422
  • 文/蒼蘭香墨 我猛地睜開眼诱担,長吁一口氣:“原來是場噩夢啊……” “哼毡证!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起蔫仙,我...
    開封第一講書人閱讀 40,098評(píng)論 0 277
  • 序言:老撾萬榮一對(duì)情侶失蹤料睛,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后摇邦,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體恤煞,經(jīng)...
    沈念sama閱讀 46,638評(píng)論 1 319
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,701評(píng)論 3 342
  • 正文 我和宋清朗相戀三年施籍,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了居扒。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 40,852評(píng)論 1 353
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡法梯,死狀恐怖苔货,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情立哑,我是刑警寧澤夜惭,帶...
    沈念sama閱讀 36,520評(píng)論 5 351
  • 正文 年R本政府宣布,位于F島的核電站铛绰,受9級(jí)特大地震影響诈茧,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜捂掰,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 42,181評(píng)論 3 335
  • 文/蒙蒙 一敢会、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧这嚣,春花似錦鸥昏、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,674評(píng)論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至罐旗,卻和暖如春膳汪,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背九秀。 一陣腳步聲響...
    開封第一講書人閱讀 33,788評(píng)論 1 274
  • 我被黑心中介騙來泰國打工遗嗽, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人鼓蜒。 一個(gè)月前我還...
    沈念sama閱讀 49,279評(píng)論 3 379
  • 正文 我出身青樓痹换,卻偏偏與公主長得像征字,于是被迫代替她去往敵國和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子晴音,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,851評(píng)論 2 361

推薦閱讀更多精彩內(nèi)容

  • 第一部分 打好基礎(chǔ) Laying the Foundation 第一章 歡迎進(jìn)入軟件構(gòu)建的世界 Welcome t...
    白樺葉閱讀 4,639評(píng)論 0 17
  • Scratch用循環(huán)的方法實(shí)現(xiàn)斐波那契數(shù)列編程心得 1 斐波那契數(shù)列 1.1 定義 首先引用秒懂百科里面關(guān)于“...
    余江林閱讀 773評(píng)論 0 0
  • CHAPTER 1: INTRODUCTION 第一章:簡介 In this chapter, we discus...
    哈小奇閱讀 1,031評(píng)論 2 1
  • 本文出自 Eddy Wiki 柔纵,轉(zhuǎn)載請注明出處:http://eddy.wiki/interview-code.h...
    eddy_wiki閱讀 9,345評(píng)論 0 30
  • 我們在用Xcode編程時(shí)缔杉,不小心修改了系統(tǒng)庫文件時(shí)總是會(huì)彈出如下圖的lock框锤躁,這樣能防止誤修改。當(dāng)我們使用coc...
    瞬csr閱讀 1,593評(píng)論 0 0