题目1:货币转换
人民币和美元间汇率固定为:1美元=6.78人民币。程序可以接受人民币或美元输入,转换为美元或人民币输出。人民币采用RMB标识,美元USD标识,符号和数值之间没有空格。
注意:
- 获得输入请使用input() ;
- 不提示输出格式错误,结果小数点后保留两位。
实现如下:
CoinStr = input("")
if CoinStr[0:3] in ['RMB','rmb']:
C = eval(CoinStr[3:]) /6.78
print("USD{:.2f}".format(C))
elif CoinStr[0:3] in ['USD', 'usd']:
F = eval(CoinStr[3:]) *6.78
print("RMB{:.2f}".format(F))
else:
print("输入格式错误")
题目2:温度转换1
编写程序将用户输入华氏度转换为摄氏度,或将输入的摄氏度转换为华氏度
转换算法如下:(C表示摄氏度,F表示华氏度)
C = (F - 32)/1.8
F = C * 1.8 +32
要求如下:
- 输入输出的摄氏度采用大写字母C开头,温度可以是整数或小数,如:C12.34指摄氏度12.34度
- 输入输出的华氏度采用大写字母F开头,温度可以是整数或小数,如:F87.65指华氏度87.65度
- 不考虑异常输入的问题,输出保留小数点后两位
- 使用input获得测试用例输入时,不要增加提示字符串
实现如下:
TempStr = input("")
if TempStr[0] in ['F','f']:
C = (eval(TempStr[1:]) - 32)/1.8
print("C{:.2f}".format(C))
elif TempStr[0] in ('C','c'):
F = 1.8 * eval(TempStr[1:]) + 32
print("F{:.2f}".format(F))
else:
print("输入格式错误")
题目3:温度转换2
转换算法同上,要求如下:
- 输入输出的摄氏度可采用大小写字母C结尾,温度可以是整数或小数,如:12.34C指摄氏度12.34度
- 输入输出的华氏度可采用大小写字母F结尾,温度可以是整数或小数,如:87.65F指摄氏度87.65度
- 输出保留小数点后两位,输入格式错误时,输出提示:输入格式错误
- 使用input()获得测试用例输入时,不要增加提示字符串
实现如下:
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("输入格式错误")
题目4:数值运算
获得用户输入的一个字符串,格式如下:M OP N
其中,M和N是任何数字,OP代表一种操作,表示为如下四种:+,—,*,/(加减乘除)根据OP,输出M OP N的运算结果,同意保存小数点后2位。
注意:M和OP、OP和N之间可以存在多个空格,不考虑输入错误情况
实现如下:
题目5:turtle正方形绘制
使用turtle库,绘制一个正方形
实现如下:
#PythonDraw.py
import turtle
turtle.pencolor("black")
turtle.pensize(5)
turtle.forward(150)
turtle.left(90)
turtle.forward(150)
turtle.left(90)
turtle.forward(150)
turtle.left(90)
turtle.forward(150)
turtle.done()
题目6:turtle六边形绘制
使用turtle库,绘制一个六边形
实现如下:
#绘制六边形
import turtle
turtle.pencolor("black")
turtle.pensize(5)
turtle.forward(150)
turtle.left(60)
turtle.forward(150)
turtle.left(60)
turtle.forward(150)
turtle.left(60)
turtle.forward(150)
turtle.left(60)
turtle.forward(150)
turtle.left(60)
turtle.forward(150)
turtle.done()
代码优化后:
#绘制六边形
import turtle
turtle.pensize(5)
for i in range(6):
turtle.forward(150)
turtle.left(60)
turtle.done()
题目7:天天向上的力量
工作日模式要努力到什么水平,才能与每天努力1%一样?
-A君: 一年365天,每天进步1%,不停歇
-B君: 一年365天,每周工作5天休息2天,休息日下降1% ,要多努力呢?
每周工作5天休息2天,计算工作日的努力参数是多少才能与每天努力1%一样。
要求如下:
(1) 一年365天,以第0天的能力值为基数,记为1.0;
(2) 当好好学习时,能力值相比前一天提高1%;当没有学习时,由于遗忘等原因能力值相比前一天下降1%;
输出:
输出结果格式如下:(其中结果保留小数点后三位,冒号后有一个空格)
工作日的努力参数是: 0.019
分析
A君,一年努力365天,每天进步1%,365天之后进步的值是pow(1.01,365)=37.783,B君:
- 枚举法,从A君的基础1%上开始一个个尝试,当不满足条件时,则增加0.01,直到等于37.783
- 写一个函数,在里面判断,当周六日,下降1%。否则,上升df
代码实现:
def dayUp(df):
dayup = 1 #能力值的初始值为1
for i in range(365):
if i % 7 in [6,0]: #一周有7天,模7,取出周六日
dayup = dayup * 0.99 #周六日下降
else:
dayup = dayup * (1 + df) #df为所求的工作日要多努力
return dayup
dayfactor = 0.01 #A君是每天努力1%,因此B君从1%开始试,当不符合的时候,每次增加0.001
while dayUp(dayfactor) < 37.78: #365每天努力1%,一年下来的结果是37.78
dayfactor = dayfactor + 0.001
print("工作日努力参数是:{:.3f}".format(dayfactor))
题目8:星号三角形
读入一个整数N,N是奇数,输出由星号字符组成的等边三角形,要求:第1行1个星号,第2行3个星号,第3行5个星号,依次类推,最后一行共N的星号。输出如下所示:
代码实现:
num = input("")
a = "*"
for i in range(eval(num)+1):
if i % 2 != 0:
r = i * a #字符串连乘,要写成:数字*变量,其中,字符不能直接*,只能将字符赋值给一个变量后再*
print(r.center(eval(num), " "))