社团签到:函数里改全局计数

函数里只要给某个变量赋值,Python 就把它当成局部变量。想在函数里改外面的变量,要先声明: count = 0 def add(): global count # 用的是外面那个 count count =

开始练习 →

期末调分:map 的结果要套 list

map(函数, 序列) 把函数用到每个元素上;filter(函数, 序列) 只留下函数返回 True 的元素。函数常用 lambda 当场写: a = [1, 2, 3] print(list(map(lambda x: x * 10, a

开始练习 →

二级 · 选择:局部变量、列表参数与 sorted 的 key

阅读下面的程序: x = 10 def f(a): x = 5 a.append(x) nums = [1] f(nums) print(x, nums) words = ['pear', 'fig

开始练习 →

二级 · 基本编程题:递归求斐波那契数

基本编程题:请在 ______ 处填写代码,不得修改其他代码。 斐波那契数列:1, 1, 2, 3, 5, 8, …,前两项是 1,以后每一项是前两项之和。键盘输入正整数 n(n ≤ 20),用递归函数输出第 n 项。 样例:输入 6,输出

开始练习 →

二级 · 综合编程题:汉诺塔的移动步骤

综合编程题:汉诺塔有 A、B、C 三根柱子,A 上从大到小摞着 n 个盘子。每次只能移动一个盘子,大盘子不能压在小盘子上,要把全部盘子移到 C。 键盘输入 n(1 ≤ n ≤ 5),按顺序输出每一步,每步一行,格式 A->C;最后一行

开始练习 →

倒着念:回文句检测器

「上海自来水来自海上」倒过来念还是它自己——这叫回文。做一个回文检测器,把你的名字或签名倒过来念,存视频发到群里考考大家。 用递归写 rev(s):空串或只有一个字时原样返回(基例);否则把「去掉第一个字后的反转」再接上第一个字。 读入一行

开始练习 →

三类组合数据与复制陷阱

二级把「装一堆数据的类型」分成三类: 序列:有先后顺序,能用下标和切片——字符串 str、列表 list、元组 tuple。 集合 set:没有顺序,元素不重复。 映射:字典 dict,一个「键」对应一个「值」。 先看一段最容易错的代码:

开始练习 →

宿舍值日表:隔一个排一个

切片可以带第三个数——步长: ls = ['a', 'b', 'c', 'd', 'e'] print(ls[::2]) # ['a',

开始练习 →

社团报名名单:加人和删人

街舞社的报名名单存在一个列表里。输入三行: 现有名单(空格隔开); 刚来报名的一个人; 退出的一个人(一定在名单里,只出现一次)。 把新人加到末尾,把退出的人删掉,然后输出名单(空格隔开)和人数。 样例:输入 甲 乙 丙 丁 乙 输出: 甲

开始练习 →

退社的人不在名单里

还是上一题的名单,可这回退出的人可能根本不在名单里(报错名字了)。remove 一个不存在的元素会报 ValueError。 输入同上题三行。如果退出的人在名单里就删掉;不在就先输出一行 查无此人:名字。然后照常输出名单和人数。 样例:输入

开始练习 →