私はPythonとプログラミング一般にはとても新しいので、コードがひどく、問題はむしろ簡単に解決できれば嬉しいです。整数範囲間の文字列を印刷する方法 - Python 3
私は、ユーザーが従業員のデータを3つの異なる入力に基づいて印刷することを許可するコードを作成しました。これらの入力から選択することができます。 ユーザーが使用できるオプションは、給与計算番号に基づいて従業員を選ぶことです。最低および最高給与範囲。彼らの仕事のタイトル。
私は書式設定のために2つの関数を作成しました。最初のものはテキストファイルの行をリストに変換し、2つ目の関数はそれらの個々のリストを取得してフォーマットします。
コードは、ユーザーにファイル名の入力を要求します。ファイルが見つからない場合、ファイルは再試行されます。それが正しければ、ファイルが読み込まれ、次に機能を実行してきれいな表を印刷します。
次に、特定の従業員を選択するためにどの方法を選択するか尋ねられます。彼らは4つのオプションが与えられ、3つは最初に言及され、4つ目はプログラムを終了することです。
私は、プログラムを終了するための4番目のオプションと同じように、面倒なく従業員を印刷するための最初のオプションを正常に取得できました。私はほぼ3番目のものを完成させました。名前をカンマなしで印刷する方法を見つける必要があります。 私の問題は2番目の選択肢の中にあります。従業員とその詳細が、 '£'記号を含む必要があるため、範囲が整数でない場合、ユーザーが入力した最小給与範囲と最大給与範囲の間にある場合、 ?
ここにコードがあります。私はちょうどそれが正常に動作させるためにどのよう見当もつかないので、それはプログラムの最大のチャンクだ -
def detailsPrint(field) : #takes tuple and prints
print("{:30}" "{:6}" "{:15}" "{:7}".format(field[3] + ", " + field[4], field[0], field[2], "£" + field[1]))
if display == 2 :
maxSalary = "£1000000"
minpay = input("Enter the minimum pay : ")
maxpay = input("Enter the maximum pay : ")
if len(minpay) and len(maxpay) < maxSalary :
for s in employeeList :
if s[1] >= minpay :
detailsPrint(s)
結果がminpayは£50000であることをした場合(例)Simpson, Bart 12345 Consultant £55000
ようなものになると£60000
編集:それを機能させるために管理されます。ここでは、文字列の「」への標識をすべてを置き換える「£」でしたコード
if display == 2 :
x = False
maxSalary = 1000000
minpay = int(input("Enter the minimum pay: "))
maxpay = int(input("Enter the maximum pay: "))
if int(minpay) > int(maxSalary) or int(maxpay) > int(maxSalary) :
x = False
print("No employees earn over £1000000. Try again.")
if int(minpay) or int(maxpay) < int(maxSalary) :
for s in employeeList :
if int(s[1]) >= minpay and int(s[1]) <= maxpay :
detailsPrint(s)
x = True
if x == False :
print("No employees could be found within that range. Try again")
print("\n")
あなたの質問にはmcveが含まれていなければなりません。あなたは[here](https://stackoverflow.com/help/mcve)について読むことができます。また、 'salary'は' int'でもかまいません。それを 'str'に変換し、それを印刷したいときに関連するシンボルを追加するだけです。 – jjj
もし私が間違っていたら私を訂正してください。もしあなたが期待している通りに 'len(minpay)またはlen(maxpay)> maxSalary:'が解決するとは思いません。'if valueOne> maxLimitやvalueTwo> maxLimitのように、それぞれの値を別々にチェックする必要があります。' –
コードスニペットを少しコンパクトにして読みやすくするために、私は試しました。前回のこと全部をコピーして申し訳ありません。 – deiviux90