本文说明:
案例内容为北理工python语言程序设计课程,如有不妥请联系!
温度转换案例:
# 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("输入格式错误")
执行结果:
请输入带有符号的温度值:80F 转换后的温度是26.67C 进程已结束,退出代码0 —————————————————————————————— 请输入带有符号的温度值:27C 转换后的温度是80.60F 进程已结束,退出代码0
代码解析:
- 代码高亮,对代码无影响
- 代码缩进,缩进使用空格,长度一般为4个空格
- 代码第一行,为注释,一句解释性文字(#开头代表单行注释)
- 以
''' '''
开头和结尾的中间部分内容为多行注释
- 变量(TempStr、F、C),使用
=
赋值,右边内容计算结果作为左边变量的值
- 命名:大小写字母、数字、下划线、中文等字符及组合
- 注意:大小写敏感、首字符不能数字、不与保留字相同
- 保留字:编程语言内部定义并保留使用的标识符(33个)
- 以上代码(if、in、else、elif)均为保留字
- 数据类型:供计算机程序理解的数据形式
- 字符串:由一段单引号或双引号表示(“请输入带有符号的温度值:”、‘F’)均为字符串
- 字符串的序号:
正向递增序号
和反向递减序号
-12-11-10 -9 -8 -7 -6 -5 -4 -3 -2 -1 请 输 入 带 有 符 号 的 温 度 值 : 0 1 2 3 4 5 6 7 8 9 10 11
- 使用
[]
获取字符串中一个或多个字符
- 索引:返回字符串中单个字符([-1])
- 切片:返回字符串中一段字符子串([1:3]或[0:-1])
- 数字类型:整数和浮点数都是数字类型
- 整数:数学中的整数,正数和负数(32)
- 浮点数:数学中的实数,带有小数部分(1.8)
- 列表类型:由0或多个数据组成的有序序列
- 列表使用由
[]
表示,采用,
分隔([‘F’, ‘f’]) - 使用
in
判断一个元素是否在列表中 - 第四行:意为-1的字符是否是F或f,是为True,否为False
- 赋值语句:由赋值符号构成一行代码
- 用来给变量赋于新的数据值,右侧结果值赋给变量(第5、8行)
- 赋值语句右侧数据类型同时作用于变量(第2行)
语句与函数:
- 分支语句:由判断条件决定程序运行方向的语句
- 使用
if、elif、else
构成条件判断分支结构 if
后语句为Ture,执行:
后语句(第4行)
- 函数:根据输入的参数产生不同输出功能的过程(input、eval、print)
- 类似数学中函数(第11行)
- 函数采用方式使用(第五行)(
TempStr[0:-1]
为参数)
- 输入与输出:
- 输入:
input
从控制台获得用户输入的函数 - 输出:
print
以字符形式向控制台输出结果的函数
- 直接输出:
print()
(第11行) - print()的格式化:(第6行),意为C的值取小数点后两位
- evel():去掉参数最外侧引号并执行余下语句函数(第5行)
- 示例说明:
>>>eval("1") 1 >>>eval("1+2") 3 >>>eval('"1+2"') "1+2" >>>eval('print("hello")') hello
白话说明:
- 我输入了温度值为:80F
- 取字符[0:-1]为80(取值为结尾序号前一位)
- 根据公式计算:(80-32)/1.8=26.66666…
- 根据
{:.2f}C
取值为小数点后两位四舍五入后为:26.67C - 符合执行结果中第一个示例
举一反三:根据输入半径求圆周长或面积
- 输入圆的半径,求圆的面积或周长:
print("请输入结尾带有C或S的圆的半径,C代表求周长,S代表求面积") u_input = input("请输入结尾带有C或者S的数字:") if u_input[-1] in ['C', 'c']: C = (eval(u_input[0:-1]) * 2 * 3.14) print("圆的周长为:{:.2f}".format(C)) elif u_input[-1] in ['S', 's']: S = (eval(u_input[0:-1])**2 * 3.14) print("圆的面积为:{:.2f}".format(S)) else: print("您的输入格式错误,请修改!")
执行结果:
# 求面积 请输入结尾带有C或S的圆的半径,C代表求周长,S代表求面积 请输入结尾带有C或者S的数字:3s 圆的面积为:28.26 求周长 请输入结尾带有C或S的圆的半径,C代表求周长,S代表求面积 请输入结尾带有C或者S的数字:15.3C 圆的周长为:96.08