找出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])
二、元组解析式
print(*(i for i in range(100, 1000) if (i%10 + i//10%10) % 10 == i//100) # 元组解析式,返回iteration(迭代器)对象,要用*打破她的“壳”,不然只会打印iyeration的内存地址。
三、for 代码略
先定义一个函数判定符题的三位数,查找1000内符题的三位数,仍然可以用解析式或者for循环。
res = [x for x in range(100, 1000) if (x % 10 + x // 10 % 10) % 10 == x % 100]
print(res)