0

私はプログラミングは初めてですが、Pythonを引き受けることにしました。

ユーザーがログに記録した時間に関するこの csv ファイルは、おおよそ次のようになります (ただし、約 200 行が含まれています)。

ユーザー、プロジェクト、時間 ユーザー1、プロジェクト A、
5ユーザー 1、プロジェクト B
、10ユーザー 2、プロジェクト A、
7ユーザー 2、プロジェクト
B、12`

前のものに依存するいくつかの raw_inputs を介して、そこからデータを抽出したいと思います。例えば。完全なリストを見たいかどうかを尋ねることから始めます. はいの場合は、すべてを印刷して閉じます. 答えが「いいえ」の場合は、次の raw_input に進みます。表示するユーザーを入力します。

私はいくつかのコードを持っていますが、それがまだ本当に基本的なものであることは知っていますが、私はこれに慣れていないので、解決策を見つけることができませんでした. 助けていただければ幸いです..

import csv
reader = csv.reader(open("loggedhours.csv", "rb"))
Team = raw_input("Do you want to see detailed team numbers? Y/N: ")

if Team =="y":
    for User, Project, Hours in reader:
        print User, Project, Hours

else:
    print "ok"
    print ""

User = raw_input("Enter user ID you wish to check: ")

if User == User in reader:
    for User, Project, Hours in reader:
        print User
else:
    print "ok"

明らかに、2 番目の raw_input の直前に行が抜けているため、プログラムが終了します。

しかし、最初の部分でも、答え == y の場合は正しい結果が得られますが、答え != y の場合は正しい結果が得られません。else部品が機能していません。

そこに間違いがあるのは明らかですが、正しい道に私を導くことができれば、私は大歓迎です!

4

3 に答える 3

2

ヤコブの答えはよく読んでいます。「間違い」への答えとして:

if User == User in reader

これは明らかに間違っています。User == Useris は、Trueオブジェクトに含まれる可能性が低いreaderです。

を使用する代わりに、空行を印刷する場合は、次のようにしprint ""ます。

print

また、変数名に大文字を使用するたびに、子猫がどこかで死んでしまいます。PEP8を読み、子猫を救ってください。

于 2011-02-18T11:14:39.270 に答える
2

csv の行から dict を作成できます。

teams = {}
reader = csv.reader(open("loggedhours.csv", "rb"))
for team in reader:
    teams[team[0]] = (team[1], team[2])

def print_teamnumbers():
    for user in teams:
        print "%s: %s" % (user, teams[user])

def specific_lookup(user_id):
    print teams.get(user_id, "User not found") 
于 2011-02-18T10:36:45.020 に答える
0

Python プログラムを終了する場合は、次を使用しますsys.exit: Python ドキュメント

于 2011-02-18T10:40:17.967 に答える