Найти - Пользователи
Полная версия: Как правильно оформить магию кода?
Начало » Python для новичков » Как правильно оформить магию кода?
1
jobsdata
Есть такой код:
cash = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
random.shuffle(cash)
cash = list("".join(map(str, cash[:4])))
x = ""
pos1 = 0
while x != cash:
    x = input("Введите число: \n")
    if not x.isdigit():
        print("В строке содержатся не цирры!\n")
        continue
    if len(x) > 4 or len(x) < 4:
        print("Введите 4-х значное число!\n")
        continue
    if len(x) != len(set(x)):
        print("В Вашем числе содержится два одинаковых числа!\n")
        continue
    x = list(x)
    result_1 = list(zip(x,cash))
     
    for i in result_1:
        if i[0] == i[1]:
            pos1 += 1
        
    result_2 = [i for i in x if i in cash]
    print ("""["""+ str(pos1) +""":""" + str(len(result_2)) + """]\n""" )

Пример:
В cash попало число 2345.
Человек вводит 1367, число 3 совпало по позиции, в pos1 = 1, мне выводит что 1 совпадение. Если я введу 2356, будет 2 совпадения. И если я введу 1987, то по идеи будет pos1 = 0, но в нем уже предыдущие совпадения. Вот как сбросить pos1 на 0 если нет совпадений? Или как правильно оформить код? Не могу понять. Спасибо.

P.S. На чудо-юдо код не обращайте внимание
py.user.next
import random
 
cash = list(range(10))
random.shuffle(cash)
cash = "".join(map(str, cash[:4]))
x = ""
print(cash)
while x != cash:
    x = input("Введите число: \n")
    if not x.isdigit():
        print("В строке содержатся не цифры!\n")
        continue
    if len(x) != 4:
        print("Введите 4-х значное число!\n")
        continue
    if len(x) != len(set(x)):
        print("В Вашем числе содержится две одинаковых цифры!\n")
        continue
    pos = sum(i[0] == i[1] for i in zip(x, cash))
    result = sum(i in cash for i in x)
    print("[{}:{}]".format(pos, result))
jobsdata
py.user.next
Вообще огонь Спасибо большое. Я тоже сам сделал, поместил pos1 = 0 в цикл while
Shaman
cash = list(range(10))
random.shuffle(cash)
cash = "".join(map(str, cash[:4]))
Можно заменить на
cash = ''.join(random.sample('0123456789', 4))
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB