Python入门教程丨2.1 了解基本数据类型、变量、交互,写一个简单的BMI计算器!
1. 什么是变量?
顾名思义,变量就是一个可以变化的量,就像数学里的 ( x ) 是一个未知数,给定不同的 x,方程 f(x)就可以得到不同的值,在 Python 中,变量不仅可以表示数字,还可以是:数字、文字、逻辑值、列表等。
1.1 变量的命名规则
- 只能包含字母、数字和下划线,不能以数字开头。
✅ 正确:my_name
,age_2025
❌ 错误:2name
,my-var
- 避免使用保留字(如
if
,for
,print
等)。 - 尽量见名知意 让变量名反映其用途,如用
gender
表示性别。
以下是 Python 一些常见的保留字,是 Python 中定义的用来实现特殊功能的关键字,不能作为变量名使用。
保留字 | 作用 | 保留字 | 作用 | 保留字 | 作用 |
False | 表示假值 | None | 表示空值 | True | 表示真值 |
and | 逻辑与 | as | 起别名 | assert | 断言检查 |
async | 定义异步函数 | await | 暂停异步函数 | break | 跳出循环 |
class | 定义类 | continue | 继续下一轮循环 | def | 定义函数 |
del | 删除对象等 | elif | 多条件判断 | else | 条件不满足时 |
except | 捕获异常 | finally | 最后执行 | for | 循环遍历 |
from | 导入特定内容 | global | 声明全局变量 | if | 条件判断 |
import | 导入模块 | in | 成员检查或遍历 | is | 身份检查 |
lambda | 创建匿名函数 | nonlocal | 访问外层变量 | not | 逻辑非 |
or | 逻辑或 | pass | 占位语句 | raise | 抛出异常 |
return | 返回值 | try | 包裹异常代码 | while | 循环执行 |
with | 资源管理 | yield | 定义生成器 |
1.2 常量
变量是可以变化的,但有些东西需要保持固定,比如数学中的 π,也就是一个常量。
Python 中没有专门用来表示常量的关键字,不过我们一般用全大写来表示“常量”,虽然技术上仍能改,但程序员约定俗成地不去更改它。
PI = 3.14159 # 常量
1.3 全局变量
在 Python 中,全局变量是在函数外部定义的变量。只要遵循一定的规则,它可以在整个程序的任何地方被访问。其作用域是整个程序,从定义的位置开始,到程序结束。
即便函数内部没有定义变量,也可以直接访问全局变量。例如
my_ip = "127.0.0.1" # 定义一个全局变量
def function():
print(my_ip) # 在函数内部访问全局变量
function()
如果想要修改全局变量,则需要使用关键词global
,有限像 C 语言中的指针,修改某地址的值。
my_ip = "127.0.0.1" # 定义一个全局变量
def function():
global my_ip # 通过global关键字声明要修改全局变量
my_ip = "192.168.0.1" # 修改全局变量的值
print(my_ip) # 打印修改后的值,此时会输出新值 "192.168.0.1"
function()
print(my_ip) # 在函数外再次打印全局变量,也会输出 "192.168.0.1",说明全局变量确实被修改了
假如没有正确声明,则只是修改了局部变量
my_ip = "127.0.0.1" # 定义一个全局变量
def function():
my_ip = "10.0.0.1" # 这里实际是新定义了一个局部变量,和外面的全局变量不是同一个
print(my_ip) # 输出这个局部变量的值 "10.0.0.1"
function()
print(my_ip) # 输出全局变量的值,仍然是 "127.0.0.1",因为函数内部并没有修改到全局变量
这里不太懂也没关系,后面函数部分还会具体介绍📒
2. 数据类型:变量的种类
在 Python 中,每个变量都属于某种类型,常见的基本数据类型如下:
数据类型 | 描述 | 示例 |
整数(int) | 没有小数点的数字 | x = 42 |
浮点数(float) | 带小数点的数字 | y = 3.14 |
字符串(str) | 一串文字或字符,用引号括起来 | name = "Python" |
布尔值(bool) | 只有 True 或 False | is_fun = True |
列表(list) | 有序的可变元素集合 | fruits = ["apple", "banana"] |
字典(dict) | 键值对的集合,像真实字典 | info = {"name": "Tom", "age": 10} |
元组(tuple) | 有序的不可变元素集合 | coords = (10, 20) |
集合(set) | 无序、唯一的元素集合 | numbers = {1, 2, 3} |
我们先从简单的开始了解:
2.1 整数(int)
整数是没有小数点的数字,用于表示计数或序号。
x = 10 # 这是一个整数
y = -5 # 负数也是整数
z = 0 # 零也是整数
2.2 浮点数(float)
浮点数是带小数点的数字,常用于表示精确值(如测量值、货币金额)。
pi = 3.14159 # 圆周率
price = 9.15 # 商品价格
2.3 字符串(str)
字符串是由一对引号括起来的文字内容,可以是单引号 ' '
或双引号 " "
。
name = "凌小添" # 使用双引号
greeting = 'Hello!' # 使用单引号
2.4 布尔值(bool)
布尔值只有两个取值:True
和 False
,常用于逻辑判断。
is_raining = True
is_sunny = False
细心的小伙伴会发现,这里我们并没有特别的去指定变量的类别,
这是因为Python 是 动态类型语言,不需要在声明变量时指定类型,系统会根据赋值内容自动推断类型:
x = 10 # 整数
y = "Hello" # 字符串
z = 3.14 # 浮点数
假如我们使用的是 C 语言等强类型语言,则必须声明类型
#include <stdio.h>
int x = 10; // 定义整数
char y[] = "Hello"; // 定义字符数组
double z = 3.14; // 定义浮点数
从语法来说,显然 Python 更加简洁,但对于初学者来说,也必须注意对不同数据类型的操作
示例:容易犯错的情况
1)不同类型的数据相加
x = 10
x = "10"
print(x + 5) # 报错:无法将 str 和 int 相加
解决方法:将字符串类型转换为整数:
x = "10"
print(int(x) + 5) # 输出 15
2) 没有定义变量就进行操作
print(z) # 报错:变量 z 未定义
解决方法:先对 z 初始化,z = 0
3. 数据类型的常见操作
3.1 整数和浮点数的运算
Python 支持常见的数学运算:
x = 10
y = 3
# 加法
print(x + y) # 输出 13
# 减法
print(x - y) # 输出 7
# 乘法
print(x * y) # 输出 30
# 除法(结果总是浮点数)
print(x / y) # 输出 3.3333333333333335
# 取整
print(x // y) # 输出 3
# 取余数(模运算)
print(x % y) # 输出 1
# 幂运算,x的y次方
print(x ** y) # 输出 1000
3.2 字符串的常见操作
字符串可以拼接、重复和操作:
name = "凌小添"
greeting = "Hello"
# 拼接
message = greeting + ", " + name + "!"
print(message) # 输出 Hello, 凌小添!
# 字符串乘法
echo = name * 3
print(echo) # 输出 凌小添凌小添凌小添
3.3 布尔值与逻辑运算
布尔值常用于条件判断,在开发中也可以用 1
和 0
来表示真和假。
is_raining = True
is_sunny = False
# 逻辑与
print(is_raining and is_sunny) # 输出 False
# 逻辑或
print(is_raining or is_sunny) # 输出 True
# 逻辑非
print(not is_raining) # 输出 False
4. 输入和输出
在编程中,输入(Input) 和 输出(Output) 是与用户交互的关键环节。
Python 提供了简单且灵活的输入输出方法,下面我们用几个例子来说明。
例4.1 求两数之和
# 输入两个数字并计算它们的和
num1 = input("请输入第一个数字:") # 输入的内容是字符串
num2 = input("请输入第二个数字:")
# 类型转换,将字符串转换为整数
num1 = int(num1)
num2 = int(num2)
# 计算和并输出
result = num1 + num2
print(f"两个数字的和是:{result}")
print
可以实现将结果打印在窗口中
input()
可以接收用户输入,但默认输入的是字符串,需要用 int()
或 float()
转换为数字。
例4.2 单位转化
我们再来看一个例子,将丈和尺化为米。
# 输入长度(丈和尺)
zhang = float(input("请输入长度(单位:丈):"))
chi = float(input("请输入长度(单位:尺):"))
# 计算总长度(米)
total_meters = zhang * 3.333 + chi * 0.333
# 输出结果
print("\n----- 长度转换结果 -----")
print(f"{zhang:.2f} 丈 和 {chi:.2f} 尺 等于 {total_meters:.2f} 米")
注:格式化输出{miles:.2f}
表示保留两位小数。
例4.3 购物计算器
# 输入商品信息
item_name = input("请输入商品名称:")
price = float(input(f"请输入 {item_name} 的单价(元):"))
quantity = int(input(f"请输入购买的数量:"))
discount = float(input("请输入折扣(例如,九折输入0.9):"))
# 计算总价
total_price = price * quantity * discount
# 输出结果
print("\n----- 购物小票 -----")
print(f"商品名称:{item_name}")
print(f"单价:{price:.2f} 元")
print(f"数量:{quantity}")
print(f"折扣:{discount * 100:.0f}%")
print(f"总价:{total_price:.2f} 元")
print("-------------------")
5. 来写点代码试试!
本节课我们学习了 Python 中的变量、常见数据类型、类型转换、变量操作以及输入输出,下面我们通过一个小项目来复习一下,可以先动手尝试实现。
个人健康管理系统详细要求:
- 通过
input()
获取用户的基本信息,包括姓名、性别、年龄、身高(厘米)和体重(公斤)。 - 注意将用户输入的数字转换为
int
或float
类型以便后续计算。 - BMI=体重(kg)/身高(m)^2
- 身高需要从厘米转换为米,因此用
height_cm / 100
。 - 使用条件语句
if-elif-else
对 BMI 的值进行区间判断:
-
- BMI < 18.5:偏瘦
- 18.5 ≤ BMI < 24.9:正常
- 25 ≤ BMI < 29.9:超重
- BMI ≥ 30:肥胖
- 结合性别和年龄,给出更贴合个人的健康建议,例如女性需注意补钙,男性需关注心血管健康。
- 使用格式化字符串(如
f"{bmi:.2f}"
)确保输出的数据格式美观且精确。
如果你已经完成了这个例子,和下面的例子对照对照,看看结果吧~
例 5.1 通过身高体重计算 BMI 评估健康情况
# 个人健康管理系统
print("欢迎来到个人健康管理系统!💪")
# 输入个人基本信息
name = input("请输入您的名字:")
gender = input("请输入您的性别(男/女):")
age = int(input("请输入您的年龄(单位:岁):"))
height_cm = float(input("请输入您的身高(单位:厘米):"))
weight_kg = float(input("请输入您的体重(单位:公斤):"))
# 将身高从厘米转换为米
height_m = height_cm / 100
# 计算BMI
bmi = weight_kg / (height_m ** 2)
# 输出基本信息和BMI
print("\n----- 个人健康信息 -----")
print(f"姓名:{name}")
print(f"性别:{gender}")
print(f"年龄:{age} 岁")
print(f"身高:{height_cm:.1f} 厘米")
print(f"体重:{weight_kg:.1f} 公斤")
print(f"BMI 指数:{bmi:.2f}")
# 根据BMI判断健康状况
if bmi < 18.5:
bmi_status = "偏瘦"
advice = "多吃一些高蛋白和高热量食物,注意加强营养。"
elif 18.5 <= bmi < 24.9:
bmi_status = "正常"
advice = "体重正常,继续保持健康饮食和适量运动!"
elif 25 <= bmi < 29.9:
bmi_status = "超重"
advice = "体重略超标,建议减少高热量食物,增加运动。"
else:
bmi_status = "肥胖"
advice = "体重过高,请注意饮食控制,并养成锻炼习惯。"
# 根据性别和年龄补充建议
if gender == "女" and age > 50:
extra_advice = "建议注意骨密度,适当补钙。"
elif gender == "男" and age > 50:
extra_advice = "建议定期监测血压和心脏健康。"
else:
extra_advice = "保持良好的生活习惯,定期体检。"
# 输出健康评估和建议
print("\n----- 健康评估 -----")
print(f"BMI 状态:{bmi_status}")
print(f"建议:{advice}")
print(f"额外建议:{extra_advice}")
“纸上学来终觉浅,绝知此事要躬行。”
编程的核心不是听懂了多少理论,而是能不能写出代码并让它运行!
编程的实践性非常强,只有置身事内,才能真正体会编程的乐趣。
别害怕犯错,错误是最好的老师。
原文地址:https://blog.csdn.net/w646645452/article/details/145093376
免责声明:本站文章内容转载自网络资源,如侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!