建筑兔零基础python自学记录84|温度/蟒蛇绘制同类练习(下)7

本次是蟒蛇绘制的一些补充内容:

for i in range():

之前我们学过,这次复习一下()中具体的范围:

  • range(N)
  • range(N,M)不包含后者
range(5)
0,1,2,3,4

range(2,5)
2,3,4

看一下代码中的含义:

  • 重复0,1,2,3,也就是循环四次
  • 每次画两个相反方向的圆
for i in range(4):
    t.circle(40, 80) 逆时针半径40,80°
    t.circle(-40, 80) 顺时针半径40,80°

我们还看到代码中有这样乘除的表达,实际中数值就是运算的数值:

t.circle(40, 80 / 2)   
t.fd(40 * 2 / 3)

回顾温度转换

在上个温度转换的学习中遗漏了几个要点,来补充一下~先回顾代码建筑兔零基础python自学记录82|温度转换5-CSDN博客

#TempConvert.py
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 = 1.8 * eval(TempStr[0:-1]) + 32
    print("转换后的温度是{:.2f}F".format(F))
else:
    print("输入格式有误")

-----print("转换后的温度是{:.2f}C".format(C))

  •  {:.2f} 是一个占位符,表示将一个浮点数格式化为保留两位小数的形式。
  • .format(C) 用于将变量 C 的值插入到占位符的位置。例如,如果 C 的值是 0.0,那么输出的内容就是 "转换后的温度是0.00C"

format()将指定值嵌入到字符串的占位符中

name = "Alice"
age = 25
message = "我的名字是 {},我 {} 岁了。".format(name, age)
print(message)

----elif TempStr[-1] in ['C', 'c']:

这里elif是else if 的简写,TempStr[-1] 则是判断输入值的最后一位是否是C或者c

温度同类题目1:

温度的刻画有两个不同体系:摄氏度(Celsius)和华氏度(Fahrenheit)。‪‬‪‬‪‬‪‬‪‬‮‬‪‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬

请编写程序将用户输入华氏度转换为摄氏度,或将输入的摄氏度转换为华氏度。‪‬‪‬‪‬‪‬‪‬‮‬‪‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬

转换算法如下:(C表示摄氏度、F表示华氏度)‪‬‪‬‪‬‪‬‪‬‮‬‪‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬

C = ( F - 32 ) / 1.8‪‬‪‬‪‬‪‬‪‬‮‬‪‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬

F = C * 1.8 + 32‪‬‪‬‪‬‪‬‪‬‮‬‪‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬

要求如下:‪‬‪‬‪‬‪‬‪‬‮‬‪‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬

(1) 输入输出的摄氏度采用大写字母C开头,温度可以是整数或小数,如:C12.34指摄氏度12.34度;‪‬‪‬‪‬‪‬‪‬‮‬‪‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬

(2) 输入输出的华氏度采用大写字母F开头,温度可以是整数或小数,如:F87.65指华氏度87.65度;‪‬‪‬‪‬‪‬‪‬‮‬‪‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬

(3) 不考虑异常输入的问题,输出保留小数点后两位;‪‬‪‬‪‬‪‬‪‬‮‬‪‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬

(4) 使用input()获得测试用例输入时,不要增加提示字符串。

这里有一段写好的代码,检查代码错误

#TempStr.py
TempStr=input()
if TempStr in ["F","f"]:
    C=(eval(TempStr[1:])-32)/1.8
if TempStr in ["C","c"]:
    F=eval(TempStr[1:])*1.8+32

先阅读编程要求,对比上一次

检查代码发现

解答:

#TempStr.py
TempStr=input()
if TempStr[0] in ["F"]:
    C=(eval(TempStr[1:])-32)/1.8
    print('C{:.2f}'.format(C))
elif TempStr[0] in ["C"]:
    F=eval(TempStr[1:])*1.8+32
    print('F{:.2f}'.format(F))
else:
	print()

温度同类题目2:

人民币和美元是世界上通用的两种货币之一,写一个程序进行货币间币值转换,其中:‪‬‪‬‪‬‪‬‪‬‮‬‪‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬

人民币和美元间汇率固定为:1美元 = 6.78人民币。‪‬‪‬‪‬‪‬‪‬‮‬‪‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬

程序可以接受人民币或美元输入,转换为美元或人民币输出。人民币采用RMB表示,美元USD表示,符号和数值之间没有空格。‪‬‪‬‪‬‪‬‪‬‮‬‪‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬

注意:‪‬‪‬‪‬‪‬‪‬‮‬‪‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬

(1) 获得输入请使用input() ;‪‬‪‬‪‬‪‬‪‬‮‬‪‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬

(2) 不提示输出格式错误,结果小数点后保留两位。

解答:

exchange=input()
if exchange[0:3] =='USD':
    rmb=eval(exchange[3:])*6.78
    print('RMB{:.2f}'.format(rmb))
elif exchange[0:3] =='RMB':
    usd=eval(exchange[3:])/6.78
    print('USD{:.2f}'.format(usd))
else:
    print()

这里可以看到.2f是取小数点后两位的方法

乌龟同类题目1:使用turtle库,绘制一个正方形。‪‬‪‬‪‬‪‬‪‬‮‬‫‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‪‬

解答: 

import turtle as t
t.pensize(5)
t.pendown()
t.fd(100)
t.left(90)
t.fd(100)
t.left(90)
t.fd(100)
t.left(90)
t.fd(100)
t.left(90)
t.done()

乌龟同类题目2:使用turtle库,绘制一个六边形。‪‬‪‬‪‬‪‬‪‬‮‬‫‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬

import turtle as t
t.pd()
t.pensize(5)
t.fd(100)
t.left(60)
t.fd(100)
t.left(60)
t.fd(100)
t.left(60)
t.fd(100)
t.left(60)
t.fd(100)
t.left(60)
t.fd(100)
t.left(60)
t.done()

乌龟同类题目3:使用turtle库,绘制一个叠边形,其中,叠边形内角为100度‪‬‪‬‪‬‪‬‪‬‮‬‫‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‪,外角80度。

 方法1

import turtle as t
t.pensize(5)
t.pd()
t.fd(90)
t.left(80)
t.fd(90)
t.left(80)
t.fd(90)
t.left(80)
t.fd(90)
t.left(80)
t.fd(90)
t.left(80)
t.fd(90)
t.left(80)
t.fd(90)
t.left(80)
t.fd(90)
t.left(80)
t.fd(90)
t.left(80)
t.done()

方法2:

import turtle as t
t.pensize(5)
t.pd()
for i in range(9):
    t.fd(90)
    t.left(80)
t.done()

 乌龟同类题目4:使用turtle库,绘制一个风轮效果,其中,每个风轮内角为45度,风轮边长100像素。‪‬‪‬‪‬‪‬‪‬‮‬‫‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‪‬

思路先画一个扇叶,然后重复四遍

第一次画成了左边的,代码是

#画错代码
import turtle as t
t.pensize(5)
t.left(45)
t.fd(100)
t.left(90)
t.circle(100, 45)
t.right(90)
t.done()

改正后 

import turtle as t
t.pensize(5)
for i in range(4):
    t.left(45)
    t.fd(100)
    t.left(90)
    t.circle(100, 45)
    t.left(90)
    t.fd(100)
t.done()

进一步要求:使用t.goto(x,y)命令 

还是先画局部看看,发现goto是落笔的。

删掉最后的t.fd(100)后代入循环发现重复画了2片风车页 

 

修改扇叶最后的方向,改为画相邻的叶片而不是对角叶片。发现要右转90°

import turtle as t
t.pensize(5)
for i in range(4):
    t.left(45)
    t.fd(100)
    t.left(90)
    t.circle(100, 45)
    t.goto(0, 0)
    t.right(90)
t.done()

 t.goto(0, 0)小海龟移动到坐标为 (0, 0) 的位置,也就是画布的原点。不过,此语句并不会改变小海龟的朝向,小海龟在移动之后会保持移动之前的方向

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值