Python 스크립트의 논리 문제 [닫기]

Python 스크립트의 논리 문제 [닫기]
#!/usr/bin/env python3
# tarchiver.py
# Purpose: Creates a tar archive of a directory
#
# USAGE: ./tarchiver.py
#
# Author:
# Date January 15th 2023
import os

correct_answer = 'yes'
correct_answer2 = 'no'
compression1 = 'gzip'
compression2 = 'bzip2'
compression3 = 'xzip'

print("Please enter the directory you would like to archive")
directory = input()
print("Please enter the name of the archive")
name = input()
print("Would you like your archive to be compressed?")
answer = input()
while correct_answer != answer or correct_answer2 != answer:
    answer = input()
    print('Please enter either yes or no')
    if answer == correct_answer or answer == correct_answer2:
        break
if answer == 'yes':
    print("What kind of compression do you want?")
    print("gzip, bzip2, or xzip?")
    answer2 = input()
    while compression1 != answer2 or compression2 != answer2 or compression3 != answer2:
        print('Please enter a valid answer')
        answer2 = input()
        if answer2 == compression1 or answer == compression2 or answer == compression3:
            break
    if answer2 == "gzip":
        os.system(f"tar -cvPzf {name} {directory}")
    if answer2 == "bzip2":
        os.system(f"tar -cvPjf {name} {directory}")
    if answer2 == "xzip":
        os.system(f"tar -cvPJf {name} {directory}")

코드의 논리에 대해 질문이 있습니다. 압축하고 "yes"를 입력할지 묻는 메시지가 나타나면 코드가 다음 부분으로 계속 진행되기 전에 두 번 입력해야 합니다. 또한 입력 유형을 요청하고 "gzip"을 입력하면 먼저 이것이 잘못된 입력이므로 답을 수정해야 한다는 메시지가 표시되지만 동일한 내용을 입력한 다음 나머지 부분을 계속 실행합니다. 암호. 이것은 학교 프로젝트이고 저는 Python을 처음 접하므로 이 문제에 대한 확실한 해결책이 있다면 용서해 주십시오.

답변1

while compression1 != answer2 or compression2 != answer2 or compression3 != answer2: Answer2는 최대 하나의 압축 유형과만 같을 수 있으므로 적어도 두 개와 같지는 않습니다. 따라서 이 줄은 다음과 같습니다. while True:

그리고 항상 압축 유형을 입력해야 합니다 break.

관련 정보