python 作业 17 循环5

问题:

0.请问下面代码打印的结果是什么?

>>> for i in range(10):
...     print(i, end=' ')
...     i = 5

0 1 2 3 4 5 6 7 8 9

 

1.请问下面代码打印的结果是什么?

>>> a, b, c = range(3, 10, 3)
>>> print(a + b + c)

18

这里range里面表达的意思是 从3开始到10 里面数字公差为3  所以 生成数字 分别是 3 6  9    对应 a b c  相加

 

2.请问下面代码打印的结果是什么?

>>> len(range(0, 10, 2))

len函数就是获取一个对象的长度    在这里面 就是识别 0 2 4 6 8 是有几个数字

 

 

3.请问下面代码打印的结果是什么?

>>> len("FishC") + len(110)

会报错 

len("FishC") 返回的是 5,因为字符串 "FishC" 共由 5 个字符构成。不过,len() 函数的参数需要是一个序列或者集合(才能够获取长度嘛),整数是不能作为其参数的。

 

4. 请问下面代码执行后,result 变量的值是多少?

>>> result = 0
>>> for each in range(-10, -100, -20):
... result += each

-250

 range(-10, -100, -20) 将生成一个从 -20 开始,到 -100(不包含)结束,步进跨度为 -20 的整数数列,即 -10, -30, -50, -70, -90。随后,通过迭代将该数列中每个元素进行相加,因此,结果便是 -250。

5. 请问下图中,红色涂抹的位置应该填写什么代码,程序才能如期执行?

 

continue

 

动动手:

0. 编写一个程序,求解 100~999 之间的所有水仙花数。

科普:

如果一个 3 位数等于其各位数字的立方和,则称这个数为水仙花数。例如:153 = 1^3 + 5^3 + 3^3,因此 153 就是一个水仙花数。

 

代码 1
for n in range(100,999):
    if (n // 100)** 3 + (n // 10 % 10) ** 3 + (n % 10)** 3 == n:
        print( n )


代码2
for i in range(100, 1000):
    sum = 0
    temp = i
    
    while temp:
        sum = sum + (temp % 10) ** 3
        temp //= 10
    
    if sum == i:
        print(i)

 

1.  判断一个整数是否为回文数。


回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数。

 

x = int(input("请输入一个正整数:"))

if x < 0 or (x % 10 == 0 and x != 0):
    print("不是回文数。")
else:
    revertedNumber = 0
    while x > revertedNumber:
        revertedNumber = revertedNumber * 10 + x % 10
        x //= 10

    if x == revertedNumber or x == revertedNumber // 10:
        print("是回文数。")
    else:
        print("不是回文数。")

 

posted @ 2022-06-30 16:14  DICEi  阅读(148)  评论(0)    收藏  举报