我正在研究一个由两个程序组成的问题。第一个程序会将工人的ID,每小时工资率和工作时数写入文本文件四次。第二个程序将从程序#1的文本文件中输入信息,显示工人的ID和工人的总工资。
我已经启动并运行了第一个程序,输出是它应该是什么样的(这个问题来自的实验室为您提供了输出应该如何的示例)
无论如何,这是第一个程序的代码:
def main():
output_file = open ('workers.txt', 'w')
count = 0
while count <= 3:
id = input("Enter worker ID: ")
rate = input("Enter hourly payrate: ")
hours = input("Enter number of work hours: ")
output_file.write(id + ' ')
output_file.write(rate + ' ')
output_file.write(hours + '\n')
count = count + 1
output_file.close()
read_file = open ('workers.txt', 'r')
empty_str = ''
line = read_file.readline()
while line != empty_str:
print(line)
line = read_file.readline()
read_file.close()
main()
现在我的问题是 - 如何编写第二个程序,以便将每一行转换回各自的变量,这样我就可以使用每小时付费&amp;工作时间来计算总工资?
答案 0 :(得分:1)
使用str.split()
将每一行分成一个列表,并将该列表解压缩为变量:
with open('workers.txt') as f:
for line in f:
worker_id, rate, hours = line.split()
gross_pay = float(rate) * float(hours)
print('ID: {}, gross pay: {:.2f}'.format(worker_id, gross_pay))
这假设用户不会输入任何空格。它还假定不会多次输入相同的工作者ID。