Python语言程序设计Mooc
Week 1 程序设计基本方法
1. 命名与保留字
- 变量:用来保存和表示数据的占位符号,变量采用标识符(名字)来表示。 命名:数字字母下划线。
- “注意”:大小写敏感,数字不能放开头,不与保留字同。
- python共有33个保留字,查询方法:
import keyword
print(keyword.kwlist)
2. 数据类型
- 字符串:由0个或多个字符组成的"有序"字符序列。# 有序–>可以索引、切片
- 整数:数学中的整数
- 浮点数:数学中的实数,带有小数点部分
- 列表:由0个或多个数据组成的"有序"序列
3. 语句与函数
- 赋值语句
- 分支语句
- 函数
4. Python程序的输入输出
- input(): 控制台输入
- print():控制台输出,格式化
- 注:在控制台显示的时候,一个添加引号形成字符串,一个将字符串自动去掉引号。
- eval() :去掉参数最外侧引号并执行余下语句的函数
eval("1+2")
>>> 3
5. 温度转换代码分析
#2020/03/02
#input 输入获得用户信息
TempStr = input("请输入带有符号的温度值: ")
if TempStr[-1] in ['F','f']:
#eval():去掉参数最外侧引号并执行余下语句的函数,评估函数。
c = (eval(TempStr[0:-1])-32)/1.8
#print()函数的格式化,{}表示槽,后续变量填充到槽中
#小数点取两位,同时C的值被嵌入字符串中
print("转换后的温度是{:.2f}C".format(c))
elif TempStr[-1] in ["C",'c']:
#切片操作,下标0表示左起第一个元素, -1表示倒数最后一个元素
#[0:-1]表示第一个元素到倒数第二个元素的切片
F = 1.8*eval(TempStr[0:-1]) + 32
print("转换后的温度是{:.2f}F".format(F))
else:
print("输入格式错误")
6. 问题
写一半还把Run搞没了,全变成了Run Console,查了一下发现要 run -> edit configurations -> run with python console 取消勾选即可
7. 课后习题
7.1 数字形式转换 I
#2020/03/03
#定义一个变量来存储字符串"零一二三四五六七八九",就像是一个字典一样,有了这样的数据源最终检索时才能一一检索出来。
#像是将这些字符串临时存储在变量中,所以在这里变量命名为:template
template = "零一二三四五六七八九"
s = input()
#for循环,对c在这里的作用不是很明白
for c in s:
#print()函数里的参数是什么含义呢?template[],是对template变量的索引
#eval(c)是去掉字符串类型c即" "外侧的双引号 。
print(template[eval(c)], end="")
or
chiStr = ['零','一','二','三','四','五','六','七','八','九']
intStr = input()
for i in intStr:
b=eval(i)
print(chiStr[b],end='')
7.2 温度转换实例2
要求如下:
(1)
输入输出的摄氏度采用大写字母C开头,温度可以是整数或小数,如:C12.34指摄氏度12.34度;
(2)
输入输出的华氏度采用大写字母F开头,温度可以是整数或小数,如:F87.65指华氏度87.65度;
(3)
不考虑异常输入的问题,输出保留小数点后两位;
(4) 使用input()获得测试用例输入时,不要增加提示字符串。
#2020/03/03
TempStr = input()
#python里面的索引的特征是包含起点,但是不包含结束的索引值
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()
#unexpected EOF while parsing 意思是:这个错误是你语法有问题,EOF就是ENd of File,主要出现在语法不完整的时候
7.3 货币转换
我的代码:
money = input()
if money[0:3] in ['USD']:
usd = eval(money[3:])*6.78
print("RMB{:.2f}".format(usd))
elif money[0:3] in ['RMB']:
rmb = eval(money[3:])/6.78
print("USD{:.2f}".format(rmb))
else:
print( )
# 【参考代码】
CurStr = input()
if CurStr[:3] == "RMB":
print("USD{:.2f}".format(eval(CurStr[3:])/6.78))
elif CurStr[:3] in ['USD']:
print("RMB{:.2f}".format(eval(CurStr[3:])*6.78))
这个代码是实例1的一个扩展,注意以下3点:
(1) eval()函数将字符串转换成数字,不能省略;
(2) == 表示 “等于”,in 表示成员包含,对于这个题目,由于只允许输入采用全大写方式,两种方法均可;
(3) :.2f输出小数点后两位。