一、列表练习
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 |