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