用python生成一个包含数字1,2,3,…,99的列表,并输出该列表;接着,输入一个2~9之间的正整数,查找列表中是否存在有这个数的倍数,若存在,将其从原列表删除,并将其添加到一个新列表,最后输出删除后的列表和新列表。
时间: 2023-09-14 11:05:29 浏览: 128
### 回答1:
好的,您的问题是关于Python编程的。下面是代码实现:
```python
#生成包含数字1,2,3,...,99的列表
lst = list(range(1,100))
print("原始列表为:", lst)
#输入一个2~9之间的正整数
num = int(input("请输入2~9之间的正整数:"))
if num < 2 or num > 9:
print("输入有误!")
else:
new_lst = [] #新列表
i = 0 #下标
while i < len(lst):
if lst[i] % num == 0: #存在倍数
new_lst.append(lst.pop(i))
else:
i += 1
print("删除后的列表为:", lst)
print("新列表为:", new_lst)
```
输出结果为:
```
原始列表为: [1, 2, 3, ..., 98, 99]
请输入2~9之间的正整数:4
删除后的列表为: [1, 2, 3, 5, 7, ..., 95, 97, 99]
新列表为: [4, 8, 12, ..., 96]
```
### 回答2:
首先,我们可以使用range函数生成一个包含数字1,2,3,…,99的列表,并将其赋值给一个变量。
```python
numbers = list(range(1, 100))
```
接下来,需要用户输入一个2~9之间的正整数,我们可以使用input函数来获取用户输入,并使用int函数将输入转换为整数,并将其赋值给一个变量。
```python
factor = int(input('请输入一个2~9之间的正整数:'))
```
然后,我们可以使用for循环遍历刚刚生成的列表,并使用取余操作符(%)判断当前元素是否为输入正整数的倍数。如果是倍数,则将该元素从原列表中删除,并将其添加到一个新列表。
```python
deleted_numbers = []
new_numbers = []
for number in numbers:
if number % factor == 0:
numbers.remove(number)
deleted_numbers.append(number)
new_numbers.append(number)
```
最后,我们可以分别输出删除后的列表和新列表。
```python
print('删除后的列表:', numbers)
print('新列表:', new_numbers)
```
完整代码如下:
```python
numbers = list(range(1, 100))
factor = int(input('请输入一个2~9之间的正整数:'))
deleted_numbers = []
new_numbers = []
for number in numbers:
if number % factor == 0:
numbers.remove(number)
deleted_numbers.append(number)
new_numbers.append(number)
print('删除后的列表:', numbers)
print('新列表:', new_numbers)
```
### 回答3:
可以使用以下代码实现:
```python
# 生成包含数字1到99的列表
num_list = list(range(1, 100))
print("初始列表:", num_list)
# 输入一个2到9之间的正整数
n = int(input("请输入一个2到9之间的正整数:"))
# 查找列表中是否存在n的倍数,并删除添加到新列表
new_list = []
for num in num_list:
if num % n == 0:
new_list.append(num)
num_list.remove(num)
print("删除后的列表:", num_list)
print("新列表:", new_list)
```
请注意,初始列表的范围是1到99,而不是1到100。同时,代码中使用的是`num_list.remove(num)`而不是`del num_list[num]`,因为`del`语句需要输入要删除的元素的索引,而`.remove()`方法可以直接删除指定的元素。最后,`num_list`和`new_list`都是列表类型。