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」と入力するかどうかを確認するメッセージが表示されたら、コードが次の部分に進む前に2回入力する必要があります。また、入力タイプを要求して「gzip」と入力すると、まずこれが誤った入力であるため、答えを修正する必要があるというメッセージが表示されますが、同じ内容を入力して残りの部分を実行し続けます。パスワード。これは学校のプロジェクトであり、私はPythonに初めて触れるので、この問題に対する明確な解決策がある場合は許してください。

ベストアンサー1

while compression1 != answer2 or compression2 != answer2 or compression3 != answer2: Answer2 は最大 1 つの圧縮タイプと同じであるため、少なくとも 2 つと同じではありません。したがって、この行は次のようになります。 while True:

そして常に圧縮タイプを入力する必要がありますbreak

おすすめ記事