SONUB 首页 ZH English 한국어 日本語 中文 हिन्दी বাংলা اردو Español Português Français Deutsch Русский العربية Bahasa Indonesia Tiếng Việt ไทย Türkçe

如何开启通知

此浏览器或网址无法使用通知。请使用支持通知的浏览器,通过安全连接访问SONUB。

如果通知被屏蔽,请在浏览器设置中允许通知。

  1. 打开地址栏旁的站点设置或浏览器的站点设置,将此网站的通知设为允许。
  2. 在设备设置中允许浏览器发送通知,并检查勿扰模式或专注模式。
  3. 返回SONUB,刷新页面,然后通过铃铛开启通知。

在iPhone或iPad上,将SONUB添加到主屏幕,从主屏幕打开后允许通知。

Python 语言学习

在浏览器中直接编程的 Python 9 个阶段

无需安装,也无需注册。输入代码稍作停顿便立即运行,边看结果边学习。Python 是打造人工智能时用得最多的语言。

已完成阶段
0/9
进度
0%
运行次数
0
  1. 1. 和电脑说说话 用 print 把想说的话显示在屏幕上 尚未开始
  2. 2. 给值贴上名字标签 把值存进变量里,再拿出来用 尚未开始
  3. 3. 用数字来计算 数字不用加引号,马上就能相加 尚未开始
  4. 4. 像计算器一样计算 学会加、减、乘、除 尚未开始
  5. 5. 如果呢?做一个岔路口 用 if 根据不同情况做不同的事 尚未开始
  6. 6. 重复很多次 用 for 把同一件事做一遍又一遍 尚未开始
  7. 7. 把很多东西放进盒子 列表可以把很多值装在一起 尚未开始
  8. 8. 用名字标签找值 字典把名字和值配成一对 尚未开始
  9. 9. 创造你自己的魔法咒语 用 def 创造你自己的命令(函数) 尚未开始

真正的 Python 在浏览器内(Pyodide)运行。仅在第一次时下载一次运行环境,之后便可快速运行。如果想更深入地学习,请继续前往亲手打造人工智能实验室。

第 1 / 9 阶段

通过!你完成了第 1 阶段。要进入下一阶段吗?

print() — 和电脑说说话

用 print 把想说的话显示在屏幕上

我们来让电脑说话吧!print() 是一个魔法命令,能让电脑在屏幕上“说出”文字。把想说的话写在引号 " " 里,电脑就会原样显示出来。双引号就像一道围栏,告诉电脑“文字从这里开始,到这里结束”。

一台笑眯眯的笔记本电脑,屏幕里冒出一个空空的对话气泡,一只手正在敲键盘。旁边两根大大的引号形状的柱子之间,挂着一条空白的纸条。
print 会让电脑把引号之间的话,按你写的样子原样说出来。

目标 · 用 print() 显示任何你想说的话。只要屏幕上出现了文字,你就成功了!

出现这样的结果就成功了!

Hello, Python!

我在学习 Python

(引号里的话会原样显示出来)

已打开全部提示

  1. 在 print( ) 的括号里,放入用引号包起来的话。

  2. 例如:print("我在学习 Python")

  3. 如果忘了引号,电脑就听不懂了。一定要像 "这样" 把话包起来。

第 2 / 9 阶段

通过!你完成了第 2 阶段。要进入下一阶段吗?

给值贴上名字标签

把值存进里,再拿出来用

就像给玩具箱贴上名字标签一样,你也可以给值起个名字。写成 name = 值,之后只要叫这个名字,值就会出来。像这样贴上名字标签的值,叫作“变量”。这里的 = 不是“等于”的意思,而是“把这个值放进这个名字里”。

架子上的每个盒子都挂着一张空白的名字标签,里面装着苹果、玩具汽车和丝带。一颗星星正落进空着的第四个盒子,一只手拿着这个盒子的名字标签。
变量就是贴着名字标签的盒子。把值放进去,叫它的名字就能再拿出来。

目标 · 把你自己的名字放进变量 name 里。这样电脑就会用你的名字跟你打招呼!

出现这样的结果就成功了!

My name is (你输入的名字)

— 名字标签上写的名字,会出现在问候里

已打开全部提示

  1. 在引号之间写上你的名字。例如:name = "小明"

  2. = 的左边是名字标签,右边是要放进去的值。

  3. 像 name = "小红" 这样,在引号里写上名字就可以了。

第 3 / 9 阶段

通过!你完成了第 3 阶段。要进入下一阶段吗?

用数字来计算

数字不用加引号,马上就能相加

文字要用引号包起来,但数字不用加引号,直接写就行。这样电脑就知道它们是真正的数字,还能帮你计算!可以像 3 + 5 这样做加法,也可以把算出来的结果放进名字标签()里。

目标 · 把 apples 加 bananas 的结果放进 total,让水果一共有 8 个。

出现这样的结果就成功了!

Fruits in total: 8

— apples 3 + bananas 5 = 8!

已打开全部提示

  1. 加法用 + 号。

  2. 名字标签之间也能相加,比如 total = apples + bananas。

  3. 写成 total = apples + bananas,total 就会变成 8。

第 4 / 9 阶段

通过!你完成了第 4 阶段。要进入下一阶段吗?

像计算器一样计算

学会加、减、乘、除

Python 是一个聪明的计算器。加法用 +,减法用 -。乘法用 * 代替 ×,除法用 / 代替 ÷。长方形房间的面积是“宽 × 长”,告诉电脑时就写 width * height。

目标 · 把 width 乘以 height,让房间的面积变成 48。

出现这样的结果就成功了!

The area of the room is 48

— width 8 × height 6 = 48!

已打开全部提示

  1. 乘法要用 * 号,不是 ×。

  2. 像 area = width * height 这样,用星号来做乘法。

  3. 写成 area = width * height,就能得到 48。

第 5 / 9 阶段

通过!你完成了第 5 阶段。要进入下一阶段吗?

if — 如果呢?做一个岔路口

用 if 根据不同情况做不同的事

“如果下雨,就带上雨伞;不下雨,就直接出门。”电脑也能做出这样的岔路口。if : 的意思是“如果条件成立”,else: 的意思是“否则”。岔路口里面的每一行,前面都要空 4 格(),电脑才知道“这一行在岔路口里面”。

一个背着书包的孩子站在岔路口。一条路下着雨,要撑伞;另一条路阳光灿烂。
条件成立时,if 走一条路;不成立时,else 走另一条路。

目标 · 如果 score 是 60 或以上,就把 "pass" 放进 grade;否则放进 "fail"。(现在的分数是 85!)

出现这样的结果就成功了!

Result: pass

— 85 比 60 大,所以是 "pass"!

已打开全部提示

  1. 先写 if score >= 60: ,再在下一行空 4 格,写上 grade = "pass"。

  2. 在 else: 下面的那一行写 grade = "fail"(同样要先空 4 格)。

  3. if score >= 60:
        grade = "pass"
    else:
        grade = "fail"
第 6 / 9 阶段

通过!你完成了第 6 阶段。要进入下一阶段吗?

for — 重复很多次

用 for 把同一件事做一遍又一遍

从 1 数到 10,一个一个地加起来,手会很累吧?电脑最擅长重复了。for number in range(1, 11): 的意思是“把 1、2、3 … 10 依次放进 number,然后重复”。(range(1, 11) 表示 1 到 10。)在里面,可以一点一点地把值加起来。

一列玩具火车绕着圆形轨道跑,每跑一圈就往罐子里放一颗珠子。轨道旁边排成一行的石头,显示已经跑了几圈。
for 会一次换一个值,重复同样的步骤,直到范围结束。

目标 · 把 1 到 10 的所有数字加起来,让 total 变成 55。

出现这样的结果就成功了!

1 to 10 added up: 55

— 1 + 2 + 3 + … + 10 = 55!

已打开全部提示

  1. 在循环里,要像 total = total + number 这样,把 number 不断加到原来的 total 上。

  2. total = 0 只能出现一次,放在最上面、循环开始之前。

  3. 把循环里面的那一行改成 total = total + number,就能得到 55。

第 7 / 9 阶段

通过!你完成了第 7 阶段。要进入下一阶段吗?

list — 把很多东西放进盒子

可以把很多值装在一起

就像把很多支铅笔放进一个笔袋,你也可以把很多值放进一个盒子里。这个盒子叫作“列表”,用方括号 [ ] 来做。要往盒子里放新东西,就用 盒子.append("东西");要数一数里面有几个,就用 len(盒子)。

一个打开的笔袋里,彩色铅笔排成一排,一支新铅笔正滑进最后面的空位。
列表按顺序装着很多值。append 会在最后面加上一个新的。

目标 · 往 fruits 盒子里再放一个 "orange",让水果一共有 4 个。

出现这样的结果就成功了!

['apple', 'pear', 'grape', 'orange']

Count: 4

— 放进了 "orange",现在有 4 个了!

已打开全部提示

  1. 要往盒子里放东西,就写 fruits.append("orange")。

  2. append 会把新东西加到盒子的最后面。

  3. 只要加上一行 fruits.append("orange") 就可以了。

第 8 / 9 阶段

通过!你完成了第 8 阶段。要进入下一阶段吗?

dict — 用名字标签找值

把名字和值配成一对

在字典里查一个词,就能找到它的意思,对吧?Python 的字典也是一样。给它名字标签(键)"reading",就能得到分数(值)90。字典用花括号 { } 来做,可以像 scores["science"] = 100 这样加入新的一对。有了名字标签,就能非常快地找到值。

一整面墙的小储物柜,贴着形状不同的名字牌。一只手拿着星星形状的钥匙,打开了星星柜子,里面放着一张奖杯卡片。
字典用键马上就能找到值,就像用自己的钥匙打开的储物柜。

目标 · 在 scores 里加入 "science": 100,再算出三门科目(reading、math、science)的平均分,让它等于 90。

出现这样的结果就成功了!

{'reading': 90, 'math': 80, 'science': 100}

Average: 90.0

— 三门科目的平均分是 90!

已打开全部提示

  1. 要加入新的一对,就写 scores["science"] = 100。

  2. 平均分就是 (90 + 80 + 100) 除以 3。

  3. 先写 scores["science"] = 100,再写 average = (scores["reading"] + scores["math"] + scores["science"]) / 3 就可以了。

第 9 / 9 阶段

通过!你完成了第 9 阶段。要进入下一阶段吗?

def — 创造你自己的魔法咒语

用 def 创造你自己的命令()

如果你经常做同一件事,给自己做一个魔法咒语会很方便。这个咒语就叫作“函数”。def double(x): 的意思是“做一个叫 double 的咒语,用 x 当材料”,return 的意思是“把这个值交回来”。做好一次以后,就能像 double(10)、double(7) 这样一次又一次地使用。

一台可爱的魔法机器。一个苹果从上面的漏斗进去,两个苹果从侧面的滑道出来。
函数是一台只要做一次的机器。东西放进去,return 就把结果交回来。

目标 · 完成咒语 double:它接收一个数,然后交回这个数的两倍。

出现这样的结果就成功了!

20

14

— double(10) 交回 20,double(7) 交回 14!

已打开全部提示

  1. 两倍就是 x * 2。

  2. 在 return 后面写上要交回的值。

  3. 改成 return x * 2,你的咒语就完成了。

正在准备 Python 运行环境…

Python 代码

运行结果


                        

就差一点了!

如果出现错误

SyntaxError: unterminated string literal 的意思是少了一个引号。有开头的 ",就要有结尾的 ",就像 print("Hello") 这样。print 也要用小写字母写,写成 Print 会出现 NameError。

再进一步

先显示两行,然后在运行 print("Ha" * 3) 之前,猜一猜会看到什么。

如果出现错误

NameError: name 'nme' is not defined 的意思是 Python 不认识这个名字。通常是打错了字,或者在创建这个名字的那一行之前就用了它。名字必须一模一样,连大小写字母也要相同。

再进一步

再做一个变量 age = 10,然后用 print(name, age) 把两个都显示出来。

如果出现错误

"3" + 5 会出现 TypeError,因为引号里的文字和数字不能相加。把引号去掉,或者用 int("3") 把文字变成数字。

再进一步

把 apples = 3 改成 apples = 10,再运行一次。总数会自己变,因为它是算出来的,不是你写上去的。

如果出现错误

写成 8 x 6 或 8 × 6 会出现 SyntaxError,因为 Python 用 * 做乘法。还有,/ 总是得到带小数点的数:7 / 2 是 3.5,连 8 / 2 也是 4.0。想要整数的时候,就用 //。

再进一步

用 ** 试试乘方吧。2 ** 10 就是把 10 个 2 乘在一起。

如果出现错误

两个常见的小错误:一是忘了 if score >= 60: 末尾的冒号,二是岔路口里面的行前面没有空 4 格,这会出现 IndentationError。记住,= 是把值放进去,== 是在问“这两个一样吗?”。

再进一步

把 elif score >= 90: 加在 else: 前面,让很高的分数显示它自己的话。

如果出现错误

range(1, 10) 到 9 就停了,因为不包括结尾的数。想要 1 到 10,就写 range(1, 11)。还有,如果在循环里面把总数设成 0,每次都会从头开始。在循环前面设一次就好。

再进一步

用 range(2, 11, 2) 只加偶数,它会数 2、4、6、8、10。

如果出现错误

编号从 0 开始数,所以第一个是 fruits[0]。在只有三个东西的列表里找 fruits[3],会出现 IndexError: list index out of range。

再进一步

用 fruits.remove("pear") 拿掉一个,再把列表显示一次。

如果出现错误

找一个不存在的键,比如 scores["music"],会出现 KeyError。检查一下拼写,或者用 scores.get("music"),它会给出 None(意思是“没有值”),而不是错误。

再进一步

用 for subject, score in scores.items(): 和里面的一行 print,把每一对都显示出来。

如果出现错误

如果忘了写 return,函数会交回 None,所以 print(double(10)) 会显示 None。还有,函数要加上括号调用才会运行,要写 double(10),不能只写 double。

再进一步

写一个 def greet(name):,让它交回一句带着名字的问候语,再用你自己的名字调用它。