一、列表練習
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 |