一、列表练习
1、求偶数元素的和[1,2,1,2,3,3,6,5,8]
| 1 2 3 4 5 6 | list01 = [1, 2, 1, 2, 3, 3, 6, 5, 8] sum = 0 for i in list01: if int(i) % 2 == 0: sum = sum + i print(f"列表中所有偶数和是: {sum}") |
2、计算 1 - 2 + 3 - 4 + ... + 99 中除88以外所有数总和
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | ######################### # 定义初始变量 count # 定义累加和 sum ######################### count = 0 sum = 0 while count < 100: if count == 88: count = count + 1 continue elif count % 2 == 0: sum = sum - count else: sum = sum + count count = count + 1 print(sum) |
设置断点,使用debug来分析代码执行顺序如下
| ## 执行顺序如下 -- 第一次执行 count = 0 sum = 0 while count < 100: if count == 88: elif count % 2 == 0: sum = sum - count count = count + 1 (print(sum)上一行) -- 第二次执行 while count < 100: if count == 88: elif count % 2 == 0: sum = sum + count count = count + 1 (print(sum)上一行) -- 第三次执行 while count < 100: if count == 88: elif count % 2 == 0: sum = sum - count count = count + 1 (print(sum)上一行) -- 第四次执行 while count < 100: if count == 88: elif count % 2 == 0: sum = sum + count count = count + 1 (print(sum)上一行) |
3、求1+2!+3!+4!+……+10!的和
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 | # 方法一 count = 1 sum = 0 for i in range(1, 11): count *= i sum += count print(f"运算的结果是: {sum}") # 方法二 def f(n, sum=1): if n > 1: return f(n - 1, sum * n + 1) return sum print(f(10,sum=1)) |
对于方法二,设置断点,使用debug来分析代码执行顺序如下
| -- 第一次 print(f(10,sum=1)) def f(n, sum=1): n: 10 sum: 1 if n > 1: return f(n - 1, sum * n + 1) -- 第二次 def f(n, sum=1): n: 9 sum: 11 if n > 1: return f(n - 1, sum * n + 1) -- 第三次 def f(n, sum=1): n: 8 sum: 100 if n > 1: return f(n - 1, sum * n + 1) -- 第四次 def f(n, sum=1): n: 7 sum: 801 |
二、列表-字典练习
1、列表嵌套字典
| # 题目要求,循环data,每行按照格式 姓名:xxx, 年龄:xxx 将每个学生的信息逐行打印 data = [ {'name':'张三','age':18}, {'name':'李四','age':19}, {'name':'王五','age':20} ] -- 答案如下: for stu_dic in data: # print(f"姓名:{stu_dic.get("name")},年龄:{stu_dic.get("age")}") print("姓名:%s; 年龄:%s " %(stu_dic.get("name"),stu_dic.get("age")) ) -- 打印结果 姓名:张三; 年龄:18 姓名:李四; 年龄:19 姓名:王五; 年龄:20 |
2、字典嵌套字典
| # 题目要求,循环data,每行按照格式 学号 1001,姓名: xxx, 年龄: xxx 将每个学生的信息逐行打印 data = { 1001:{'name':'张三','age':18}, 1002:{'name':'李四','age':19}, 1003:{'name':'王五','age':20} } -- 答案如下 data = { 1001:{'name':'张三','age':18}, 1002:{'name':'李四','age':19}, 1003:{'name':'王五','age':20} } for stu_id,stu_dic in data.items(): name = stu_dic.get("name") age = stu_dic.get("age") print("学号:%s, 姓名: %s, 年龄: %s"%(stu_id,name,age)) -- 打印结果 学号:1001, 姓名: 张三, 年龄: 18 学号:1002, 姓名: 李四, 年龄: 19 学号:1003, 姓名: 王五, 年龄: 20 |