Python 基础学习Chapter2

it2023-09-07  75

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']: # 进行公式转换截取第一个到符号位之前的数字并通过eval函数转换为python语句 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']: # 进行公式转换截取第一个到符号位之前的数字并通过eval函数转换为python语句 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) # 添加0.3倍的飘落叶子 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() # 隐藏turtle speed(0) # 速度 1-10渐进,0 最快 tracer(0, 0) pu() # 抬笔 backward(100) left(90) # 左转90度 pu() # 抬笔 backward(300) # 后退300 tree(12, 100) # 递归7层 done()
最新回复(0)