书写一个python程序,不能报7后者不能含7
时间: 2024-05-14 07:16:40 浏览: 3
当然,我很愿意为你解答这个问题。以下是一种可能的实现方式:
```python
def no_seven(number):
"""
判断一个数是否包含数字 7 或者是 7 的倍数
"""
return number % 7 == 0 or '7' in str(number)
def generate_numbers(n):
"""
生成 1 到 n 之间不含数字 7 的数
"""
numbers = []
for i in range(1, n + 1):
if not no_seven(i):
numbers.append(i)
return numbers
if __name__ == '__main__':
n = int(input())
no_seven_numbers = generate_numbers(n)
print(len(no_seven_numbers))
```
这个程序首先定义了两个函数,`no_seven` 函数用于判断一个数是否包含数字 7 或者是 7 的倍数,`generate_numbers` 函数用于生成 1 到 n 之间不含数字 7 的数。在 `generate_numbers` 函数中,我们遍历 1 到 n 所有的数,对于每个数都调用 `no_seven` 函数判断是否包含数字 7 或者是 7 的倍数,如果不是,就将该数加入到列表中。最后返回列表。
在主函数中,我们首先读入一个整数 n,然后调用 `generate_numbers` 函数生成 1 到 n 之间不含数字 7 的数的列表,最后输出这个列表的长度。
请注意,这只是一种可能的实现方式,不一定是最优解。如果你有其他实现方式,也欢迎分享。