学完这一章,你能给数据起名字,并分清数字和文字的区别。
设 年龄 = 18
设 名字 = "小明"
打印(名字)
打印(年龄)
设 的意思是「建立一个新名字」。之后写这个名字,就等于写它代表的东西。
改值不写「设」:
设 分数 = 60
分数 = 90 # 直接改
打印(分数) # 90
设 分数 = 60 是新建(声明)分数 = 90 是改值(赋值)名字已经存在了就不能再「设」一次,否则报错:
设 x = 1
设 x = 2 # 错误 CN0307:重复声明
💡 为什么第二次不写「设」?因为「设」是新建,名字已经有了。写第二次会报
CN0307,提醒你是不是不小心用了同一个名字。
CNplus 里值有这些类型:
| 类型 | 例子 | 说明 |
|---|---|---|
| 整数 | 18 -42 |
任意精度,多大都不溢出 |
| 小数 | 1.5 3.0 |
带小数点的数 |
| 字符串 | "你好" '你好' |
文字,单双引号都行 |
| 布尔 | 真 假 |
只能「是」或「不是」 |
| 空 | 空 |
表示「什么都没有」 |
| 列表 | [1, 2, 3] |
一串东西(见第三章) |
| 字典 | {"名": "小明"} |
按标签取值(见第三章) |
| 函数 | 函数 f() ... |
可以像值一样传递(见第二章) |
| 对象 | 学生("小明", 18) |
类的实例(见第五章) |
数字和文字要分清:
设 年龄 = 18 # 数字,可以拿来算
设 年龄文字 = "18" # 文字,只能显示
两者长得像,但一个是数字、一个是文字。18 + 1 得 19;"18" + "1" 得 "181"(文字拼接)。
打印(类型(18)) # 整数
打印(类型(1.5)) # 小数
打印(类型("你好")) # 字符串
打印(类型(真)) # 布尔
打印(类型(空)) # 空
设 年龄 = 18
打印("我今年" + 文本(年龄) + "岁") # 我今年18岁
直接写 "我今年" + 年龄 会报错——CNplus 不允许数字和文字直接相加,但会告诉你怎么改:
设 年龄 = 18
打印("我今年" + 年龄)
# 错误 CN0303:不能把「数字」和「文字」接在一起
# 这样改:先用 文本(...) 把数字转成文字
文本() 能把任何值变成文字:文本(真) 得 "真",文本(空) 得 "空"。
布尔只有两个值,用来回答「是 / 不是」:
设 下雨了 = 真
设 会游泳 = 假
打印(下雨了) # 真
打印(会游泳) # 假
注意显示的是
真/假,不是英文的True/False。这是故意的。
学过 Python 的人,看这里——这一章学的,用 Python 写是这样。零基础可以直接跳过,去下面做「练一练」。
先把这一章串成一个完整程序(CNplus):
设 年龄 = 18
设 名字 = "小明"
打印("我今年" + 文本(年龄) + "岁")
打印(类型(年龄))
同一个程序,用 Python 写:
年龄 = 18
名字 = "小明"
print("我今年" + str(年龄) + "岁")
print(type(年龄))
| CNplus | Python |
|---|---|
设 x = 1(新建) |
x = 1(不区分新建/改值) |
文本(值) |
str(值) |
类型(值) |
type(值) |
真 / 假 |
True / False |
空 |
None |
下一步:做练习,然后继续下一课。