Уведомления

Группа в Telegram: @pythonsu

#1 Май 25, 2026 16:22:00

LoopyNiggle
Зарегистрирован: 2026-05-15
Сообщения: 1
Репутация: +  0  -
Профиль   Отправить e-mail  

Как улучшить код?

 #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!")

Офлайн

#2 Май 25, 2026 19:02:54

Alex.Pro.
От: Марик
Зарегистрирован: 2024-11-13
Сообщения: 99
Репутация: +  2  -
Профиль   Отправить e-mail  

Как улучшить код?

Такой вариант лучше?

  #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!")

Офлайн

#3 вчера 23:39:11

py.user.next
От:
Зарегистрирован: 2010-04-29
Сообщения: 10026
Репутация: +  857  -
Профиль   Отправить e-mail  

Как улучшить код?

Код должен быть правильным, понятным и легко меняемым.

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

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

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


tags: code rules



Отредактировано py.user.next (вчера 23:59:16)

Офлайн

#4 вчера 23:51:58

py.user.next
От:
Зарегистрирован: 2010-04-29
Сообщения: 10026
Репутация: +  857  -
Профиль   Отправить e-mail  

Как улучшить код?

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

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

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

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



Отредактировано py.user.next (вчера 23:58:39)

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version