Python入门 | 三个if语句程序作业和基础语法笔记

简介: 本作业包含三个Python编程实践:超市折扣计算(按会员等级与金额阶梯打折)、ATM机模拟(密码验证、存取款及余额管理)、三角形判断(边长验证与类型识别)。涵盖输入输出、条件分支、数据类型转换及格式化输出等核心语法,适合初学者巩固基础编程逻辑。(239字)

作业:

  1. 超市折扣计算程序

题目:编写程序,实现 “超市折扣计算” 功能:

输入商品总价(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格式化输出保留两位小数
  1. 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. 三角形判断程序

题目: 编写一个程序,输入三角形的三条边长,判断:

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基础知识:

  1. 基本输入输出:使用input()获取用户输入,print()输出结果
  2. 条件判断:if、elif、else语句的使用
  3. 数据类型转换:float()和int()函数的使用
  4. 比较运算符:>、<、>=、<=、==、!=的使用
  5. 逻辑运算符:and、or的使用
  6. 格式化输出:使用%.2f控制小数位数

笔记:

1. Python简介

  • Python是一种高级、解释型编程语言,以简洁易读的语法著称。
  • 特点:跨平台、开源、支持面向对象编程。

2. 注释

  • 用于解释代码,不会被程序执行。
  • 单行注释:以 # 开头。
  • 多行注释:用三引号 '''注释内容''' 或 """注释内容"""。

python

# 这是单行注释

'''

这是

多行注释

'''

3. 变量

什么是变量?

  • 变量是存储数据的容器,可以通过变量名访问或修改数据。
  • 变量名不需要声明类型,直接赋值即可创建。

变量命名规则:

  1. 由字母、数字、下划线组成,不能以数字开头。
  2. 不能使用Python关键字(如 if, else, for 等)。
  3. 区分大小写(如 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(十进制)

原码、反码和补码

  1. 原码:最高位表示符号位(0正1负),其余位表示数值的绝对值
    • 例如:+5的原码是 00000101,-5的原码是 10000101
  2. 反码:
    • 正数的反码与原码相同
    • 负数的反码是符号位不变,其余位取反
    • 例如:-5的反码是 11111010
  3. 补码:
    • 正数的补码与原码相同
    • 负数的补码是其反码加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. 注意事项

  1. 缩进:Python用缩进(通常4个空格)表示代码块,缩进错误会导致程序出错。
  2. 冒号:每个条件判断后要加冒号 :。
  3. 变量类型转换:可以使用 int(), float(), str() 等函数转换类型。
  4. 输入函数:使用 input() 获取用户输入,返回的是字符串类型。

python

# 类型转换示例

num_str = "10"

num_int = int(num_str) # 字符串转整数

# 输入处理

age_input = input("请输入你的年龄: ")

age = int(age_input) # 将输入的字符串转换为整数

8. 总结

  • 变量是存储数据的基本单位,命名需遵循规则。
  • 常见数据类型包括整型、浮点型、字符串、布尔型等。
  • 运算符包括算术、比较、逻辑、成员和位运算符。
  • 选择结构(if/elif/else)用于根据条件执行不同的代码块。
  • 注意Python的缩进规则和语法细节。
相关文章
|
22天前
|
安全 Shell API
Claude Code 命令速查手册:高频指令、快捷键与高效工作流全整理
《Claude Code命令速查手册》精简版,涵盖高频启动(`claude`、`-p`、`--resume`)、上下文引用(`@文件`/`@URL`/`!命令`)、会话管理(`/clear`/`/compact`/`/cost`)、快捷键(`Ctrl+C`中断、`Ctrl+R`查历史)及Git集成等核心功能,助开发者高效编码。
170 0
|
8天前
|
SQL 安全 JavaScript
Web 安全三大漏洞靶场作业全整理:PHP 核心函数与防御方案汇总
本文系统梳理SQL注入、XSS与文件上传三大Web漏洞的靶场实践,涵盖30+关卡中涉及的PHP核心函数(如`mysql_query`、`htmlspecialchars`、`$_FILES`等)、各类注入原理及绕过手法(宽字节、二次注入、DOM型XSS、条件竞争等),并给出预处理语句、白名单校验、二次渲染等纵深防御方案。(239字)
114 2
|
22天前
|
人工智能 自然语言处理 数据可视化
Prompt Flow工作流解析:基于Prompt Flow告别零散Prompt,标准化开发LLM应用24.5
Prompt Flow是面向企业级大模型应用的工程化开发框架,支持低代码流程编排、可视化全链路调试与标准化部署。它将复杂AI任务拆解为上下文加载、模型调用、结果汇总等可复用节点,解决传统Prompt效果随机、难追溯、不可迭代等痛点,显著提升开发效率与落地可靠性。
|
20天前
|
存储 Kubernetes Docker
01| 裸机部署 K8S:从零搭建生产可用集群
本文系统介绍Kubernetes(K8s)核心概念与实战部署:涵盖应用部署演进、容器编排原理、架构设计(Master/Node、Pod、Service等)、分层模型,并详解基于kubeadm的集群搭建全流程——含环境准备、Harbor私有仓库构建、cri-docker配置、镜像预拉取、初始化及Flannel网络插件安装,助力快速落地生产级K8s集群。(239字)
220 0
|
21天前
|
人工智能 自然语言处理 文字识别
盘点阿里云自研模型|Qwen、通义万相、HappyHorse 等AI模型清单
阿里云自研AI模型涵盖文本、图像、视频、语音及全模态,以通义千问Qwen系列为核心,包括Qwen3.8-Max、Qwen-VL-Plus、通义万相、CosyVoice等数十款专业模型,统一通过百炼平台提供API服务。(239字)
257 1
|
21天前
|
人工智能 自然语言处理 前端开发
Qoder实测:体验感拉满,用了两天,回不去了~Qwen3.8-Flash限时免费中...
阿里云Qoder是智能体自主开发工作台,支持一句话生成可运行小游戏(如贪吃蛇),集成Qwen3.8-Max/Flash等大模型,新用户享限时免费额度。项目管理、代码改动、实时消耗全程可视,一键部署为可分享链接,零依赖、开箱即用。(239字)
185 0
|
6天前
|
人工智能 缓存 测试技术
阿里云Qwen3.8-Omni-Flash大模型介绍:模型能力、功能、适用场景、收费标准与便宜购买技巧
能听会看、还能说话?qwen3-omni-flash 是阿里云百炼的多模态选手:采用 Thinker-Talker MoE 架构,支持文本、图像、音频、视频输入及文本、语音输出,覆盖 119 种语言文本、20 种语音交互,最大上下文 65,536 Tokens(输入 49,152/输出 16,384)。支持 Function Calling,结构化输出、联网搜索、缓存与批量推理均不支持,输入限文本加单一模态,音视频≤150 秒。价格上,文本输入 1.8 元/百万 Tokens,纯文本输出 6.9 元,语音回复 62.6 元,以控制台为准。
|
10天前
|
Web App开发 缓存 人工智能
github一个神级skill:把技术概念做成一台真机器或者任何的科普视频
anatomy 是一款开源AI绘图技能,不画抽象方框箭头,而是将技术概念转化为可拆解、会运动的等距机械装置(如用弹子锁喻缓存、龙门仪喻GPU上下文)。所有配图均由其生成,强调真实几何、精确建模与自动审计,让原理“一眼看懂”。
|
13天前
|
缓存 BI 测试技术
2026通义千问Qwen3.7-Max全解:Agent智能体底座,架构拆解与API实操教程
随着智能体应用快速落地,面向长周期自主任务的大模型成为开发选型的重点,新版通义千问Qwen3.7‑Max作为旗舰文本大模型,主打Agent智能体底座能力,在复杂推理、工程代码开发、超长文档处理、多轮工具调用等方面进行大规模优化,能够支撑长时间连续自动化任务。很多开发者在初次接触该模型时,容易混淆它与同系列其他版本的能力差异,不清楚MoE混合专家架构的运行逻辑,在API接入、工具调用编排时遇到参数配置、返回格式异常等问题。本文将从核心功能、底层技术架构、实操使用方法三个维度完整解析Qwen3.7‑Max,附带可直接运行的API调用代码,讲解参数配置方法,梳理开发过程中的限制条件与避坑要点,帮助开
376 2

热门文章

最新文章