저는 코드가 끔찍하고 해결하기가 쉽지 않은 경우에 대단히 파이썬과 프로그래밍에 익숙합니다.Integer Range 사이에서 문자열을 출력하는 방법 - Python 3
나는 사용자가 선택할 수있는 3 가지 입력을 기반으로 직원 데이터를 인쇄 할 수 있도록 코드를 작성했습니다. 사용자가 사용할 수있는 옵션은 급여 번호를 기준으로 직원을 선택하는 것입니다. 최소 및 최대 급여 범위; 그들의 직책.
서식을 지정하는 데 두 가지 기능을 사용했습니다. 첫 번째는 텍스트 파일의 줄을 목록으로 변환 한 다음 두 번째 기능은 개별 목록을 가져 와서 형식을 지정합니다.
그런 다음 코드는 사용자에게 파일 이름을 입력하도록 요청합니다. 파일을 찾을 수 없으면 다시 시도합니다. 올 Y 르면 파일이로드 된 후 함수를 통해 실행되어 깔끔한 표를 인쇄합니다.
그런 다음 특정 직원을 선택하기 위해 어떤 방법을 선택할지 묻는 메시지가 표시됩니다. 그들은 4 가지 옵션이 주어지며 처음에는 3 가지가 언급되고 4 번은 프로그램을 끝내는 것입니다.
프로그램을 끝내기위한 네 번째 옵션과 동일하게 번거롭지 않게 직원을 인쇄하는 첫 번째 옵션을 성공적으로 얻을 수있었습니다. 거의 세 번째가 완성되었으므로 쉼표없이 이름을 인쇄하는 방법을 찾아야합니다. 내 문제는 두 번째 옵션 내에 있습니다 : '£'기호를 포함해야하므로 범위가 정수가 아닌 경우 사용자가 입력 한 최소 및 최대 급여 범위 사이에있는 직원 및 해당 세부 사항을 인쇄하는 방법 ?
다음은 코드입니다. minpay가 £ 50,000하고 £ 60000
을 maxpay한다면 는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
해야 - 난 그냥 단서가 없기 때문에 그것이 제대로 작동하는 방법을 프로그램에서 가장 큰 덩어리입니다
편집 : 작동되도록 관리했습니다. 코드는 다음과 같습니다.
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가 포함되어야합니다. [여기] (https://stackoverflow.com/help/mcve)에 대한 내용을 읽을 수 있습니다. 또한 '급여'는 'int'가 될 수 있습니다. 'str'으로 변환하고 인쇄 할 때 관련 기호를 추가하십시오. – jjj
내가 틀렸다면 나를 정정하십시오.하지만 len (minpay) 또는 len (maxpay)> maxSalary :'당신이 예상하는대로 해결할 것이라고 생각하지 않습니다.'valueOne> maxLimit 또는 valueTwo> maxLimit :' –
과 같이 각 값을 별도로 확인해야합니다. 코드 스 니펫을 좀 더 작고 읽기 쉽게 만들려고했습니다. 지난 시간 전체를 복사하는 것에 대해 미안합니다. – deiviux90