sanodin
Апрель 29, 2012 22:48:36
Мы учимся,Вы наставляете….указываете на ошибки,говорите как правильно…раздел для новичков, поэтому код надо оптимизировать и писать правильно,чему мы и учимся….ВСЮ ЖИЗНЬ
FishHook
Апрель 29, 2012 23:38:41
sanodin
Типа этого :
print "Hello, this is my program. Game in 21";
cmd = (raw_input('>>'));
import random
while cmd!='Exit':
def ran():
try:
# available in Python 2.0 and later
shuffle = random.shuffle
except AttributeError:
def shuffle(x):
for i in xrange(len(x)-1, 0, -1):
# pick an element in x[:i+1] with which to exchange x[i]
j = int(random.random() * (i+1))
x[i], x[j] = x[j], x[i]
cards = range(5,12)
shuffle(cards)
myhand = cards[:1]
return myhand
def ran1():
try:
# available in Python 2.0 and later
shuffle = random.shuffle
except AttributeError:
def shuffle(x):
for i in xrange(len(x)-1, 0, -1):
# pick an element in x[:i+1] with which to exchange x[i]
j = int(random.random() * (i+1))
x[i], x[j] = x[j], x[i]
cards = range(5,12)
shuffle(cards)
myhand = cards[:1]
return myhand
if cmd =='commands':
print '\nMenu:\n\ngogame\nsurrender\n';
cmd = (raw_input('>>'));
elif cmd == "surrender":
print "Your luser! ;)"
elif cmd == "go":
a=ran()
b=ran1()
if a > b:
print a,">",b
print "userone, WIN"
cmd = (raw_input('>>'));
elif a < b:
print a,"<",b
print "usertwo, WIN"
cmd = (raw_input('>>'));
else:
print a,"==",b
print "Userone = usertwo"
cmd = (raw_input('>>'));
Хотя сам я еще тот говнокодер детектед
Вы дважды определяете совершенно одинаковую функцию,
def shuffle(x):
for i in xrange(len(x)-1, 0, -1):
# pick an element in x[:i+1] with which to exchange x[i]
j = int(random.random() * (i+1))
x[i], x[j] = x[j], x[i]
Зачем?
И да, в чем смысл точки с зяпятой и оборачивания raw_input в скобки?
fata1ex
Апрель 29, 2012 23:45:41
- Импорты в начало.
- Определение функции в цикле даже не знаю в куда.
- Убрать точки из циклов.
- Можно вынести логику обработки ввода в функцию, которая работает со словарем {'message':function} для упрощения (для более сложной программы, полагаю, будет намного удобнее бесконечных elif).
- Названия переменных и функций поменять.
- Эээ, а функции еще и одинаковые?
- Для генерации рук использовать генераторы.
sanodin
Апрель 30, 2012 07:20:26
Да,все верно.
Я его код исправлял на предмет работоспособности,хотя,каюсь,ошибок там и правда валом.
Но в одном я не прав наверное,ТАКОЙ код ,как я написал,надо было не выставлять,ведь новичек примет за верный код,только из-за работоспособности скрипта.
Вот за то узнал еще кое что новое для себя,благодаря Вам и продолжению топика.
fata1ex
Апрель 30, 2012 12:04:55
Выкладывать код можно, спросив рядом совета по его качеству, чтобы новичок не думал, что это эталон. Тогда новичок увидит, как можно решить задачу другим способом, а вы (и новичок) выслушаете, что в вашем примере не нравится окружающим.
Удачи!
Dracula
Май 1, 2012 11:14:12
Всем большое спасибо. Скажите, я хочу заказать книгу.
Your text to link here…Название: Изучаем Python
Автор: Марк Лутц
Стоит ?! И скажите, с чего вы начинали.
fata1ex
Май 1, 2012 12:05:37
Если нужен бумажный учебник на русском, то альтернативы книгам Лутца практически нет (разве что Саммерфилд, 2009). Есть еще “Программирование” в двух томах с количество страниц over9000 и примерно такой же ценой. Выбирайте, книга - вещь хорошая. Особенно если с ней действительно работать.
Dracula
Май 1, 2012 12:26:56
fata1ex
Если нужен бумажный учебник на русском, то альтернативы книгам Лутца практически нет (разве что Саммерфилд, 2009). Есть еще “Программирование” в двух томах с количество страниц over9000 и примерно такой же ценой. Выбирайте, книга - вещь хорошая. Особенно если с ней действительно работать.
Можно и электронный вариант, главное на русском, хоть в школе по английскому и была 5, но мои попытки читать книги, в английском английском варианте, оказались четными.
cutwater
Май 1, 2012 15:27:58
На правах оффтопа.
Dracula
но мои попытки читать книги, в английском английском варианте, оказались четными.
Попробуйте нечетные попытки.
Dracula
Май 1, 2012 16:22:23
cutwater
На правах оффтопа.
Dracula
но мои попытки читать книги, в английском английском варианте, оказались четными.
Попробуйте нечетные попытки.
Попробую :J