Найти - Пользователи
Полная версия: Как улучшить код?
Начало » Python для новичков » Как улучшить код?
1
LoopyNiggle
 #Rock_Paper_Scissors
print("Welcome to Rock_Paper_Scissors! press 1 for Rock, 2 for Paper and 3 for Scissors" )
#dict
gg = {1:"rock", 2:"paper", 3:"scissors"}
#user_input
x = int(input())
print(f"you chose: {x}, {gg[x]}")
#bot_input
import random
y = int(random.randint(1,3))
print(f"bot chose: {y}, {gg[y]}")
#winning conditions
if y == x:
    print("its a tie!")
elif y == 1 and x == 2:
    print("you won!")
elif y == 1 and x == 3:
    print("you lost!")
elif y == 2 and x == 3:
    print("you won!")
elif y == 2 and x == 1:
    print("you lost!")
elif y == 3 and x == 1:
    print("you won!")
elif y == 1 and x == 2:
    print("you lost!")
Alex.Pro.
Такой вариант лучше?
  #Rock_Paper_Scissors
print("Welcome to Rock_Paper_Scissors! press 1 for Rock, 2 for Paper and 3 for Scissors" )
#dict
gg = {1:"rock", 2:"paper", 3:"scissors"}
#user_input
x = int(input())
print(f"you chose: {x}, {gg[x]}")
#bot_input
import random
y = int(random.randint(1,3))
print(f"bot chose: {y}, {gg[y]}")
#winning conditions
if y == x:
    print("its a tie!")
elif (x-y) == 1 or (x-y) == -2:
    print("you won!")
else:
    print("you lost!")
py.user.next
Код должен быть правильным, понятным и легко меняемым.

Правильным - работать без ошибок.

Понятным - быть без загадок и головоломок.

Легко меняемым - изменение кода в одном месте не должно приводить к необходимости изменения кода в других местах.


tags: code rules
py.user.next
Alex.Pro.
  
gg = {1:"rock", 2:"paper", 3:"scissors"}
И вот мы, например, добавили четвёртое значение во множество значений - какой-нибудь янтарь или велосипед - что происходит с кодом?

Вот как раз все слабые места в коде поплывут.

Вот эта головоломка
Alex.Pro.
  
elif (x-y) == 1 or (x-y) == -2:
сломается и начнёт неправильно работать, при этом по ней никак не скажешь, что она сломана, потому что чтобы её понять, её надо сначала всю разгадать в уме, прочитать её недостаточно.

Головоломки - это такие места, где легко прячутся ошибки. Вот она спряталась - и всё, ты её не видишь. Соответственно, если код состоит из головоломок, то и ошибок в нём миллион, и их не видно.
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