2016-12-10 7 views
0

私は2つのプログラムで構成される問題に取り組んでいます。最初のプログラムは、労働者のID、時間単位の賃金率、および作業時間をテキストファイルに4回書き込みます。第2プログラムは、プログラム#1のテキストファイルから入力された情報を取り込み、作業者のIDと作業者の総収入を表示する。Python - 文字列から特定の情報を引き出す方法は?

私は、とにかく(この問題はから来ているラボはあなたの出力は以下のようになります方法の例を示します)

を最初のプログラムを得て、実行、および出力は、することになっていますどのようにしましたここで最初のプログラムのための私のコードは次のとおりです。

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() 

は今、私の質問は - 私は&時間が働い時給を使用できるように、私は、戻って、それぞれの変数にそれぞれの行を変換するために、第2のプログラムを書くだろうか総賃金を計算するには?

+0

カンマのような区切り文字を追加してフィールドを区切ることで、人生を少し楽にすることを検討してください。これにより、フィールドにスペースが含まれている場合に特に値を簡単に区切ることができます。 – scotty3785

答えて

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が複数回入力されていないことも前提としています。

関連する問題