如何打印整数范围3之间的字符串

2024-09-23 22:18:04 发布

您现在位置:Python中文网/ 问答频道 /正文

我对Python和一般编程非常陌生,所以如果代码很糟糕,问题很容易解决,请原谅。你知道吗

我编写了代码,允许用户根据3种不同的输入打印员工数据,允许用户从中进行选择。 用户可以选择的选项有:根据员工的工资单编号、最低和最高工资范围、他们的职称来挑选员工。你知道吗

我为格式化做了两个函数。第一个函数将文本文件的行转换为列表,然后第二个函数获取这些单独的列表并格式化它们。你知道吗

然后,代码请求用户输入文件名。如果找不到文件,他们可以再试一次。如果正确,则加载文件,然后运行函数以打印出整洁的表。你知道吗

然后询问用户要选择什么方法来选择特定的员工。他们有4个选项,3个在开始时提到,第四个是结束程序。你知道吗

我成功地得到了第一个选项打印出的员工没有麻烦,这是相同的第四个选项结束该计划。我几乎已经完成了第三个,我只需要找到一种方法打印的名字没有逗号。我的问题出在第二个选项中:如果员工的工资介于用户输入的最低和最高工资范围之间,那么如果范围不是整数,因为必须包含“£”符号,那么如何打印员工及其详细信息?

这是密码。它是程序中最大的一块,因为我不知道如何使它正常工作-

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英镑,maxpay是60000英镑,那么结果应该类似于(示例)Simpson, Bart 12345 Consultant £55000

编辑:设法让它工作。以下是代码

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

Tags: the函数代码用户fieldinputif选项
2条回答

最简单的解决方案:不要要求提供£char;-)

一个符合您需求的解决方案是更改行

if len(minpay) or len(maxpay) > maxSalary :

比如说

if int(minpay[1:]) > int(maxSalary[1:]) or int(maxpay[1:]) > int(maxSalary[1:]) :

它检查字符串的数值(我觉得你的条件似乎是错误的)

可以将字符串中的所有“£”符号替换为“”。你知道吗

YourString.replace("£", "")

相关问题 更多 >