← 返回 Python 7天入门专题

Day 1 · 数据基础

变量 · 数据类型 · 输入输出 · 字符串操作 | 建议时长:3-4小时
第一性原理:程序的本质是处理数据。要让程序工作,第一步是告诉它"数据是什么"和"数据叫什么"。变量就是给数据贴名字标签,数据类型就是数据的"种类"——数字归数字,文字归文字,对错归对错。

1. 变量:给数据贴标签

1.1 什么是变量?

变量 = 数据的名字。就像你给手机里联系人起名字一样,程序也需要给数据起名字,方便后续使用。

# 赋值:把数据贴上标签
name = "张三"        # name 标签贴在 "张三" 上
age = 25               # age 标签贴在 25 上
height = 1.75          # height 标签贴在 1.75 上

print(name)             # 输出: 张三
print(age)              # 输出: 25

1.2 变量的规则

规则正确示例错误示例
只能用字母、数字、下划线user_nameuser-name
不能用数字开头score22score
区分大小写Name ≠ name—
不能用Python关键字dataif, for, class
建议用英文+下划线total_price总价(可以但不推荐)

1.3 变量的核心操作

# 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的值互换
理解要点:Python中变量不是"盒子",而是"标签"。数据存在于内存中,变量只是指向这个数据的标签。这意味着同一个数据可以有多个标签。

2. 四大基本数据类型

第一性原理:数据有不同种类,不同种类的数据能做不同的事。数字能加减乘除,文字能拼接截取,对错能判断。Python有4种基本类型。
类型关键字用途示例
整数int没有小数点的数10, -5, 0, 999999
浮点数float有小数点的数3.14, -0.5, 1.0
字符串str文字/文本"hello", 'Python'
布尔值bool对/错、是/否True, False

2.1 整数 (int)

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次方)

2.2 浮点数 (float)

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()处理。

2.3 字符串 (str)

# 三种写法
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个)

f-string 格式化字符串(最常用,必须掌握)

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

2.4 布尔值 (bool)

# 只有两个值
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之间)

3. 类型转换

第一性原理:不同类型的数据不能直接混用(比如数字+字符串),需要转换成同一类型。
# 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。记住这一条,后面写条件判断时非常有用。

4. 输入与输出

第一性原理:程序需要和用户交互——获取用户输入的数据,输出处理结果。这就是I/O(Input/Output)。

4.1 输出:print()

# 基本输出
print("Hello")

# 多个值用逗号分隔,自动加空格
print("姓名:", "张三", "年龄:", 25)
# 输出: 姓名: 张三 年龄: 25

# 自定义分隔符
print("2026", "01", "15", sep="-")
# 输出: 2026-01-15

# 自定义结尾(默认换行\n)
print("loading", end="...")
print("done")
# 输出: loading...done

4.2 输入:input()

# 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() 转换。

5. 字符串常用方法

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

6. 运算符完整速查表

类别运算符示例结果
算术+5 + 38
-5 - 32
*5 * 315
/5 / 22.5
//5 // 22
%5 % 21
**2 ** 38
比较==5 == 5True
!=5 != 3True
>5 > 3True
<5 < 3False
>=5 >= 5True
<=5 <= 4False
逻辑andTrue and FalseFalse
orTrue or FalseTrue
notnot TrueFalse
赋值=x = 5x=5
+=x += 3x=x+3
-=x -= 3x=x-3
*=x *= 3x=x*3
/=x /= 3x=x/3
%=x %= 3x=x%3

7. 练习题(独立完成)

练习1:个人信息卡

用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)

练习2:温度转换器

公式:华氏度 = 摄氏度 × 9/5 + 32。输入摄氏度,输出华氏度。

参考答案
celsius = float(input("请输入摄氏温度: "))
fahrenheit = celsius * 9 / 5 + 32
print(f"{celsius}°C = {fahrenheit:.1f}°F")

练习3:简单计算器

输入两个数和一个运算符(+,-,*,/),输出计算结果。提示:用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("不支持的运算符")

练习4:字符串处理

输入一个英文句子,统计有多少个单词,输出首字母大写的版本。

参考答案
sentence = input("输入一个英文句子: ")
words = sentence.split()
print(f"单词数: {len(words)}")
print(f"首字母大写: {sentence.title()}")

练习5:BMI计算器

公式: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})")

8. Day 1 小结

今天你学会了什么