本章摘要:

  1. 核心目标:掌握程序输出、数据存储、用户交互,编写可对话的简易小程序
  2. 核心知识点:print 多参数 / end 参数、变量赋值与命名、int / float / str / bool 四大类型、type()input 输入、int() / float() / str() 类型转换
  3. 实操产出:个人信息自我介绍交互程序、简易计算器、年份算年龄工具
  4. 前置基础:第1章 Python 环境安装、VS Code 运行代码基础操作

一、写在前面

上一章我们写出了第一个 print("Hello, World!"),程序能把文字显示出来。但有个问题——内容是写死的,每次运行结果都一样。

真正的程序需要两样东西:能记住数据(变量),能接收用户输入input)。这两个能力一组合,程序就从"只会说话"升级成了"能跟你对话"。

本章带你从 print 的完整用法开始,一步步掌握变量、数据类型、用户输入,最后写出一个能跟人对话的小程序。


二、print 全套用法

print() 是 Python 中最常用的函数,上一章我们只用它输出了一句话。现在来看看它的完整能力。

2.1 输出文字和数字

# 输出文字(字符串,用引号包裹)
print("你好,世界")

# 输出数字(不需要引号)
print(42)
print(3.14)

运行结果:

你好,世界
42
3.14

注意:print("42")print(42) 输出看起来一样,但前者是文字"42",后者是数字 42。区别在后面运算时会体现出来。

2.2 一次输出多个内容

print() 可以用逗号分隔,一次输出多个内容,输出时自动用空格隔开:

name = "小明"
age = 18
print("我叫", name, "今年", age, "岁")

运行结果:

我叫 小明 今年 18 岁

2.3 end 参数:控制结尾

默认情况下,每个 print() 输出完会自动换行。用 end 参数可以改变这个行为:

# 默认换行
print("第一行")
print("第二行")

# 不换行,用空格连接
print("同一行", end=" ")
print("继续")

运行结果:

第一行
第二行
同一行 继续

2.4 f-string 格式化输出(推荐)

当要把变量和文字混合输出时,f-string 是最简洁的写法:

name = "小明"
age = 18
print(f"我叫{name},今年{age}岁")

运行结果:

我叫小明,今年18岁

f-string 的写法:字符串前面加 f,变量放在 {} 花括号里。比用逗号拼接更紧凑、更易读。这章先用起来,第8章会系统讲字符串格式化。


三、变量:给数据起名字

3.1 什么是变量

变量就是一个装数据的盒子,你给盒子起个名字,以后用这个名字就能拿到里面的数据。

# 把文字装进 name 盒子
name = "小明"

# 把数字装进 age 盒子
age = 18

# 用变量名取出数据
print(name)   # 输出:小明
print(age)    # 输出:18

在这里插入图片描述

3.2 变量重新赋值

变量的值可以随时改变:

score = 80
print(score)   # 输出:80

score = 95      # 重新赋值
print(score)   # 输出:95

score = score + 5   # 在原值基础上加 5
print(score)   # 输出:100

3.3 变量命名规范

变量名不是随便起的,有规则要遵守:

规则 说明 正确示例 错误示例
只能含字母、数字、下划线 不能有空格、特殊符号 user_name user name
不能以数字开头 数字可以在中间或末尾 age2 2age
区分大小写 Namename 是两个变量 Name / name
不能用 Python 关键字 ifforprint my_print print

命名建议(非强制,但好习惯):

  • 用有意义的名字:student_namea
  • 用小写 + 下划线:user_age 而不是 UserAge(Python 社区惯例)
  • 中文变量名虽然能用,但不推荐,兼容性差
# 推荐命名
student_name = "张三"
math_score = 95

# 不推荐命名
a = "张三"
b = 95

四、四大基础数据类型

Python 中的数据有不同类型,最基础的有四种:

4.1 整数 int

不带小数点的数字,可以是正数、负数、零。

age = 18
temperature = -5
count = 0
print(type(age))   # 输出:<class 'int'>

4.2 浮点数 float

带小数点的数字。

height = 1.75
pi = 3.14159
print(type(height))   # 输出:<class 'float'>

4.3 字符串 str

用引号(单引号或双引号)包裹的文本。

name = "小明"
message = '今天天气不错'
print(type(name))   # 输出:<class 'str'>

单引号和双引号效果一样,但要注意配对:"你好' 是错误的,引号必须成对。

4.4 布尔值 bool

只有两个值:True(真)和 False(假),首字母必须大写。

is_student = True
is_raining = False
print(type(is_student))   # 输出:<class 'bool'>

4.5 type() 查看数据类型

不确定某个变量是什么类型?用 type() 查:

x = 42
y = "hello"
z = 3.14

print(type(x))   # <class 'int'>
print(type(y))   # <class 'str'>
print(type(z))   # <class 'float'>

在这里插入图片描述


五、input 交互式输入

5.1 基本用法

input() 可以接收用户在终端输入的内容,程序会暂停等待用户输入并按下回车:

name = input("请输入你的名字:")
print("你好," + name + "!")

运行后终端显示:

请输入你的名字:小明
你好,小明!

程序运行到 input() 会停下来等你输入,输入完按回车继续。

5.2 input 的陷阱:返回值永远是字符串

这是新手最容易踩的坑:

age = input("请输入你的年龄:")
print(age + 1)    # ❌ 报错!

报错信息:TypeError: can only concatenate str (not "int") to str

原因:input() 接收到的内容永远是字符串,即使你输入的是数字 18,它的类型是 "18"(文字),不是 18(数字)。文字不能做加法运算。

5.3 类型转换

解决办法:用 int()float()str() 把数据从一种类型转成另一种。

# input 返回的是字符串 "18"
age_str = input("请输入你的年龄:")

# 用 int() 转成整数
age = int(age_str)

# 现在可以运算了
print("明年你", age + 1, "岁")

运行结果:

请输入你的年龄:18
明年你 19 岁

常用类型转换函数:

函数 作用 示例
int() 转成整数 int("18")18
float() 转成浮点数 float("3.14")3.14
str() 转成字符串 str(42)"42"

注意:int("abc") 会报错,因为 “abc” 不是合法数字。int("3.14") 也会报错,浮点数字符串需要先 float()int()

在这里插入图片描述


六、Scratch 积木对照

Scratch Python 说明
「说 Hello!」积木 print("Hello!") 输出内容到屏幕
变量积木(设置 my_var = 0) my_var = 0 创建变量并赋值
「询问你叫什么名字?并等待」 input("你叫什么名字?") 接收用户输入
「回答」积木 input 的返回值 获取用户输入的内容

scratch积木代码
在这里插入图片描述
python代码

# Scratch「说」积木 → Python
print("Hello!")

scratch积木代码
在这里插入图片描述

python代码

# Scratch 变量积木 → Python
score = 100

scratch积木代码
在这里插入图片描述

python代码

# Scratch「询问并等待」+「回答」→ Python
answer = input("你叫什么名字?")
print("你的回答是:" + answer)

Scratch 里积木直接拖就能用,Python 需要写代码;但逻辑完全对应——输出用 print,存数据用变量,接收输入用 input


七、综合实战:对话式个人信息小程序

把本章学的 print、变量、数据类型、input、类型转换全部串起来,写一个能跟用户对话的小程序:

# ========================================
# 对话式个人信息小程序
# ========================================

print("=" * 35)
print("  欢迎使用个人信息录入系统")
print("=" * 35)

# 接收用户输入
name = input("请输入你的姓名:")
age = int(input("请输入你的年龄:"))
birth_year = int(input("请输入你的出生年份:"))

# 计算信息
current_year = 2026
calculated_age = current_year - birth_year

# 输出结果
print()
print("-" * 35)
print(f"姓名:{name}")
print(f"年龄:{age} 岁")
print(f"出生年份:{birth_year} 年")
print(f"按 {birth_year} 年计算,今年应该是 {calculated_age} 岁")
print(f"你输入的年龄与计算结果{'一致' if age == calculated_age else '不一致'}")
print("-" * 35)
print("信息录入完成,谢谢使用!")

运行效果:

===================================
  欢迎使用个人信息录入系统
===================================
请输入你的姓名:小明
请输入你的年龄:18
请输入你的出生年份:2008

-----------------------------------
姓名:小明
年龄:18 岁
出生年份:2008 年
按 2008 年计算,今年应该是 18 岁
你输入的年龄与计算结果一致
-----------------------------------
信息录入完成,谢谢使用!

最后一行的 {'一致' if age == calculated_age else '不一致'} 用到了条件表达式,下一章会详细讲。这里先感受效果即可。


八、常见报错速查表

报错信息 出现场景 原因 解决方法
TypeError: can only concatenate str to str 字符串 + 数字 input 返回的是字符串,不能直接和数字运算 int()float() 转换类型
ValueError: invalid literal for int() int() 转换 试图把非数字字符串转成整数,如 int("abc") 确保输入内容是合法数字
NameError: name 'xxx' is not defined 使用变量 变量未定义就使用,或变量名拼写错误 检查变量名拼写,确认已赋值
SyntaxError: EOL while scanning string literal 字符串 引号没配对,如 print("hello) 补上缺失的引号
SyntaxError: invalid character 代码中 使用了中文标点(中文括号、中文引号等) 全部改用英文半角标点

十、本章小结

本章你掌握了 Python 编程的三个核心能力:

  1. print 输出——多参数输出、end 参数、f-string 格式化,能让程序"说话"
  2. 变量与数据类型——int / float / str / bool 四大类型,变量赋值与命名规范,type() 查看类型
  3. input 交互输入——接收用户输入、类型转换(int / float / str),让程序能"听"用户说话

这三个能力组合起来,你就能写出有输入、有处理、有输出的完整小程序了。


往期回顾:

《Python 零基础入门:从积木到代码》专栏序

零基础学 Python 第1章 | 全平台装环境 + VS Code 配置 + 第一个 Hello World


下一章预告

程序现在只能按顺序执行,但现实中有判断——“如果分数大于60就及格,否则就不及格”。下一章学习 if / elif / else 条件判断,让程序学会做选择。


文末资源区

资源 说明
Python 官方文档 - print() https://docs.python.org/3/library/functions.html#print
Python 官方文档 - input() https://docs.python.org/3/library/functions.html#input
Python 官方文档 - 类型转换 https://docs.python.org/3/library/stdtypes.html
本章完整源码 chapter2_all.py(关注梅雅达编程笔记,评论领资料)

每节课都配套课后练习题与完整源码。代码报错、看不懂知识点,可在评论区粘贴问题,逐一解答!
欢迎关注梅雅达编程笔记,持续分享Python零基础学习内容

Logo

小龙虾开发者社区是 CSDN 旗下专注 OpenClaw 生态的官方阵地,聚焦技能开发、插件实践与部署教程,为开发者提供可直接落地的方案、工具与交流平台,助力高效构建与落地 AI 应用

更多推荐