Chapter2
美元与人民币转换美元与人民币转换(封装为函数)美元与人民币转换(循环调用函数,直到N||n结束)五角星绘制太阳花绘制正方形旋转绘制正方形绘制(第四边重合)正方形绘制(迷宫造型)温度转换温度转换函数版温度转换循环函数版等边三角形绘制Python 蟒蛇绘制彩蛋 递归树
美元与人民币转换
string
= input("请输入带符号的金钱数额:")
if string
[-1] == '$':
rmb
= eval(string
[0:-1]) * 6
print("转换后的为{}¥".format(rmb
))
elif string
[-1] == '¥':
my
= eval(string
[0:-1]) / 6
print("转换后的为{}$".format(my
))
else:
print("输入格式有误")
请输入带符号的金钱数额:12$
转换后的为72¥
美元与人民币转换(封装为函数)
def rmb2my(string
):
if string
[-1] == '$':
rmb
= eval(string
[0:-1]) * 6
print("转换后的为{}¥".format(rmb
))
elif string
[-1] == '¥':
my
= eval(string
[0:-1]) / 6
print("转换后的为{}$".format(my
))
else:
print("输入格式有误")
money
= input("请输入带符号的金钱数额:")
rmb2my
(money
)
请输入带符号的金钱数额:12¥
转换后的为2.0$
美元与人民币转换(循环调用函数,直到N||n结束)
def rmb2my(string
):
if string
[-1] == '$':
rmb
= eval(string
[0:-1]) * 6
print("转换后的为{}¥".format(rmb
))
elif string
[-1] == '¥':
my
= eval(string
[0:-1]) / 6
print("转换后的为{}$".format(my
))
else:
print("输入格式有误")
money
= input("请输入带符号的金钱数额,输入(N,n)结束程序:")
while money
[-1] not in ['N', 'n']:
rmb2my
(money
)
money
= input("请输入带符号的金钱数额,输入(N,n)结束程序:")
请输入带符号的金钱数额,输入(N,n)结束程序:12¥
转换后的为2.0$
请输入带符号的金钱数额,输入(N,n)结束程序:20$
转换后的为120¥
请输入带符号的金钱数额,输入(N,n)结束程序:N
五角星绘制
from turtle
import *
fillcolor
("red")
begin_fill
()
while True:
forward
(200)
right
(144)
if abs(pos
()) < 1:
break
end_fill
()
太阳花绘制
from turtle
import *
color
("red", "yellow")
begin_fill
()
while True:
forward
(200)
left
(170)
if abs(pos
()) < 1:
break
end_fill
()
done
()
---------------------------------------------------------------------------
Terminator Traceback (most recent call last)
<ipython-input-1-3583bffe0b6f> in <module>
5 while True:
6 forward(200)
----> 7 left(170)
8 if abs(pos()) < 1:
9 break
D:\Anaconda3\lib\turtle.py in left(angle)
D:\Anaconda3\lib\turtle.py in left(self, angle)
1697 67.0
1698 """
-> 1699 self._rotate(angle)
1700
1701 def pos(self):
D:\Anaconda3\lib\turtle.py in _rotate(self, angle)
3274 for _ in range(steps):
3275 self._orient = self._orient.rotate(delta)
-> 3276 self._update()
3277 self._orient = neworient
3278 self._update()
D:\Anaconda3\lib\turtle.py in _update(self)
2658 return
2659 elif screen._tracing == 1:
-> 2660 self._update_data()
2661 self._drawturtle()
2662 screen._update() # TurtleScreenBase
D:\Anaconda3\lib\turtle.py in _update_data(self)
2644
2645 def _update_data(self):
-> 2646 self.screen._incrementudc()
2647 if self.screen._updatecounter != 0:
2648 return
D:\Anaconda3\lib\turtle.py in _incrementudc(self)
1290 if not TurtleScreen._RUNNING:
1291 TurtleScreen._RUNNING = True
-> 1292 raise Terminator
1293 if self._tracing > 0:
1294 self._updatecounter += 1
Terminator:
正方形旋转绘制
from turtle
import *
import random
def square_drawing():
for j
in range(4):
fd
(初始长度
)
left
(90)
初始长度
= eval(input("请输入正方形的边长:\n"))
正方形个数
= eval(input("请输入正方形的个数:\n"))
旋转角度
= 90 / 正方形个数
颜色
= ['red', 'green', 'yellow', 'blue']
speed
(5)
for i
in range(正方形个数
):
pencolor
(颜色
[random
.randint
(0, 3)])
square_drawing
()
left
(旋转角度
)
done
()
请输入正方形的边长:
20
请输入正方形的个数:
5
正方形绘制(第四边重合)
from turtle
import *
chang
= 0
col
= ['red', 'green', 'blue', 'yellow']
for count
in range(50):
pencolor
(col
[count
% 4])
fillcolor
(col
[count
% 4])
seth
(90 * (count
+ 1))
if count
% 3 == 0:
chang
+= 10
fd
(chang
)
continue
fd
(chang
)
done
()
正方形绘制(迷宫造型)
from turtle
import *
col
= ['red', 'green', 'blue']
for count
in range(50):
pencolor
(col
[count
% 3])
seth
(90 * (count
+ 1))
fd
(10 * (count
+ 1))
done
()
温度转换
TempStr
= input("请输入带符号的温度值:")
if TempStr
[-1] in ['F', 'f']:
C
= (eval(TempStr
[0:-1]) - 32) / 1.8
print("转换后的温度是{:.2f}C".format(C
))
elif TempStr
[-1] in ['c', 'C']:
F
= eval(TempStr
[0:-1]) * 1.8 + 32
print("转换后的温度是{:.2f}F".format(F
))
else:
print("输入有误")
请输入带符号的温度值:20C
转换后的温度是68.00F
温度转换函数版
def temp_convert(value_str
):
if value_str
[-1] in ['F', 'f']:
c
= (eval(value_str
[0:-1]) - 32) / 1.8
print("转换后的温度是{:.2f}C".format(c
))
elif value_str
[-1] in ['c', 'C']:
f
= eval(value_str
[0:-1]) * 1.8 + 32
print("转换后的温度是{:.2f}F".format(f
))
else:
print("输入格式有误")
temp_str
= input("请输入带符号的温度值:")
temp_convert
(temp_str
)
请输入带符号的温度值:20C
转换后的温度是68.00F
温度转换循环函数版
def temp_convert(value_str
):
if value_str
[-1] in ['f', 'F']:
c
= (eval(value_str
[0:-1]) - 32) / 1.8
print("{:.2f}c".format(c
))
elif value_str
[-1] in ['c', 'C']:
f
= 1.8 * eval(value_str
[0:-1]) + 32
print("{:.2f}f".format(f
))
else:
print("输入有误")
temp_str
= input("请输入带符号的温度值:")
while temp_str
[-1] not in ['N', 'n']:
temp_convert
(temp_str
)
temp_str
= input("请输入带符号的温度值:")
等边三角形绘制
from turtle
import *
fillcolor
("red")
begin_fill
()
while True:
fd
(200)
right
(120)
if abs(pos
()) < 1:
break
end_fill
()
Python 蟒蛇绘制
import turtle
turtle
.setup
(650, 350, 200, 200)
turtle
.penup
()
turtle
.fd
(-250)
turtle
.pendown
()
turtle
.pensize
(25)
turtle
.pencolor
("purple")
turtle
.seth
(-40)
for i
in range(4):
turtle
.circle
(40, 80)
turtle
.circle
(-40, 80)
turtle
.circle
(40, 40)
turtle
.fd
(40)
turtle
.circle
(16, 180)
turtle
.fd
(40 * 2 / 3)
turtle
.done
()
彩蛋 递归树
from turtle
import *
from random
import *
from math
import *
def tree(n
, l
):
pd
()
t
= cos
(radians
(heading
() + 45)) / 8 + 0.25
pencolor
(t
, t
, t
)
pensize
(n
/ 3)
forward
(l
)
if n
> 0:
b
= random
() * 15 + 10
c
= random
() * 15 + 10
d
= l
* (random
() * 0.25 + 0.7)
right
(b
)
tree
(n
- 1, d
)
left
(b
+ c
)
tree
(n
- 1, d
)
right
(c
)
else:
right
(90)
n
= cos
(radians
(heading
() - 45)) / 4 + 0.5
pencolor
(n
, n
* 0.8, n
* 0.8)
circle
(3)
left
(90)
if (random
() > 0.7):
pu
()
t
= heading
()
an
= -40 + random
() * 40
setheading
(an
)
dis
= int(800 * random
() * 0.5 + 400 * random
()
* 0.3 + 200 * random
() * 0.2)
forward
(dis
)
setheading
(t
)
pd
()
right
(90)
n
= cos
(radians
(heading
() - 45)) / 4 + 0.5
pencolor
(n
* 0.5 + 0.5, 0.4 + n
* 0.4, 0.4 + n
* 0.4)
circle
(2)
left
(90)
pu
()
t
= heading
()
setheading
(an
)
backward
(dis
)
setheading
(t
)
pu
()
backward
(l
)
bgcolor
(0.5, 0.5, 0.5)
ht
()
speed
(0)
tracer
(0, 0)
pu
()
backward
(100)
left
(90)
pu
()
backward
(300)
tree
(12, 100)
done
()