变量 = 数据的名字。就像你给手机里联系人起名字一样,程序也需要给数据起名字,方便后续使用。
# 赋值:把数据贴上标签
name = "张三" # name 标签贴在 "张三" 上
age = 25 # age 标签贴在 25 上
height = 1.75 # height 标签贴在 1.75 上
print(name) # 输出: 张三
print(age) # 输出: 25
| 规则 | 正确示例 | 错误示例 |
|---|---|---|
| 只能用字母、数字、下划线 | user_name | user-name |
| 不能用数字开头 | score2 | 2score |
| 区分大小写 | Name ≠ name | — |
| 不能用Python关键字 | data | if, for, class |
| 建议用英文+下划线 | total_price | 总价(可以但不推荐) |
# 1. 赋值
x = 10
# 2. 重新赋值(变量可以改变类型)
x = "hello" # x 从数字变成字符串,Python允许
# 3. 多重赋值
a, b, c = 1, 2, 3 # 同时给3个变量赋值
a = b = c = 0 # 3个变量都赋值为0
# 4. 交换变量(Python特色,超方便)
a, b = b, a # a和b的值互换
| 类型 | 关键字 | 用途 | 示例 |
|---|---|---|---|
| 整数 | int | 没有小数点的数 | 10, -5, 0, 999999 |
| 浮点数 | float | 有小数点的数 | 3.14, -0.5, 1.0 |
| 字符串 | str | 文字/文本 | "hello", 'Python' |
| 布尔值 | bool | 对/错、是/否 | True, False |
age = 25
year = 2026
temperature = -10
# 运算
print(10 + 3) # 加: 13
print(10 - 3) # 减: 7
print(10 * 3) # 乘: 30
print(10 / 3) # 除: 3.333... (结果总是float)
print(10 // 3) # 整除: 3 (只取整数部分)
print(10 % 3) # 取余: 1 (10除以3余1)
print(10 ** 3) # 幂: 1000 (10的3次方)
pi = 3.14159
price = 9.99
temp = -0.5
# 浮点数运算和整数一样
print(3.14 * 2) # 6.28
print(10 / 4) # 2.5
# ⚠️ 浮点数精度问题(所有语言都有)
print(0.1 + 0.2) # 0.30000000000000004 不是0.3!
# 解决方法:用round()四舍五入
print(round(0.1 + 0.2, 2)) # 0.3
0.1 + 0.2 ≠ 0.3 是计算机浮点数的固有问题,不是Python的bug。涉及金额计算时一定要用round()处理。
# 三种写法
s1 = "双引号"
s2 = '单引号'
s3 = """三引号可以
跨多行"""
# 字符串拼接
greeting = "你好" + "," + "Python"
print(greeting) # 你好,Python
# 字符串重复
print("ha" * 3) # hahaha
# 字符串长度
print(len("Python")) # 6
# 字符串索引(从0开始!)
s = "Python"
print(s[0]) # P (第0个字符)
print(s[-1]) # n (倒数第1个)
print(s[0:3]) # Pyt (切片:第0到第2个)
name = "张三"
age = 25
score = 95.5
# 在字符串中嵌入变量:f"...{变量}..."
print(f"我叫{name},今年{age}岁")
# 输出: 我叫张三,今年25岁
# 格式化数字
print(f"成绩:{score:.1f}分") # 成绩:95.5分(保留1位小数)
print(f"百分比:{score:.0%}") # 百分比:9550%(乘100加%)
print(f"{'居中':^20}") # 居中,宽度20
# 只有两个值
is_true = True
is_false = False
# 比较运算产生布尔值
print(5 > 3) # True
print(5 < 3) # False
print(5 == 5) # True (== 是相等判断)
print(5 != 3) # True (!= 是不等判断)
print(5 >= 5) # True (大于等于)
print(5 <= 4) # False (小于等于)
# 逻辑运算
print(True and False) # False (两个都True才是True)
print(True or False) # True (有一个True就是True)
print(not True) # False (取反)
# 实际用法
age = 20
print(age >= 18 and age <= 60) # True (年龄在18-60之间)
# int() — 转成整数
print(int("123")) # 123 (字符串→整数)
print(int(3.9)) # 3 (浮点→整数,直接截断不四舍五入)
print(int(True)) # 1 (True=1, False=0)
# float() — 转成浮点数
print(float("3.14")) # 3.14
print(float(5)) # 5.0
# str() — 转成字符串
print(str(123)) # "123"
print(str(3.14)) # "3.14"
# bool() — 转成布尔值
print(bool(0)) # False (0是False)
print(bool("")) # False (空字符串是False)
print(bool("hello")) # True (非空字符串是True)
print(bool(1)) # True (非0数字是True)
False:数字0、空字符串""、空列表[]、空字典{}、None。True。记住这一条,后面写条件判断时非常有用。
# 基本输出
print("Hello")
# 多个值用逗号分隔,自动加空格
print("姓名:", "张三", "年龄:", 25)
# 输出: 姓名: 张三 年龄: 25
# 自定义分隔符
print("2026", "01", "15", sep="-")
# 输出: 2026-01-15
# 自定义结尾(默认换行\n)
print("loading", end="...")
print("done")
# 输出: loading...done
# input() 返回的永远是字符串!
name = input("请输入你的名字: ")
print(f"你好,{name}!")
# ⚠️ 获取数字必须转换类型
age_str = input("请输入年龄: ")
age = int(age_str) # 字符串 → 整数
print(f"明年你{age + 1}岁")
# 一行简写
age = int(input("年龄: "))
height = float(input("身高(m): "))
input()返回的是字符串,直接做数学运算会报错或得到错误结果。"10" + "20" 得到 "1020"(字符串拼接),不是 30。必须先 int() 转换。
s = " Hello, Python World "
# 去除空白
print(s.strip()) # "Hello, Python World" (去两端空格)
print(s.lstrip()) # 去左端空格
print(s.rstrip()) # 去右端空格
# 大小写转换
print(s.upper()) # " HELLO, PYTHON WORLD "
print(s.lower()) # " hello, python world "
print(s.title()) # " Hello, Python World "
print(s.capitalize()) # " Hello, python world "
# 查找与替换
print(s.find("Python")) # 9 (返回索引,找不到返回-1)
print(s.replace("Python", "Java")) # 替换
# 分割与拼接
print(s.split(",")) # [' Hello', ' Python World ']
print("-".join(["a", "b", "c"])) # "a-b-c"
# 判断
print("123".isdigit()) # True (是否全是数字)
print("abc".isalpha()) # True (是否全是字母)
print("Hello".startswith("He")) # True
print("Hello".endswith("lo")) # True
| 类别 | 运算符 | 示例 | 结果 |
|---|---|---|---|
| 算术 | + | 5 + 3 | 8 |
| - | 5 - 3 | 2 | |
| * | 5 * 3 | 15 | |
| / | 5 / 2 | 2.5 | |
| // | 5 // 2 | 2 | |
| % | 5 % 2 | 1 | |
| ** | 2 ** 3 | 8 | |
| 比较 | == | 5 == 5 | True |
| != | 5 != 3 | True | |
| > | 5 > 3 | True | |
| < | 5 < 3 | False | |
| >= | 5 >= 5 | True | |
| <= | 5 <= 4 | False | |
| 逻辑 | and | True and False | False |
| or | True or False | True | |
| not | not True | False | |
| 赋值 | = | x = 5 | x=5 |
| += | x += 3 | x=x+3 | |
| -= | x -= 3 | x=x-3 | |
| *= | x *= 3 | x=x*3 | |
| /= | x /= 3 | x=x/3 | |
| %= | x %= 3 | x=x%3 |
用input()获取用户姓名、年龄、身高,用f-string格式化输出一张信息卡。
name = input("姓名: ")
age = int(input("年龄: "))
height = float(input("身高(m): "))
print("=" * 30)
print(f" 姓名: {name}")
print(f" 年龄: {age}岁")
print(f" 身高: {height:.2f}m")
print("=" * 30)
公式:华氏度 = 摄氏度 × 9/5 + 32。输入摄氏度,输出华氏度。
celsius = float(input("请输入摄氏温度: "))
fahrenheit = celsius * 9 / 5 + 32
print(f"{celsius}°C = {fahrenheit:.1f}°F")
输入两个数和一个运算符(+,-,*,/),输出计算结果。提示:用input()获取运算符。
a = float(input("第一个数: "))
op = input("运算符(+,-,*,/): ")
b = float(input("第二个数: "))
if op == "+":
print(f"{a} + {b} = {a + b}")
elif op == "-":
print(f"{a} - {b} = {a - b}")
elif op == "*":
print(f"{a} * {b} = {a * b}")
elif op == "/":
print(f"{a} / {b} = {a / b}")
else:
print("不支持的运算符")
输入一个英文句子,统计有多少个单词,输出首字母大写的版本。
sentence = input("输入一个英文句子: ")
words = sentence.split()
print(f"单词数: {len(words)}")
print(f"首字母大写: {sentence.title()}")
公式:BMI = 体重(kg) / 身高²(m²)。输入身高体重,输出BMI值和分类(<18.5偏瘦, 18.5-24正常, 24-28偏胖, >28肥胖)。
weight = float(input("体重(kg): "))
height = float(input("身高(m): "))
bmi = weight / (height ** 2)
if bmi < 18.5:
category = "偏瘦"
elif bmi < 24:
category = "正常"
elif bmi < 28:
category = "偏胖"
else:
category = "肥胖"
print(f"BMI: {bmi:.1f} ({category})")