Тема: Прокритикуйте код
ось
Ви не увійшли. Будь ласка, увійдіть або зареєструйтесь.
Ласкаво просимо вас на україномовний форум з програмування, веб-дизайну, SEO та всього пов'язаного з інтернетом та комп'ютерами.
Будемо вдячні, якщо ви поділитись посиланням на Replace.org.ua на інших ресурсах.
Для того щоб створювати теми та надсилати повідомлення вам потрібно Зареєструватись.
Український форум програмістів → Python → Прокритикуйте код
Сторінки 1
Для відправлення відповіді ви повинні увійти або зареєструватися
Після вибору файлу треба натиснути ще "add file".
А якщо це код, то викладайте його прямо в тексті, в теґу code (кнопка <> над полем редагування). Якщо довгий - то додавайте ще spoiler (кнопка S).
def centre():
import webbrowser
webbrowser.open(r"http://dtckids.com.ua/dementiy/wp-content/uploads/2018/01/DTgo5w5W4AAлTLl.jpeg")
fask=input ("куда идём?")
if fask=="вправо":
b()
elif fask=="вверх":
a()
elif fask=="вниз":
c()
else :
print ("нету такого")
def a():
import webbrowser
webbrowser.open(r"http://dtckids.com.ua/dementiy/wp-content/uploads/2018/01/DTgo5w5W4AATLl.jpeg")
k=input ("куда идём?")
if k=="влево":
g()
elif k=="вверх":
j()
elif k=="вниз":
centre()
else :
print ("нету такого")
def b():
import webbrowser
webbrowser.open(r"http://dtckids.com.ua/dementiy/wp-content/uploads/2018/01/DTgo55W4AAлlLl-к.jpeg")
task=input ("куда идём?")
if task=="влево":
centre()
else :
print ("нету такого")
def c():
import webbrowser
webbrowser.open(r"http://dtckids.com.ua/dementiy/wp-content/uploads/2018/01/DTgo55W4AAлlTLl-пя.jpeg")
rask=input ("куда идём?")
if rask=="влево":
d()
elif rask=="вверх":
central()
elif rask=="вниз":
k()
else :
print ("нету такого")
def g():
import webbrowser
webbrowser.open(r"http://dtckids.com.ua/dementiy/wp-content/uploads/2018/01/DTgo55W4AAлlTLl.jpeg")
fask=input ("куда идём?")
if fask=="вправо":
a()
elif fask=="влево":
f()
else :
print ("нету такого")
def d():
import webbrowser
webbrowser.open(r"http://dtckids.com.ua/dementiy/wp-content/uploads/2018/01/DTgo55W4AAлlTLl-пія.jpeg")
fask=input ("куда идём?")
if fask=="вправо":
c()
else :
print ("нету такого")
def f():
import webbrowser
webbrowser.open(r"http://dtckids.com.ua/dementiy/wp-content/uploads/2018/01/DTgo5w5W4AAлlTLl.jpeg")
fask=input ("куда идём?")
if fask=="вправо":
g()
elif fask=="вниз":
e()
else :
print ("нету такого")
def e():
import webbrowser
webbrowser.open(r"http://dtckids.com.ua/dementiy/wp-content/uploads/2018/01/DTg5W4AAлlTLl.jpeg")
fask=input ("куда идём?")
if fask=="вверх":
f()
else :
print ("нету такого")
def k():
import webbrowser
webbrowser.open(r"http://dtckids.com.ua/dementiy/wp-content/uploads/2018/01/DTgo55W4AAлlTLl-я.jpeg")
fask=input ("куда идём?")
if fask=="вправо":
l()
elif fask=="вверх":
c()
else :
print ("нету такого")
def l():
import webbrowser
webbrowser.open(r"http://dtckids.com.ua/dementiy/wp-content/uploads/2018/01/DTgo55W4AAлlTLl-.jpeg")
fask=input ("куда идём?")
if fask=="влево":
k()
else :
print ("нету такого")
def j():
import webbrowser
webbrowser.open(r"http://dtckids.com.ua/dementiy/wp-content/uploads/2018/01/DTgo55W4AAлlTLl-копя.jpeg")
fask=input ("куда идём?")
if fask=="вправо":
s()
elif fask =="вниз":
a()
else:
print ("нету такого")
def s():
import webbrowser
webbrowser.open(r"http://dtckids.com.ua/dementiy/wp-content/uploads/2018/01/DTgo55W4AAлlTLl-коя.jpeg")
fask=input ("куда идём?")
if fask=="вправо":
i()
elif fask=="влево":
j()
else:
print ("нету такого")
def i():
import webbrowser
webbrowser.open(r"http://dtckids.com.ua/dementiy/wp-content/uploads/2018/01/DTgo55W4AAлlTLl-ко.jpeg")
fask=input ("куда идём?")
if fask=="влево":
s()
elif fask=="вниз":
h()
else :
print ("нету такого")
def h():
import webbrowser
webbrowser.open(r"http://dtckids.com.ua/dementiy/wp-content/uploads/2018/01/DTgo55W4AAлlTLl-к.jpeg")
if fask=="вверх":
i()
else :
print ("нету такого")
print ('loading...')
print ("управление:слова \"вверх,вниз,вправо,влево")
centre()
def centre(): import webbrowser webbrowser.open(r"http://dtckids.com.ua/dementiy/wp-content/uploads/2018/01/DTgo5w5W4AAлTLl.jpeg") fask=input ("куда идём?") if fask=="вправо": b() elif fask=="вверх": a() elif fask=="вниз": c() else : print ("нету такого") def a(): import webbrowser webbrowser.open(r"http://dtckids.com.ua/dementiy/wp-content/uploads/2018/01/DTgo5w5W4AATLl.jpeg") k=input ("куда идём?") if k=="влево": g() elif k=="вверх": j() elif k=="вниз": centre() else : print ("нету такого") def b(): import webbrowser webbrowser.open(r"http://dtckids.com.ua/dementiy/wp-content/uploads/2018/01/DTgo55W4AAлlLl-к.jpeg") task=input ("куда идём?") if task=="влево": centre() else : print ("нету такого") def c(): import webbrowser webbrowser.open(r"http://dtckids.com.ua/dementiy/wp-content/uploads/2018/01/DTgo55W4AAлlTLl-пя.jpeg") rask=input ("куда идём?") if rask=="влево": d() elif rask=="вверх": central() elif rask=="вниз": k() else : print ("нету такого") def g(): import webbrowser webbrowser.open(r"http://dtckids.com.ua/dementiy/wp-content/uploads/2018/01/DTgo55W4AAлlTLl.jpeg") fask=input ("куда идём?") if fask=="вправо": a() elif fask=="влево": f() else : print ("нету такого") def d(): import webbrowser webbrowser.open(r"http://dtckids.com.ua/dementiy/wp-content/uploads/2018/01/DTgo55W4AAлlTLl-пія.jpeg") fask=input ("куда идём?") if fask=="вправо": c() else : print ("нету такого") def f(): import webbrowser webbrowser.open(r"http://dtckids.com.ua/dementiy/wp-content/uploads/2018/01/DTgo5w5W4AAлlTLl.jpeg") fask=input ("куда идём?") if fask=="вправо": g() elif fask=="вниз": e() else : print ("нету такого") def e(): import webbrowser webbrowser.open(r"http://dtckids.com.ua/dementiy/wp-content/uploads/2018/01/DTg5W4AAлlTLl.jpeg") fask=input ("куда идём?") if fask=="вверх": f() else : print ("нету такого") def k(): import webbrowser webbrowser.open(r"http://dtckids.com.ua/dementiy/wp-content/uploads/2018/01/DTgo55W4AAлlTLl-я.jpeg") fask=input ("куда идём?") if fask=="вправо": l() elif fask=="вверх": c() else : print ("нету такого") def l(): import webbrowser webbrowser.open(r"http://dtckids.com.ua/dementiy/wp-content/uploads/2018/01/DTgo55W4AAлlTLl-.jpeg") fask=input ("куда идём?") if fask=="влево": k() else : print ("нету такого") def j(): import webbrowser webbrowser.open(r"http://dtckids.com.ua/dementiy/wp-content/uploads/2018/01/DTgo55W4AAлlTLl-копя.jpeg") fask=input ("куда идём?") if fask=="вправо": s() elif fask =="вниз": a() else: print ("нету такого") def s(): import webbrowser webbrowser.open(r"http://dtckids.com.ua/dementiy/wp-content/uploads/2018/01/DTgo55W4AAлlTLl-коя.jpeg") fask=input ("куда идём?") if fask=="вправо": i() elif fask=="влево": j() else: print ("нету такого") def i(): import webbrowser webbrowser.open(r"http://dtckids.com.ua/dementiy/wp-content/uploads/2018/01/DTgo55W4AAлlTLl-ко.jpeg") fask=input ("куда идём?") if fask=="влево": s() elif fask=="вниз": h() else : print ("нету такого") def h(): import webbrowser webbrowser.open(r"http://dtckids.com.ua/dementiy/wp-content/uploads/2018/01/DTgo55W4AAлlTLl-к.jpeg") if fask=="вверх": i() else : print ("нету такого") print ('loading...') print ("управление:слова \"вверх,вниз,вправо,влево") centre()
Я погано розбираюся в Python (хоча це єдина мова програмування яку я знаю), але дещо сказати можу. По-перше між якимось текстом і == (і взагалі будь-яким матем символом) бажано робити відступи. Це спрощує читання коду. По-друге мені здається, що застосовувати ваші створені функції при створенні нової функції - це неправильно. Це скоріш за все зменшує швидкість виконання коду і (в цьому я впевнений) в рази зменшує читабельність вашого коду. Я б рекомендував об'єднати всі функції у кінці, або зробити функцію в кінці, яка б об'єднувала б всі попередні (але по-моєму перший варіант все-таки кращий) і тоді її запустити, ніж так як ви...
Ну і не подобається, що присутня рос м, хоча це ваше особисте діло. Правила форуму ви виконуєте.
Можливо, я десь помиляюся.
0. Немає завдання; невідомо, чи програма працює правильно, якщо невідомо, як саме "правильно" вона має працювати.
1. Програма спілкується болгарською(?) мовою.
2. Назви функцій абсолютно безглузді.
3. Дуже багато повторів - порівнянь із однаковими рядками.
4. Одна бібліотека (webbrowser) імпортується багато разів.
Назви функцій абсолютно безглузді.
Я теж хотів сказати, але поки дійшов то вже забув
Одна бібліотека (webbrowser) імпортується багато разів.
Ви рекомендуєте demyshka2005 імпортувати одразу всю бібліотеку (надіюсь ви зрозуміли, що я маю на увазі, бо я щось не знаю як пояснити), щоб не повторювати імпорт кожного разу?(мені просто цікаво, можливо, пригодиться при написанні свого коду)
Так. Загальна практика - імпортувати залежності один раз на початку файлу. Звісно, можна і інакше, але це може створювати незручності через невизначеність, чи доступні вже потрібні класи та функції, чи ні. Ну і сам імпорт - не дуже швидка операція.
Ну і взагалі використання браузера - це... щонайменше overkill.
Ну і взагалі використання браузера - це... щонайменше overkill.
Чому? В професійних проектах і прогах браузер не використовується?
# координати ідуть: спершу вертикальна (y), потім горизонтальна (x)
# координата y зростає вниз
maze =["XXXXXXX",
"XXX___X",
"X___X_X",
"X_X__XX",
"XX__XXX",
"XXX__XX"]
pos_x = 3
pos_y = 3
def text_draw():
print('-'*len(maze[0]))
for y,line in enumerate(maze):
if y!=pos_y:
print(line)
else:
print(line[:pos_x]+'H'+line[pos_x+1:])
print('-'*len(maze[0]),end=' ')
while True:
text_draw()
step = input('UDLR: ')
if step.lower() in ('up','u'):
if maze[pos_y-1][pos_x]!='X':
pos_y -= 1
elif step.lower() in ('down','d'):
if maze[pos_y+1][pos_x]!='X':
pos_y += 1
elif step.lower() in ('left','l'):
if maze[pos_y][pos_x-1]!='X':
pos_x -= 1
elif step.lower() in ('right','r'):
if maze[pos_y][pos_x+1]!='X':
pos_x += 1
else:
break
і дуже раджу зав'язувати з рос. мовою. Якщо в школі змушують вчити, що робив ліцеїст Пушкін із малюнками петербурзьких красунь, то це ще не привід повторювати його сміливі досліди з язьіком.
Чи навіть так:
# координати ідуть: спершу вертикальна (y), потім горизонтальна (x)
# координата y зростає вниз
maze =["XXXXXXX",
"XXX___X",
"X___X_X",
"X_X__XX",
"XX__XXX",
"XXX__XX"]
class Point:
def __init__(self,x,y):
self.x = x
self.y = y
def __add__(self,other):
return Point(self.x+other.x,self.y+other.y)
def is_valid(self):
return maze[self.y][self.x]!='X'
shift = {'u':Point( 0,-1),
'd':Point( 0, 1),
'l':Point(-1, 0),
'r':Point( 1, 0)}
pos = Point(3,3)
def text_draw():
print('-'*len(maze[0]))
for y,line in enumerate(maze):
if y!=pos.y:
print(line)
else:
print(line[:pos.x]+'H'+line[pos.x+1:])
print('-'*len(maze[0]),end=' ')
try:
while True:
text_draw()
step = input('UDLR: ').lower()
if len(step)>1 and not step in ['up','down','left','right']:
raise KeyError
new_pos = pos + shift[step[0]]
if new_pos.is_valid():
print('Going',step)
pos = new_pos
else:
print('Wall found!')
except:
print('Bye!')
і дуже раджу зав'язувати з рос. мовою. Якщо в школі змушують вчити, що робив ліцеїст Пушкін із малюнками петербурзьких красунь, то це ще не привід повторювати його сміливі досліди з язьіком.
це так ,просто я живу в російськомовній сім'ї.
та планую зробити гру на трьох мовах.
А ще я десь два місяці взагалі вчу пайтон.
і дуже раджу зав'язувати з рос. мовою. Якщо в школі змушують вчити, що робив ліцеїст Пушкін із малюнками петербурзьких красунь, то це ще не привід повторювати його сміливі досліди з язьіком.
це так ,просто я живу в російськомовній сім'ї.
та планую зробити гру на трьох мовах.
А ще я десь два місяці взагалі вчу пайтон.
Якщо врахувати те, що ви так мало вивчаєте python. Я, якщо сумарно (бо був період коли зникла мотивація), вчу python вже місяці 3 - 3,5, то не набагато краще знаю його за вас.
Доречі я тут напарника для спільного вивчення шукаю... Не хочете разом зі мною вивчати python? http://replace.org.ua/topic/8979/
Сторінки 1
Для відправлення відповіді ви повинні увійти або зареєструватися