Python语言程序设计-嵩天老师(MOOC)听课笔记 第1周
实例
题目描述:根据半径计算圆面积(文件式)
r=25
area=3.1415*r*r
print(area)
print("{:.2f}".format(area))
题目描述:绘制多个同切圆(文件式)
import turtle
turtle.pensize(2)
turtle.circle(10)
turtle.circle(40)
turtle.circle(80)
turtle.circle(160)
题目描述:绘制一个五角星(文件式)
from turtle import *
color('red','red')
begin_fill()
for i in range(5):
fd(200)
rt(144)
end_fill()
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=1.8*eval(TempStr[0:-1])+32
print("转换后的温度是{:.2f}F".format(F))
else:
print("输入格式错误")
知识点
1.缩进:表达程序的格式框架. 2.注释:不被程序执行的辅助性说明信息. 3.变量:用来保存和表示数据的占位符号. 4.命名:关联标识符的过程(首字符不能是数字). 5.保留字:被编程语言内部定义并保留使用的标识符. 要求掌握的: and as break continue def del elif else except finally for from False global if import in lambda not None or pass return try true while 6.数据类型:
整数类型:10011101
字符串类型:"10,011,101"
列表类型:[10,011,101]
7.字符串的序号 正向递增序号 和 反向递减序号 8.字符串的使用
使用[]获取字符串中一个或多个字符
索引:返回字符串中单个字符 <字符串>[M]
"请输入带有符号的温度值:"[0] 或者 TempStr[-1]
切片:返回字符串中一段字符子串 <字符串>[M:N]
"请输入带有符号的温度值:"[1:3] 或者 TempStr[0:-1]
9.数字类型 整数和浮点数都是数字类型
整数:数学中的整数
32 或者 -89
浮点数:数学中的实数,带有小数部分
10.列表类型 由0个或多个数据组成的有序序列
列表使用[]表示,采用逗号(,)分隔各元素
['F','f']表示两个元素'F'和'f'
使用保留字in判断一个元素是否在列表中
TempStr[-1] in ['C','c']判断前者是否与列表中某个元素相同
11.分支语句 由判断条件决定程序运行方向的语句
使用保留字if elif else 构成条件判断的分支结构
if TempStr[-1] in ['F','f']:
每个保留字所在行最后存在一个冒号(:),语法的一部分
冒号及后续缩进用来表示后续语句与条件的所属关系
12.函数 根据输入参数产生不同输出的功能过程
类似数学中的函数,y=f(x)
print("输入格式错误")
函数采用<函数名>(<参数>)方式使用
eval(TempStr[0:-1])
13.输入函数input() 从控制台获得用户输入的函数
input()函数的使用格式:
<变量>=input(<提示信息字符串>)
用户输入的信息以字符串类型保存在<变量>中
TempStr=input("请输入")
14.输出函数print() 以字符形式向控制台输出结果的函数
print()函数的格式化:
print("转换后的温度是{:.2f}C".format(C))
15.评估函数eval() 去掉参数最外侧引号并执行余下语句的函数
eval()函数的基本使用格式:
eval(<字符串或字符串变量>)
>>>eval("1")
1
>>>eval("1+2")
3
>>>eval('"1+2"')
'1+2'
>>>eval('print("Hello")')
Hello
eval(TempStr[0:-1])
如果TempStr[0:-1]值是"12.3",输出是:
12.3
课后练习题
实例一 温度转换
题目要求:编写程序将用户输入华氏度转换为摄氏度,或将输入的摄氏度转换为华氏度。????????????????????????????????????????????????????????????????????????????????????????????????转换算法如下:(C表示摄氏度、F表示华氏度) C=(F-32)/1.8 F=C*1.8+32???????????????????????????????????????????????????????????????????????????????????????????????? ?????????????????????????????????????????????????????????????????????????????????????要求如下:???????????????????????????????????????????????????????????????????????????????????????????????? (1) 输入输出的摄氏度可采用大小写字母C结尾,温度可以是整数或小数,如:12.34C指摄氏度12.34度;???????????????????????????????????????????????????????????????????????????????????????????????? (2) 输入输出的华氏度可采用大小写字母F结尾,温度可以是整数或小数,如:87.65F指华氏度87.65度;???????????????????????????????????????????????????????????????????????????????????????????????? (3) 输出保留小数点后两位,输入格式错误时,输出提示:输入格式错误;???????????????????????????????????????????????????????????????????????????????????????????????? (4) 使用input()获得测试用例输入时,不要增加提示字符串。???????????????????????????????????????????????????????????????????????????????????????????????? 输入示例:????????????????????????????????????????????????????????????????????????????????????????????????12.34C 输出示例:54.21F
a=input()
if a[-1] in ['C','c']:
b=eval(a[0:-1])*1.8+32
print("{:.2f}F".format(b))
elif a[-1] in ['F','f']:
b=(eval(a[0:-1])-32)/1.8
print("{:.2f}C".format(b))
else:
print("输入格式错误")
实例二 输出Hello World
题目要求:注意大小写
print("Hello World")
实例三 数字形式转换
题目要求:获得用户输入的一个正整数输入,输出该数字对应的中文字符表示。???????????????????????????????????????????????????????????????????????????????????????????????? 0到9对应的中文字符分别是:零一二三四五六七八九 输入示例1?????????????????????????????????????????????????????????????????????????????????????????? 123 输出示例1???????????????????????????????????????????????????????????????????????????????????????????????? 一二三
a="零一二三四五六七八九"
s=input()
for c in s:
print(a[eval(c)],end="")
实例四 温度转换 2
题目要求:编写程序将用户输入华氏度转换为摄氏度,或将输入的摄氏度转换为华氏度。????????????????????????????????????????????????????????????????????????????????????????????????转换算法如下:(C表示摄氏度、F表示华氏度) C=(F-32)/1.8 F=C*1.8+32???????????????????????????????????????????????????????????????????????????????????????????????? ?????????????????????????????????????????????????????????????????????????????????????要求如下:???????????????????????????????????????????????????????????????????????????????????????????????? (1) 输入输出的摄氏度可采用大小写字母C开头,温度可以是整数或小数,如:12.34C指摄氏度12.34度;???????????????????????????????????????????????????????????????????????????????????????????????? (2) 输入输出的华氏度可采用大小写字母F开头,温度可以是整数或小数,如:87.65F指华氏度87.65度;???????????????????????????????????????????????????????????????????????????????????????????????? (3) 不考虑异常输入的问题,输出保留小数点后两位; (4) 使用input()获得测试用例输入时,不要增加提示字符串。???????????????????????????????????????????????????????????????????????????????????????????????? 输入示例:????????????????????????????????????????????????????????????????????????????????????????????????C12.34 输出示例:F54.21
代码如下:
a=input()
if a[0] in ["F"]:
b=(eval(a[1:])-32)/1.8
print("C{:.2f}".format(b))
elif a[0] in ["C"]:
b=eval(a[1:])*1.8+32
print("F{:.2f}".format(b))
else:
print()
实例五 货币转换
题目要求:人民币和美元间汇率固定为:1美元 = 6.78人民币。???????????????????????????????????????????????????????????????????????????????????????????????? 程序可以接受人民币或美元输入,转换为美元或人民币输出。人民币采用RMB表示,美元USD表示,符号和数值之间没有空格。 注意:???????????????????????????????????????????????????????????????????????????????????????????????? (1) 这是一个OJ题目,获得输入请使用input() ;???????????????????????????????????????????????????????????????????????????????????????????????? (2) 不提示输出格式错误,结果小数点后保留两位。 输入示例1???????????????????????????????????????????????????????????????????????????????????????????????? RMB123 输出示例1???????????????????????????????????????????????????????????????????????????????????????????????? USD18.14
a=input()
if a[0:3] in ['RMB']:
b=eval(a[3:])/6.78
print("USD{:.2f}".format(b))
elif a[0:3] in ['USD']:
b=eval(a[3:])*6.78
print("RMB{:.2f}".format(b))
else:
print()
第一周测验的错题
单项选择题
Guido van Rossum正式对外发布Python版本的年份是:(1991年) 不属于Python保留字的是:(type不是Python保留字,而是内置函数type())
程序设计题
题目:数值运算 题目描述:获得用户输入的一个字符串,格式如下:????????????????????????????????????????????????????????????????????????????????????????????????M OP N???????????????????????????????????????????????????????????????????????????????????????????????? 其中,M和N是任何数字,OP代表一种操作,表示为如下四种:+, -, *, /(加减乘除)???????????????????????????????????????????????????????????????????????????????????????????????? 根据OP,输出M OP N的运算结果,统一保存小数点后2位。???????????????????????????????????????????????????????????????????????????????????????????????? 注意:M和OP、OP和N之间可以存在多个空格,不考虑输入错误情况。
s = input()
print("{:.2f}".format(eval(s)))
|