import openpyxl import pandas wb = openpyxl.load_workbook('./22自动化3花名册.xlsx') ws = wb['Sheet1'] k = 24 ord_num = [] name = [] number = [] def exchange(tabs): poped_names=tabs.pop(k) tabs.insert(1,poped_names) return tabs for row in ws.iter_rows(min_row = 1, min_col = 1, max_row = 31, max_col = 3): ord_num.append(row[0].value) name.append(row[1].value) number.append(row[2].value) ord_num = exchange(ord_num) name = exchange(name) number = exchange(number) del name[0] del ord_num[0] del number[0] for i in range(30): print(ord_num[i],name[i],number[i]) import pandas as pd dataframe = pd.DataFrame({'序号':ord_num,'姓名':name,'学号':number}) dataframe.to_csv("names.csv",index=False,sep=',') 要求修改代码,以不同的方式成功输入两位同学的信息后成功输出
时间: 2024-02-13 11:00:17 浏览: 22
好的,我来帮你修改代码。首先,你需要让用户输入两位同学的姓名和学号,可以使用 Python 内置的 `input()` 方法来实现。请将代码替换为以下内容:
```
import openpyxl
import pandas as pd
wb = openpyxl.load_workbook('./22自动化3花名册.xlsx')
ws = wb['Sheet1']
k = 24
ord_num = []
name = []
number = []
def exchange(tabs):
poped_names = tabs.pop(k)
tabs.insert(1, poped_names)
return tabs
for row in ws.iter_rows(min_row=1, min_col=1, max_row=31, max_col=3):
ord_num.append(row[0].value)
name.append(row[1].value)
number.append(row[2].value)
ord_num = exchange(ord_num)
name = exchange(name)
number = exchange(number)
del name[0]
del ord_num[0]
del number[0]
for i in range(30):
print(ord_num[i], name[i], number[i])
# 获取两位同学的信息
name1 = input("请输入第一位同学的姓名:")
number1 = input("请输入第一位同学的学号:")
name2 = input("请输入第二位同学的姓名:")
number2 = input("请输入第二位同学的学号:")
# 将两位同学的信息添加到列表中
ord_num.append(ord_num[-1] + 1)
name.append(name1)
number.append(number1)
ord_num.append(ord_num[-1] + 1)
name.append(name2)
number.append(number2)
# 构造 DataFrame 并保存为 CSV 文件
dataframe = pd.DataFrame({'序号': ord_num, '姓名': name, '学号': number})
dataframe.to_csv("names.csv", index=False, sep=',')
```
这样,用户就可以输入两位同学的姓名和学号,程序会自动将这两位同学的信息添加到列表中,并保存为 CSV 文件。请注意,由于 `exchange()` 方法在列表中插入了一个元素,因此需要将 `ord_num`、`name` 和 `number` 列表的长度加 1,才能正确地添加两位同学的信息。