Python入门 | 三个if语句程序作业和基础语法笔记
作业:
超市折扣计算程序
题目:编写程序,实现 “超市折扣计算” 功能:
输入商品总价(total_price)和会员等级(vip_level,0 = 非会员,1 = 普通会员,2 = 高级会员)
折扣规则:
非会员(0):
无基础折扣
若总价≥500 元,额外 9.5 折
普通会员(1):
基础 9.5 折
若总价≥1000 元,额外 9 折
高级会员(2):
基础 9 折
若总价≥800 元,额外 8.5 折
所有情况:总价 < 0 时提示 "输入错误,总价不能为负数"
输出最终应付金额(保留 2 位小数)
这个程序根据商品总价和会员等级计算最终应付金额。
Python源代码
# 输入商品总价和会员等级
total_price = float(input("请输入商品总价:"))
vip_level = int(input("请输入会员等级(0=非会员,1=普通会员,2=高级会员):"))
# 检查总价是否为负数
if total_price < 0:
print("输入错误,总价不能为负数")
else:
# 计算折扣
if vip_level == 0: # 非会员
if total_price >= 500:
discount = 0.95
else:
discount = 1.0
elif vip_level == 1: # 普通会员
if total_price >= 1000:
discount = 0.95 * 0.9
else:
discount = 0.95
elif vip_level == 2: # 高级会员
if total_price >= 800:
discount = 0.9 * 0.85
else:
discount = 0.9
else:
print("会员等级输入错误")
discount = 1.0
# 计算最终价格
final_price = total_price * discount
print("最终应付金额:%.2f元" % final_price)
说明:
- 使用嵌套if语句处理不同会员等级和不同价格区间的折扣
- 先检查输入的有效性(总价不能为负数)
- 使用%.2f格式化输出保留两位小数
ATM机模拟程序
题目:2、设计一个简单的 ATM 机模拟程序,实现以下功能:
初始界面显示密码输入框(预设正确密码为 123456)
密码输入错误 → 提示 “密码错误,退出程序”
密码输入正确 → 进入主菜单
主菜单提供 4 个选项: 1. 查询余额 2. 存款 3. 取款 4. 退出
各功能规则:
查询余额:显示当前余额(初始余额为 1000 元)
存款:输入存款金额(必须为正数),若金额合法则更新余额并显示;否则提示“存款金额无效”
取款:输入取款金额(必须为正数且不超过当前余额),若金额合法则更新余额并显示;否则提示 “取款金额无效” 或 “余额不足”
退出:显示 “感谢使用,再见!” 并结束程序
这个程序模拟简单的ATM机功能,包括查询余额、存款和取款。
Python源代码
# 预设密码和初始余额
correct_password = "123456"
balance = 1000.0
# 输入密码
password = input("请输入密码:")
# 检查密码
if password != correct_password:
print("密码错误,退出程序")
else:
# 密码正确,显示菜单
print("1. 查询余额")
print("2. 存款")
print("3. 取款")
print("4. 退出")
# 选择操作
choice = input("请选择操作(1-4):")
if choice == '1':
print("当前余额:%.2f元" % balance)
elif choice == '2':
amount = float(input("请输入存款金额:"))
if amount > 0:
balance += amount
print("存款成功!当前余额:%.2f元" % balance)
else:
print("存款金额无效")
elif choice == '3':
amount = float(input("请输入取款金额:"))
if amount <= 0:
print("取款金额无效")
elif amount > balance:
print("余额不足")
else:
balance -= amount
print("取款成功!当前余额:%.2f元" % balance)
elif choice == '4':
print("感谢使用,再见!")
else:
print("输入无效")
程序说明:
- 使用if-elif-else结构处理不同的用户选择
- 对存款和取款操作进行输入验证
- 演示了基本的账户余额管理逻辑
三角形判断程序
题目: 编写一个程序,输入三角形的三条边长,判断:
1. 是否能构成三角形(任意两边之和大于第三边)
2. 如果能构成三角形,进一步判断是等边、等腰还是一般三角形
这个程序根据三条边长判断是否能构成三角形,以及三角形的类型。
Python源代码
# 输入三条边长
a = float(input("请输入第一条边长:"))
b = float(input("请输入第二条边长:"))
c = float(input("请输入第三条边长:"))
# 检查是否能构成三角形
if a + b > c and a + c > b and b + c > a:
# 能构成三角形
if a == b and b == c:
print("能构成等边三角形")
elif a == b or a == c or b == c:
print("能构成等腰三角形")
else:
print("能构成一般三角形")
else:
print("不能构成三角形")
程序说明:
- 使用三角形的基本判定条件:任意两边之和大于第三边
- 使用嵌套if语句进一步判断三角形类型
- 演示了多个条件的组合判断
通过这些程序,可以学习到以下Python基础知识:
- 基本输入输出:使用input()获取用户输入,print()输出结果
- 条件判断:if、elif、else语句的使用
- 数据类型转换:float()和int()函数的使用
- 比较运算符:>、<、>=、<=、==、!=的使用
- 逻辑运算符:and、or的使用
- 格式化输出:使用%.2f控制小数位数
笔记:
1. Python简介
- Python是一种高级、解释型编程语言,以简洁易读的语法著称。
- 特点:跨平台、开源、支持面向对象编程。
2. 注释
- 用于解释代码,不会被程序执行。
- 单行注释:以 # 开头。
- 多行注释:用三引号 '''注释内容''' 或 """注释内容"""。
python
# 这是单行注释
'''
这是
多行注释
'''
3. 变量
什么是变量?
- 变量是存储数据的容器,可以通过变量名访问或修改数据。
- 变量名不需要声明类型,直接赋值即可创建。
变量命名规则:
- 由字母、数字、下划线组成,不能以数字开头。
- 不能使用Python关键字(如 if, else, for 等)。
- 区分大小写(如 name 和 Name 是不同的变量)。
python
name = "Alice" # 字符串变量
age = 20 # 整数变量
height = 1.65 # 浮点数变量
4. 数据类型
Python常见数据类型:
类型 | 示例 | 说明 |
整型(int) | 10, -5 | 整数 |
浮点型(float) | 3.14, -0.5 | 小数 |
字符串(str) | "hello" | 文本,用单/双引号包裹 |
布尔型(bool) | True, False | 逻辑值,只有两个值 |
列表(list) | [1, 2, 3] | 有序、可修改的集合 |
元组(tuple) | (1, 2, 3) | 有序、不可修改的集合 |
字典(dict) | {"name": "Alice"} | 键值对集合 |
5. 运算符
(1) 算术运算符
运算符 | 描述 | 示例 |
+ | 加 | 3 + 2 → 5 |
- | 减 | 5 - 1 → 4 |
* | 乘 | 2 * 3 → 6 |
/ | 除 | 10 / 2 → 5 |
% | 取余 | 10 % 3 → 1 |
** | 幂 | 2 ** 3 → 8 |
// | 整除 | 10 // 3 → 3 |
(2) 比较运算符
返回布尔值(True 或 False):
运算符 | 描述 | 示例 |
== | 等于 | 3 == 3 → True |
!= | 不等于 | 3 != 2 → True |
> | 大于 | 5 > 3 → True |
< | 小于 | 2 < 1 → False |
>= | 大于等于 | 5 >= 5 → True |
<= | 小于等于 | 4 <= 3 → False |
(3) 逻辑运算符
用于组合多个条件:
运算符 | 描述 | 示例 |
and | 与(两个条件都为True才返回True) | True and False → False |
or | 或(至少一个为True就返回True) | True or False → True |
not | 非(取反) | not True → False |
(4) 成员运算符
检查某个值是否在序列中:
运算符 | 描述 | 示例 |
in | 如果在序列中返回True | "a" in ["a", "b"] → True |
not in | 如果不在序列中返回True | 3 not in [1,2] → True |
(5) 位运算符
二进制与十进制转换
- 十进制转二进制:除2取余,倒序排列
- 例如:5的二进制表示:101
- 二进制转十进制:按权展开相加
- 例如:101(二进制) = 1×2² + 0×2¹ + 1×2⁰ = 5(十进制)
原码、反码和补码
- 原码:最高位表示符号位(0正1负),其余位表示数值的绝对值
- 例如:+5的原码是 00000101,-5的原码是 10000101
- 反码:
- 正数的反码与原码相同
- 负数的反码是符号位不变,其余位取反
- 例如:-5的反码是 11111010
- 补码:
- 正数的补码与原码相同
- 负数的补码是其反码加1
- 例如:-5的补码是 11111011
位运算符详细说明
运算符 | 描述 | 示例(5和3的二进制分别为101和011) | 结果(二进制) | 结果(十进制) |
& | 按位与:两位都为1时结果为1 | 5 & 3 (101 & 011) | 001 | 1 |
| | 按位或:两位有一位为1时结果为1 | 5 | 3 (101 | 011) | 111 | 7 |
^ | 按位异或:两位不同时结果为1 | 5 ^ 3 (101 ^ 011) | 110 | 6 |
~ | 按位取反:所有位取反 | ~5 (~00000101) | 11111010 | -6 |
<< | 左移:所有位向左移动,右侧补0 | 5 << 1 (101左移1位) | 1010 | 10 |
>> | 右移:所有位向右移动,左侧补符号位 | 5 >> 1 (101右移1位) | 010 | 2 |
6. 选择结构
(1) if 语句
python
if 条件:
# 条件为True时执行的代码
(2) if-else 语句
python
if 条件:
# 条件为True时执行
else:
# 条件为False时执行
(3) if-elif-else 语句
python
if 条件1:
# 条件1为True时执行
elif 条件2:
# 条件2为True时执行
else:
# 以上条件都不满足时执行
示例代码:
python
# 简单if语句
age = 18
if age >= 18:
print("你已经成年了")
# if-else语句
if age >= 18:
print("你已经成年了")
else:
print("你还未成年")
# 多条件判断
score = 85
if score >= 90:
print("优秀")
elif score >= 70:
print("良好")
else:
print("需要努力")
# 嵌套if语句
num = 15
if num > 0:
if num % 2 == 0:
print("正偶数")
else:
print("正奇数")
else:
print("非正数")
7. 注意事项
- 缩进:Python用缩进(通常4个空格)表示代码块,缩进错误会导致程序出错。
- 冒号:每个条件判断后要加冒号 :。
- 变量类型转换:可以使用 int(), float(), str() 等函数转换类型。
- 输入函数:使用 input() 获取用户输入,返回的是字符串类型。
python
# 类型转换示例
num_str = "10"
num_int = int(num_str) # 字符串转整数
# 输入处理
age_input = input("请输入你的年龄: ")
age = int(age_input) # 将输入的字符串转换为整数
8. 总结
- 变量是存储数据的基本单位,命名需遵循规则。
- 常见数据类型包括整型、浮点型、字符串、布尔型等。
- 运算符包括算术、比较、逻辑、成员和位运算符。
- 选择结构(if/elif/else)用于根据条件执行不同的代码块。
- 注意Python的缩进规则和语法细节。