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