如何在整数范围之间打印字符串 - Python 3
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何在整数范围之间打印字符串 - Python 3相关的知识,希望对你有一定的参考价值。
我对Python和编程很新,所以请原谅我,如果代码很糟糕,问题很容易解决。
我编写了代码,允许用户根据3种不同的输入打印员工数据,允许用户选择。用户可以选择的选项是根据员工的工资号码选择员工;最低和最高工资范围;他们的职称。
我为格式化做了两个函数。第一个将文本文件的行转换为列表,然后第二个函数抓取那些单独的列表并格式化它们。
然后代码请求用户输入文件名。如果找不到该文件,他们可以再试一次。如果正确,则加载文件,然后运行函数以打印出整齐的表格。
然后询问用户他们想要选择哪种方法来选择特定员工。它们有4个选项,3个在开始时提到,第4个是刚刚结束程序。
我成功地获得了第一个选项,可以毫不费力地打印出员工,结束程序的第四个选项也是如此。我几乎完成了第三个,我只需要找到一种方法来打印名称而不用逗号。我的问题在于第二个选项:如果员工及其详细信息介于用户输入的最小和最大薪资范围之间,如果范围不是整数,那么如何打印员工及其详细信息,因为它必须包含“£”符号?
这是代码。这是该计划中最大的一块,因为我不知道如何让它正常工作 -
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)
结果应该是(例如)Simpson, Bart 12345 Consultant £55000
,如果minpay是50000英镑和maxpay£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("
")
最简单的解决方案:不要求£char ;-)
符合您要求的解决方案是更改线路
if len(minpay) or len(maxpay) > maxSalary :
喜欢的东西
if int(minpay[1:]) > int(maxSalary[1:]) or int(maxpay[1:]) > int(maxSalary[1:]) :
检查字符串的数值(你的情况对我来说似乎有误)
您可以将所有“£”符号替换为字符串中的“”。
YourString.replace("£", "")
以上是关于如何在整数范围之间打印字符串 - Python 3的主要内容,如果未能解决你的问题,请参考以下文章
(Python 3.7)如何使用 tkinter 打印消息字符之间有延迟?
如何在Python中将字符映射到整数范围[-128,127]?
如何在 Python 中使用 json.dumps() 将整数打印为十六进制字符串