关于#python#的问题:找出1000内满足下面条件的数:个位数字与十位数字之和除以10所得余数刚好是其百位数字

找出1000内满足下面条件的数:个位数字与十位数字之和除以10所得余数刚好是其百位数字。要用for

1、范围 100~999:range(100, 1000) # range()是前包后不含,不含1000。
2、用取余“%”获取个位,如 45 % 10 # 余数是5
3、用整除“//”结合取余,获取十位、百位,如:
456//10%10 # 十位5,整除45,45%10,得5
3456//100%100、478//100%100,都是4
4、可以用for循环也可以用解析式

一、列表解析式

print([i for i in range(100, 1000) if (i%10 + i//10%10) % 10 == i//100%10])

输出:

img

二、元组解析式

print(*(i for i in range(100, 1000) if (i%10 + i//10%10) % 10 == i//100) # 元组解析式,返回iteration(迭代器)对象,要用*打破她的“壳”,不然只会打印iyeration的内存地址。

输出:

img

三、for 代码略


另:也可以用字符串切片分离三位数的个、十、百位。

  先定义一个函数判定符题的三位数,查找1000内符题的三位数,仍然可以用解析式或者for循环。

代码

img

输出

img

res = [x for x in range(100, 1000) if  (x % 10 + x // 10 % 10) % 10 == x % 100]
print(res)