编程其实就做两件事

说实话,编程没那么复杂,归根结底就两件事:

  1. 存数据(用变量)
  2. 操作数据(用各种运算)

今天我们先把第一件事搞定:怎么存数据。

什么是变量?

变量就是一个装东西的盒子。

你可以把它想象成一个标签,贴在某个数据上,方便你后面找到它。

name = "小明"
age = 25
height = 1.75

这三个变量就像三个盒子:

  • name这个盒子里装了字符串"小明"
  • age这个盒子里装了整数25
  • height这个盒子里装了小数1.75

以后要用到这些数据,直接用变量名就行了,不用记住数据本身。

变量命名的黄金规则(别乱来!)

能用什么字符?

  • 只能用字母、数字、下划线
  • 不能用数字开头
  • 不能用空格
  • 不能用中文(虽然Python支持,但不推荐)
# 正确的命名
name = "小明"
user_name = "小红"
age1 = 20
age_2 = 25

# 错误的命名
1name = "小明"    # 数字开头
user name = "小红" # 有空格
class = 20        # class是Python关键字

命名规范(让代码看起来专业点)

# 不推荐(太丑)
x = "小明"
n = 25
a = 1.75

# 推荐(一看就知道是什么)
name = "小明"
age = 25
height = 1.75

# 多个单词用下划线连接
user_name = "小红"
total_score = 100

原则:变量名要能说明存的是什么数据。

Python的六种数据类型(记住这几个就够了)

1. 整数(int)

就是整数,没小数点的。

age = 25
count = 100
num_people = 50

2. 浮点数(float)

带小数点的。

height = 1.75
price = 99.99
temperature = 36.5

注意: Python里用小数点分隔小数,不是逗号!

3. 字符串(str)

用引号包起来的文字。

name = "小明"      # 双引号
message = '你好'   # 单引号也行
long_text = """
这是一段很长的文字,
可以换行写。
"""               # 三引号可以换行

引号的选择:

  • 文字里有单引号,就用双引号:"It's a dog"
  • 文字里有双引号,就用单引号:'他叫我"大帅哥"'

4. 布尔值(bool)

就两个值:TrueFalse(注意大小写!)。

is_student = True
is_married = False
has_job = True

布尔值就像开关,要么开要么关。

5. 列表(list)

可以存多个数据,用方括号包起来。

names = ["小明", "小红", "小刚"]
numbers = [1, 2, 3, 4, 5]
mixed = ["张三", 25, True, 1.75]  # 什么类型都能放

列表就像个购物袋,什么都能往里装。

6. 字典(dict)

键值对的形式存储数据,用花括号包起来。

person = {
    "name": "小明",
    "age": 25,
    "height": 1.75
}

# 也可以一行写
product = {"name": "手机", "price": 2999, "stock": 100}

字典就像一本字典,你查"小明",就能找到他的所有信息。

变量的赋值和修改

赋值

name = "小明"  # 创建一个变量,赋值为"小明"
age = 25       # 创建一个变量,赋值为25

修改

name = "小明"
name = "小红"  # 重新赋值,原来的"小明"就没了

age = 25
age = age + 1  # 年龄加1,变成26
age += 1       # 同样是加1,简写形式

删除

name = "小明"
del name  # 删除变量,后面再用name会报错

查看变量类型

不知道变量是什么类型?用type()函数:

age = 25
print(type(age))  # <class 'int'>

height = 1.75
print(type(height))  # <class 'float'>

name = "小明"
print(type(name))  # <class 'str'>

调试代码的时候很有用!

数据类型转换(互相转换)

有时候需要把数据从一种类型变成另一种类型。

# 字符串转整数
age_str = "25"
age = int(age_str)  # 转成25
print(age + 5)  # 30

# 整数转字符串
age = 25
age_str = str(age)  # 转成"25"
print("我今年" + age_str + "岁")  # 我今年25岁

# 字符串转浮点数
height_str = "1.75"
height = float(height_str)  # 转成1.75

注意: 字符串必须是数字才能转!

int("abc")  # 报错!无法转换
int("25")   # 正确,转成25

常见坑及解决方案

坑1:变量名和函数名重名

type = "小明"
print(type(25))  # 报错!type已经被改成字符串了

解决: 不要用函数名做变量名,比如typeprintinput等。

坑2:字符串和数字直接拼接

age = 25
print("我今年" + age + "岁")  # 报错!不能直接拼接

解决: 先转成字符串

age = 25
print("我今年" + str(age) + "岁")  # 正确

坑3:忘记加引号

name = 小明  # 报错!Python以为小明是一个变量
name = "小明"  # 正确,这是字符串

实战小练习

写一个程序,计算BMI(身体质量指数):

height = 1.75  # 身高(米)
weight = 70    # 体重(公斤)
bmi = weight / (height * height)

print("你的身高是:" + str(height) + "米")
print("你的体重是:" + str(weight) + "公斤")
print("你的BMI是:" + str(bmi))

if bmi < 18.5:
    print("你太瘦了!")
elif bmi < 24:
    print("你的体重很正常!")
else:
    print("你该减肥了!")

运行一下,看看你是什么情况?

本章小结

  • 变量就是装数据的盒子,用变量名来访问数据
  • 命名规则:字母数字下划线,不能数字开头,见名知意
  • 六种数据类型:整数、浮点数、字符串、布尔值、列表、字典
  • 类型转换int()float()str()互相转换

这些理解了,你就掌握了编程的一半!

下一章我们来学习条件判断,让电脑学会思考。

别给自己找借口,继续学下去!