开发者学堂课程【Python 入门 2020年版:进阶题】学习笔记,与课程紧密联系,让用户快速学习知识。
课程地址:https://developer.aliyun.com/learning/course/639/detail/10274
进阶题
内容介绍:
一、进阶题(选做)
一、进阶题(选做)
1、使用循环计算出1到100求和的结果。
result = 0
i
=
0
while i < 100:
i += 1
result += i
print(result )
运行结果:
C
:Users
\
chris\ AppData\Local\Programs\Python\Python37\python.exe C:/Users/chris/Desktop/PythoDa05
-字符
5050
Process finished with exit code 0
另一解法:for 循环
r = 0
for j in range(1,101):
#不包含结尾
r += j
print(r)
运行结果:
C
:Users
\
chris\ AppData\Local\Programs\Python\Python37\python.exe C:/Users/chris/Desktop/PythoDa05
-
字符
5050
Process finished with exit code 0
答案:sum1
=
0
for i in range(0, 101):
sum1 +=
i
print(sum1)
sum2
=
0
i= 0
while i < 100:
i
+
=
1
sum2 +
=
i
print(sum2)
2、统计100以内个位数是2并且能够被3整除的数的个数。
现先打印1~100的个数
for
i
in
range
(1,101):
p
rint(i)
运行结果:
C
:Users
\
chris\ AppData\Local\Programs\Python\Python37\python.exe C:/Users/chris/Desktop/PythoDa05
-
字符
1
2
3
(一直打印到100)Process finished with exit code 0
要拿到个位数为2,
for
i
in
range
(1,101):
if
i
%
10
==
2
:
p
rint(i)
运行结果:
C
:Users
\
chris\ AppData\Local\Programs\Python\Python37\python.exe C:/Users/chris/Desktop/PythoDa05
-
字符
2
1
2
2
2
3
2
4
2
5
2
62
7
2
8
2
9
2
Process finished with exit code 0
#统计100以内个位数是2并且能够被3整除的数的:
for
i
in
range
(1,101):
if
i
%
10
==
2
a
nd i % 3 == 0:
p
rint(i)
运行结果:
C
:Users
\
chris\ AppData\Local\Programs\Python\Python37\python.exe C:/Users/chris/Desktop/PythoDa05
-
字符
1
2
4
2
7
2
Process finished with exit code 0
#统计100以内个位数是2并且能够被3整除的数的个数。
c
ount = 0 #
定义一个变量来表示个数
for
i
in
range
(1,101):
if
i
%
10
==
2
a
nd i % 3 == 0:
c
ount += 1#
只要发现了一个符合要求的数,就把计数器加1
p
rint(i)
print
(‘
满足条件的数字的个数是
’
,c
ount
,
’
个
’)
运行结果:
C
:Users
\
chris\ AppData\Local\Programs\Python\Python37\python.exe C:/Users/chris/Desktop/PythoDa05
-
字符
1
2
4
2
7
2
满足条件的数字的个数是3个
Process finished with exit code 0
答案:num = 0
for i in range(1, 101):
if
i
% 10
==
2 and
i
% 3
==
0:
num +
=
1
print(num)
3、输入任意一个正整数,求它是几位数
注意:不允许使用判断字符串长度的方式来求解。
num = int(input(‘
请输入一个整数:
’))
#整除除到0,说明小数点已经移到前面,位数已经完了。
while True:
num
/
/= 10
print(num)
运行结果:
C
:Users
\
chris\ AppData\Local\Programs\Python\Python37\python.exe C:/Users/chris/Desktop/PythoDa05
-
字符
请输入一个整数:
2387412
2
38741
2
3874
2
387
2
38
2
3
2
0
0
0
(一直到0)
Process finished with exit code 0
等于0可以停掉:
num = int(input(‘
请输入一个整数:
’))
while True:
num
/
/= 10
#
print(num)
i
f
num
==
0
:
Break
要问几位数:
num = int(input(‘
请输入一个整数:
’))
c
ount
=
0
#表示个数
while True:
count
+=
1
num
/
/= 10
i
f
num
==
0
:
break
print
(‘
你输入的数字是
’
,
count
,
’
位数
’)
运行结果:
C
:Users
\
chris\ AppData\Local\Programs\Python\Python37\python.exe C:/Users/chris/Desktop/PythoDa05
-
字符
请输入一个整数:123456789
你输入的数字是9位数
Process finished with exit code 0
也可用 while
num
/
/ 10 != 0:
4.打印所有的水仙花数。
先知道3位数
for i in range(100,1000):
p
rint(i)
运行结果:
C
:Users
\
chris\ AppData\Local\Programs\Python\Python37\python.exe C:/Users/chris/Desktop/PythoDa05
-
字符
100
(一直到999)
Process finished with exit code 0
开始是100,最后也是3位数。
拿到个位十位百位:
for i in range(100,1000):#456
除以1
0
,商是4
5
,余数是6
ge =
i
% 10
shi = i
/
/ 10 % 10
bai = i // 100
if ge ** 3 + shi ** 3+ bai **3
==
i:
print(i)
运行结果:
C
:Users
\
chris\ AppData\Local\Programs\Python\Python37\python.exe C:/Users/chris/Desktop/PythoDa05
-
字符
153
3
70
3
71
4
07
Process finished with exit code 0
说明:水仙花数是一个三位数,其各位数字立方和等于该数本身。
例如: 153是水仙花数,因为153=1^3+5^3+ 3^3。for i in range(100
,
1000):
x=
i
// 100
y
=
i % 100//10
z= i % 10
if i == x**3 + y**3 + z
*
*3:
print(i)