第3节课 【基础语法编程练习】
程序员的自我修养
(1)遇到一个编程问题,一定要仔细阅读题目,找出关键的数据和具体的操作流程。
(2)一定要先分析题目的求解过程,千万不要直接上来写代码开干。
(3)必须写注释,将求解的过程以注释的形式先列出来。
Python当中有单行注释,主要以#
开头,直到换行为止都为注释内容
# 这是一个注释内容
num = 3 # 定义一个变量 存储 整数 3
Python中其实没有对于多行注释的定义,但是我们可以使用三引号字符串的形式充当多行注释。
也可以看做是文档说明
"""
这是一个多行注释(文档说明 代码的说明书)
定义一个变量num存储整数3
打印这个变量
"""
num = 3
print(num)
# 提取文档注释中的内容
print(__doc__)
(4)对变量、函数、类起名时,一定要有意义,最好用英文单词、英文简写来表示,实在不行就拼音
(5)编码规范
- 遇到运算符的时候,记得给运算符的两边加空格
- 在序列或者多数据情况下,会用逗号
,
进行分割,逗号后面也加空格 - 由于Python中不用
{}
表示层级,而是用缩进来表示,所以一定要注意代码的从属问题,缩进最好用tab
键去写,不要用空格
练习01 摄氏温度转化为华氏温度
题目描述
输入一个摄氏温度的值,将它转变为华氏温度,并将结果输出
转换的公式为如下:
fahrenheit=(9/5)∗celsius+32
fahrenheit=(9/5)*celsius+32
fahrenheit=(9/5)∗celsius+32
输入输出描述
输入一个值表示摄氏温度celsius
输出华氏温度fahrenheit ,结果保留一位小数点
示例
输入:
43
输出:
109.4
"""
数据:cel 摄氏度 fah 华氏度
操作:
1. 输入 cel
2. 根据提供的公式 计算 fah
3. 输出fah 保留一位小数点
"""
cel = float(input())
fah = (9 / 5) * cel + 32
print(f'{fah:.1f}')
练习02 计算圆柱体的体积
题目描述
输入圆柱的半径和高,并利用如下公式计算圆柱体的底面积和体积。
area=radius∗radius∗π
area=radius*radius*π
area=radius∗radius∗π
volume=area∗length volume=area*length volume=area∗length
输入输出描述
分别输入圆柱的半径radius和高度length,两个数据之间用空格分隔
输出两行,第一行为圆柱底面积area,第二行为圆柱体积volume,结果保留两位小数点
示例
输入:
5.5 12
输出:
95.03
1140.41
import math
# 1.输入半径和高
radius, length = map(float, input().split(" "))
# 2.计算底面积
area = math.pi * radius ** 2
# 3.计算体积
volume = area * length
# 4.输出底面积和体积
print(f'{area:.2f}')
print(f'{volume:.2f}')
练习03 对一个整数中的各位数字求和
题目描述
读取一个0到1000之间的整数,并计算它各位数字之和
输入输出描述
输入一个(0,1000)之间的整数
输出该数字的各位数字之和
示例1
输入:
999
输出:
27
解释:
999各位数之和为9 + 9 + 9 = 27
示例2
输入:
12
输出:
3
"""
123 % 10 = 3
12 % 10 = 2
1 % 10 = 1
"""
try:
# 1.输入一个[1,999]的数字
num = int(input())
except:
print("输入非法数据,必须1~999")
else:
# 2.取个位数
gewei = num % 10
# 3.取十位数
num //= 10
shiwei = num % 10
# 4.取百位数
baiwei = num // 10
# 5.相加
result = gewei + shiwei + baiwei
# 6.输出相加结果
print(result)
练习04 计算三角形的面积
题目描述
输入三角形的三个顶点坐标,并计算其面积,计算公式如下
s=(side1+side2+side3)/2area=s(s−side1)(s−side2)(s−side3)
s=(side1+side2+side3)/2 \\
area = \sqrt{s(s-side1)(s-side2)(s-side3)}
s=(side1+side2+side3)/2area=s(s−side1)(s−side2)(s−side3)
输入输出描述
输入六个数据,分别表示三角形三个顶点的坐标x1、y1、x2、y2、x3和y3,数据之间用空格分隔
输出三角形的面积,结果保留一位小数
示例
输入:
1.5 -3.4 4.6 5 9.5 -3.4
输出:
33.6
# 1.输入三个点的坐标
x1, y1, x2, y2, x3, y3 = map(float, input().split(" "))
# 2.计算三边
side1 = ((x1 - x2) ** 2 + (y1 - y2) ** 2) ** 0.5
side2 = ((x1 - x3) ** 2 + (y1 - y3) ** 2) ** 0.5
side3 = ((x3 - x2) ** 2 + (y3 - y2) ** 2) ** 0.5
# 3.计算半周长
s = (side1 + side2 + side3) / 2
# 4.计算面积
area = pow(s * (s - side1) * (s - side2) * (s - side3), 0.5)
# 5.输出面积
print(f'{area:.1f}')
练习05 显示当前时间
题目描述
输入你所在的时区,并输出当前的时间
输入输出描述
输入时区,如东八区为8,西五区为-5
输出二十四小时制的时间,格式为 时:分:秒
示例
输入:
8
输出:
21:43:12
import time
# 0.获取时区数字
zone = int(input())
# 返回的是UNIX时间点
# 从1970年1月1日 00:00:00 开始至今的秒数
# 1.获取所有的秒数
total_seconds = int(time.time())
# 2.计算当前的秒数
current_seconds = total_seconds % 60
# 3.计算所有的分钟数
total_minutes = total_seconds // 60
# 4.计算当前的分钟数
current_minutes = total_minutes % 60
# 5.计算所有的小时数
total_hours = total_minutes // 60
# 6.计算当前的小时数
current_hours = total_hours % 24
current_hours = (current_hours + zone) % 24
# 7.拼接输出 hh:mm:ss
print(f'{current_hours}:{current_minutes}:{current_seconds}')
练习06 最小数量的硬币
题目描述
假设硬币种类分为:一元硬币、两角五分硬币、一角硬币、五分硬币、一分硬币
输入总金额,并将总金额兑换成若干个硬币,并保证所兑换的硬币个数最少
输入输出描述
输入总金额
输出每种硬币的个数
示例
输入:
11.56
输出:
11个一元硬币
2个两角五分硬币
0个一角硬币
1个五分硬币
1个一分硬币
# 1.输入总金额
money = float(input())
# 2.换算成分
total_fen = int(money * 100)
# 3.计算一元硬币个数 100分
yiyuan = total_fen // 100
# 4.计算两角五分个数 25分
total_fen = total_fen % 100
liangjiaowufen = total_fen // 25
# 5.计算一角个数 10分
total_fen = total_fen % 25
yijiao = total_fen // 10
# 6.计算五分个数 5分
total_fen = total_fen % 10
wufen = total_fen // 5
# 7.计算1分个数 1分
total_fen = total_fen % 5
yifen = total_fen
# 8.输出
print(yiyuan)
print(liangjiaowufen)
print(yijiao)
print(wufen)
print(yifen)