CC++ & Algorithm

标识符、关键字与常量变量

中等0
语言版本:C++
概述:学习如何给程序中的东西起名字,以及哪些名字不能用。

从起名字到做计算:Python基础语法入门

学编程就像学一门新语言,你要学会怎么给东西起名字、怎么存放数据、怎么让数据做运算、怎么和用户交流。这一篇文章会带你一步步掌握 Python 最基础的知识,让你能写自己的第一个交互式程序。

1. 给程序里的东西起名字:标识符与关键字

想象一下,你有一个玩具箱,里面有很多玩具。为了快速找到想要的玩具,你会给每个玩具贴一个名字标签,比如“红色小汽车”、“蓝色积木”。在 Python 程序里,我们也需要给数据、函数等起名字,这些名字就叫 标识符

标识符的命名规则(必须遵守,不然程序会报错):

  • 只能使用 字母(a–z, A–Z)、数字(0–9)和 下划线_)组成。
  • 不能以数字开头,比如 1name 就是错的。
  • 不能和 Python 的“关键字”相同(关键字是 Python 已经用了的特殊词语,比如 ifwhilefor)。
  • 大小写敏感Namename 是两个不同的标识符。

关键字就像教室里的“专用桌椅”,你坐不了别人的座位。Python 里大约有 35 个关键字,例如: False, True, None, and, or, not, if, else, elif, for, while, break, continue, def, return, import, class, try, except, finally, raise, with, as, pass, yield, global, nonlocal, lambda, in, is, del, from, assert, async, await 等。

常见错误

  • 使用关键字做变量名:if = 5 ❌ 会报错。
  • 使用减号或空格:my-name ❌ 应改为 my_name
  • 数字开头:1st_player ❌ 应改为 player1

好的命名习惯:用有意义的英文单词,比如 student_count 表示学生人数,不要用 ab 那种别人看不懂的名字。如果名字由多个单词组成,常用下划线连接(蛇形命名法),例如 my_scoretotal_price

2. 存放数据的容器:常量与变量

程序运行过程中,数据需要被存放在“容器”里。Python 中主要有两种容器:变量和常量。

  • 变量:可以随时改变的数据。比如你的年龄每年都会变,所以可以用变量 age 来存储。
  • 常量:通常不会改变的数据。比如圆周率 π ≈ 3.14159,在程序里我们习惯用全大写字母命名,比如 PI = 3.14159。但 Python 没有强制不让修改,所以这只是一个约定,靠程序员自觉遵守。

变量赋值:用 = 把右边的值放到左边的变量里。

# 变量赋值
my_name = "小明"   # 字符串类型
age = 10           # 整数类型
_height = 1.5      # 浮点数类型
is_student = True  # 布尔类型

# 常量习惯全大写
PI = 3.14159
GRAVITY = 9.8

print("我的名字是", my_name, ",今年", age, "岁")

注意:Python 的变量是动态类型的,同一个变量可以先存整数,再存字符串,但这样容易混乱,不建议这么做。

3. Python 的四种基本数据类型

就像世界上有不同种类的物品(水果、书籍、衣服),Python 中的数据也分为不同类型。最常用的四种是:整数浮点数布尔值字符串

3.1 整数(int)

整数就是像 0、1、-5、100 这样没有小数点的数字。在 Python 里,整数可以非常大,比如 9999999999999999999,只要内存够大就能存。

特点

  • 可以表示正数、负数和零。
  • 支持所有常见的数学运算。
  • Python 3 中,整数除法 / 会得到浮点数(带小数),但用 // 会得到整数(地板除)。

生活例子:比如你有 3 个苹果,妈妈又给了你 5 个,一共多少个?

apples = 3          # 初始苹果数
more_apples = 5     # 妈妈给的苹果
total = apples + more_apples
print("一共有", total, "个苹果")   # 输出:一共有 8 个苹果

3.2 浮点数(float)

浮点数是带小数点的数字,比如 3.14、0.5、-2.0。注意:计算机存浮点数会有微小误差(比如 0.1+0.2 可能等于 0.30000000000000004),这是计算机原理决定的,大部分情况没问题。

例子

pi = 3.14159            # 圆周率
distance = 1.5          # 距离(公里)
print("圆周率约等于", pi)

3.3 布尔型(bool)

布尔型只有两个值:True(真)和 False(假)。就像开关的开和关。布尔值经常用在条件判断中,比如“如果下雨就不出门”。

is_raining = True       # 正在下雨
is_sunny = False        # 不是晴天
print("今天下雨吗?", is_raining)

3.4 字符串(str)

字符串是用单引号 '...' 或双引号 "..." 包围的文本。比如 "你好"'Python'。字符串可以拼接(用 +)和重复(用 *)。

name = "小明"
greeting = "你好,"
message = greeting + name   # 字符串拼接
print(message)               # 输出:你好,小明

# 字符串重复
print("哈" * 3)             # 输出:哈哈哈

常见错误:字符串和数字不能直接用 + 拼接。比如 "我今年" + 10 + "岁" 会报错,因为 10 是整数,需要先转成字符串:

age = 10
print("我今年" + str(age) + "岁")   # 数字必须转成字符串才能拼接

类型转换常用函数:

  • int():把字符串或浮点数转成整数(如 int("5") → 5,注意会丢弃小数部分)
  • float():转成浮点数
  • str():转成字符串

4. 让数据做计算:运算符

有了数据,我们还需要操作它们。Python 提供了丰富的运算符,就像数学课上的加减乘除,还有比大小、逻辑判断等。

4.1 算术运算符

运算符说明例子结果
+加法7 + 29
-减法7 - 25
*乘法7 * 214
/除法(结果是浮点数)7 / 23.5
//地板除(取整数部分)7 // 23
%取余数7 % 21
**乘方(幂)2 ** 38

例子:假设考试要算平均分。

math = 90
english = 85
chinese = 88
average = (math + english + chinese) / 3
print("平均分是", average)

4.2 关系运算符(比较运算符)

关系运算比较两个值的大小或是否相等,结果是一个布尔值TrueFalse)。

运算符含义例子结果
>大于5 > 3True
<小于5 < 3False
>=大于等于5 >= 5True
<=小于等于5 <= 4False
==等于(注意是两个等号)5 == 3False
!=不等于5 != 3True

生活例子:你考试得了95分,小红得了88分,比较一下。

my_score = 95
her_score = 88
print("我比她高吗?", my_score > her_score)   # True
print("我们分数相等吗?", my_score == her_score)  # False

常见错误:把赋值 = 与比较 == 混淆。比如 if score = 100 会报错,应该写成 if score == 100

4.3 逻辑运算符

逻辑运算符用来连接多个条件(布尔值),让判断更灵活。Python 有三个逻辑运算符:and(与)、or(或)、not(非)。

  • and:两边都是 True,结果才是 True。就像“有笔有纸才能写字”。
  • or:只要有一个 True,结果就是 True。就像“有伞或雨衣都能挡雨”。
  • not:取反,True 变 False,False 变 True。就像“不饿就是饱”。

真值表(理解即可):

ABA and BA or Bnot A
TrueTrueTrueTrueFalse
TrueFalseFalseTrueFalse
FalseTrueFalseTrueTrue
FalseFalseFalseFalseTrue

生活例子

  • 如果今天不下雨(not raining并且今天是周六(is_weekend == True),就去公园玩。
  • 如果分数 ≥ 90 或者作业全对,就可以得到奖励。
temperature = 28
is_weekend = True

# 条件1:温度大于25度 且 是周末 -> 适合去游泳
if temperature > 25 and is_weekend:
    print("去游泳吧!")
else:
    print("还是在家休息吧")

# 条件2:温度小于10度 或者 是雨天 -> 穿外套
is_rainy = False
if temperature < 10 or is_rainy:
    print("多穿点,注意保暖")
else:
    print("今天天气不错")

短路求值:Python 计算 and 时,如果左边已经是 False,右边就不会再计算;计算 or 时,如果左边已经是 True,右边就不计算了。这可以提高效率。

4.4 赋值运算符与复合赋值

基本赋值就是用 = 把数据放进变量。但有时候你想让变量本身增加或减少某个数,比如计分器每得一分加1。Python 提供了复合赋值运算符,写得又快又清楚。

复合赋值等价于示例
x += 3x = x + 3score += 5
x -= 2x = x - 2hp -= 10
x *= 4x = x * 4attack *= 2
x /= 2x = x / 2distance /= 2
x //= 3x = x // 3coins //= 10
x %= 10x = x % 10gold %= 10
x **= 2x = x ** 2level **= 2

例子:模拟游戏中的生命值和攻击力变化。

# 模拟生命值
hp = 100              # 初始生命值
print("初始生命值:", hp)

# 受到10点伤害
hp -= 10              # 等价于 hp = hp - 10
print("受伤后生命值:", hp)   # 90

# 吃了补血药,回复20点
hp += 20
print("补血后生命值:", hp)   # 110

# 购买装备,攻击力翻倍
attack = 5
attack *= 2
print("攻击力翻倍后:", attack)   # 10

注意:复合赋值运算符的右边会先计算,然后再与左边做运算。比如 x = 3; x += 2 * 5,先算 2*5=10,再算 x=3+10=13

4.5 运算优先级

当多个运算符出现在一个表达式里,Python 必须决定先算谁。这就像数学里的“先乘除后加减”。Python 有一套优先级规则,从高到低(只列出常见的):

  1. 括号 () —— 最高,想先算什么就用括号括起来。
  2. 乘方 ** —— 右结合(比如 2**3**2 会先算 3**2=9,再算 2**9=512
  3. 正负号 +x -x —— 一元运算符
  4. 乘除取余 * / // %
  5. 加减 + -
  6. 关系运算 > < >= <= == !=
  7. 逻辑非 not
  8. 逻辑与 and
  9. 逻辑或 or
  10. 赋值 = += 等 —— 最低

小窍门:如果你不确定优先级,就加括号!括号最安全,而且别人也能看懂。

代码示例

# 先乘除后加减
result1 = 2 + 3 * 4      # 3*4=12,再加2得14
print("2+3*4 =", result1)

# 用括号改变顺序
result2 = (2 + 3) * 4    # 先算2+3=5,再乘4得20
print("(2+3)*4 =", result2)

# 乘方优先级高于乘除
result3 = 2 * 3 ** 2     # 先算3**2=9,再乘2得18
print("2*3**2 =", result3)

# 关系运算低于算术
result4 = 3 + 5 > 2 * 3  # 先算术得 8 > 6,结果为True
print("3+5 > 2*3: ", result4)   # True

# 逻辑运算低于关系
result5 = not 5 > 3      # 先比较5>3得True,再取非得False
print("not 5 > 3:", result5)    # False

# 混合例子
a, b, c = 2, 3, 4
result6 = a + b * c >= 10 and not (c == 4)
# 逐步计算:
# b*c=12, a+12=14,14>=10 -> True
# c==4 -> True, not True -> False
# True and False -> False
print("结果:", result6)   # False

5. 与用户对话:输入和输出

程序和人交互靠输入和输出。Python 里用 print() 输出,用 input() 获取输入。

print() 输出

  • 可以输出文字、数字、变量。
  • 多个东西用逗号隔开,中间会自动加空格。
  • 也可以直接拼接字符串。
  • 默认末尾换行,如果不想换行可以加 end="" 参数,比如 print("正在加载", end="")

input() 输入

  • input() 会暂停程序,等待用户输入文字,按回车后把输入的内容作为字符串返回。
  • 如果想让输入变成数字,需要用 int()float() 转换。

例子:做一个简单的个人信息程序。

# 输出欢迎语
print("欢迎来到Python世界!")

# 获取名字
name = input("请输入你的名字:")
print("你好,", name)

# 获取年龄(注意转成整数)
age_str = input("请输入你的年龄:")
age = int(age_str)          # 也可以直接写 int(input("请输入你的年龄:"))
print("你今年", age, "岁")

# 计算明年年龄
next_year_age = age + 1
print("明年你就", next_year_age, "岁啦!")

# 一次性输出多个内容
print("你的名字是", name, ",年龄", age, "岁")

常见错误:忘记转换类型。比如直接 age = input(...) 然后 age + 1,因为 input 返回的是字符串,字符串不能和整数相加,会报错。一定要用 int()float() 转。

更漂亮的输出:Python 3.6 之后可以用 f-string(格式化字符串),在字符串前面加 f,用花括号 {} 嵌入变量,写起来更简洁。

name = "小明"
age = 10
print(f"你好,我叫{name},今年{age}岁。")  # 输出:你好,我叫小明,今年10岁。

6. 新手容易犯的错误总结

  1. 关键字当变量名:比如 if = 5,会报语法错误。
  2. 标识符数字开头1st_place 是不允许的。
  3. 忘记类型转换input() 得到的是字符串,直接用 + 和数字运算会出错。
  4. 混淆 ===:在 if 条件中写成 if score = 100,应该用 ==
  5. 字符串和数字直接拼接:需要先用 str() 转换数字。
  6. 浮点数精度误差:不要用 == 判断两个浮点数是否相等,可以用差值小于某个小值来判断。
  7. 忘记括号:当表达式优先级不清楚时,多用括号。

7. 完整示例:猜数字小游戏(综合运用)

下面是一个完整的程序,它综合使用了变量、输入输出、类型转换、运算符和条件判断。你可以把它复制到 Python 环境中运行。

import random

# 游戏介绍
print("===== 猜数字游戏 =====")
print("我想了一个 1 到 100 之间的整数,你猜猜看!")

# 电脑随机生成一个 1-100 之间的整数
secret = random.randint(1, 100)

# 记录玩家猜的次数
guess_count = 0

# 游戏循环(这里先展示一次,完整版可用 while 循环)
while True:
    # 获取玩家输入
    guess_str = input("请输入你的猜测(1-100):")
    guess = int(guess_str)          # 转成整数
    guess_count += 1                # 猜的次数加1

    # 比较猜测和秘密数字
    if guess == secret:
        print(f"恭喜你猜对了!答案是 {secret}")
        print(f"你一共猜了 {guess_count} 次。")
        break                       # 猜对就退出循环
    elif guess < secret:
        print("猜小了,再大一点!")
    else:
        print("猜大了,再小一点!")

print("游戏结束,下次再来玩!")

运行示例

===== 猜数字游戏 =====
我想了一个 1 到 100 之间的整数,你猜猜看!
请输入你的猜测(1-100):50
猜小了,再大一点!
请输入你的猜测(1-100):75
猜大了,再小一点!
请输入你的猜测(1-100):62
猜小了,再大一点!
请输入你的猜测(1-100):68
恭喜你猜对了!答案是 68
你一共猜了 4 次。
游戏结束,下次再来玩!

这个例子用到了:

  • 变量(secret, guess, guess_count
  • 输入输出(inputprint、f-string)
  • 整数运算(guess_count += 1
  • 关系运算(==, <, >
  • 逻辑条件(if...elif...else
  • 循环(while Truebreak)——虽然还没正式学,但可以感受一下。

8. 相关指引

掌握了本文的内容,你已经可以写很多简单的小程序了。接下来可以学习:

  • 条件判断ifelifelse)——让程序根据不同情况做不同事情
  • 循环forwhile)——重复执行某段代码
  • 列表(list)——存放多个数据
  • 函数def)——把代码打包成可重复使用的模块

编程就像搭积木,这些基础知识就是最基础的积木块。多动手写代码,遇到不懂的就查文档,你一定能成为编程小能手!

例题精讲

1单选题

在Python中,下列哪个选项是合法的标识符?

A2nd_place
B_myVar
Cmy-var
Dclass
2判断题

Python中,关键字可以作为变量名使用。

3单选题

关于Python中的常量和变量,下列说法正确的是?

APython中使用const关键字定义常量,常量一旦赋值就不能被修改
BPython中的变量不需要显式声明类型,其类型由赋给它的值动态决定
CPython中的变量必须先使用int、float等关键字声明类型,否则会报错
DPython中通过#define指令可以定义不可修改的常量
4填空题
执行以下代码后,输出结果为:
x = 10
x = x + 5
print(___)
请填写合适的变量名使其输出15。
5判断题

在Python中,True和False是关键字,也是常量。