<p>我对Python和一般编程非常陌生,所以如果代码很糟糕,问题很容易解决,请原谅。你知道吗</p>
<p>我编写了代码,允许用户根据3种不同的输入打印员工数据,允许用户从中进行选择。
用户可以选择的选项有:根据员工的工资单编号、最低和最高工资范围、他们的职称来挑选员工。你知道吗</p>
<p>我为格式化做了两个函数。第一个函数将文本文件的行转换为列表,然后第二个函数获取这些单独的列表并格式化它们。你知道吗</p>
<p>然后,代码请求用户输入文件名。如果找不到文件,他们可以再试一次。如果正确,则加载文件,然后运行函数以打印出整洁的表。你知道吗</p>
<p>然后询问用户要选择什么方法来选择特定的员工。他们有4个选项,3个在开始时提到,第四个是结束程序。你知道吗</p>
<p>我成功地得到了第一个选项打印出的员工没有麻烦,这是相同的第四个选项结束该计划。我几乎已经完成了第三个,我只需要找到一种方法打印的名字没有逗号。<strong>我的问题出在第二个选项中:如果员工的工资介于用户输入的最低和最高工资范围之间,那么如果范围不是整数,因为必须包含“£”符号,那么如何打印员工及其详细信息?</strong></p>
<p>这是密码。它是程序中最大的一块,因为我不知道如何使它正常工作-</p>
<pre><code>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)
</code></pre>
<p>如果minpay是50000英镑,maxpay是60000英镑,那么结果应该类似于(示例)<code>Simpson, Bart 12345 Consultant £55000</code></p>
<p><strong>编辑:设法让它工作。以下是代码</strong></p>
<pre><code>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")
</code></pre>