Уведомления

Группа в Telegram: @pythonsu

#1 Апрель 29, 2012 22:48:36

sanodin
От:
Зарегистрирован: 2011-06-16
Сообщения: 515
Репутация: +  31  -
Профиль   Отправить e-mail  

Помогите новечку :)

Мы учимся,Вы наставляете….указываете на ошибки,говорите как правильно…раздел для новичков, поэтому код надо оптимизировать и писать правильно,чему мы и учимся….ВСЮ ЖИЗНЬ

Офлайн

#2 Апрель 29, 2012 23:38:41

FishHook
От:
Зарегистрирован: 2011-01-08
Сообщения: 8312
Репутация: +  568  -
Профиль   Отправить e-mail  

Помогите новечку :)

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 в скобки?



Офлайн

#3 Апрель 29, 2012 23:45:41

fata1ex
От:
Зарегистрирован: 2009-07-11
Сообщения: 732
Репутация: +  52  -
Профиль   Отправить e-mail  

Помогите новечку :)


- Импорты в начало.
- Определение функции в цикле даже не знаю в куда.
- Убрать точки из циклов.
- Можно вынести логику обработки ввода в функцию, которая работает со словарем {'message':function} для упрощения (для более сложной программы, полагаю, будет намного удобнее бесконечных elif).
- Названия переменных и функций поменять.
- Эээ, а функции еще и одинаковые?
- Для генерации рук использовать генераторы.



Отредактировано fata1ex (Апрель 29, 2012 23:51:08)

Офлайн

#4 Апрель 30, 2012 07:20:26

sanodin
От:
Зарегистрирован: 2011-06-16
Сообщения: 515
Репутация: +  31  -
Профиль   Отправить e-mail  

Помогите новечку :)

Да,все верно.
Я его код исправлял на предмет работоспособности,хотя,каюсь,ошибок там и правда валом.
Но в одном я не прав наверное,ТАКОЙ код ,как я написал,надо было не выставлять,ведь новичек примет за верный код,только из-за работоспособности скрипта.
Вот за то узнал еще кое что новое для себя,благодаря Вам и продолжению топика.

Отредактировано sanodin (Апрель 30, 2012 07:24:47)

Офлайн

#5 Апрель 30, 2012 12:04:55

fata1ex
От:
Зарегистрирован: 2009-07-11
Сообщения: 732
Репутация: +  52  -
Профиль   Отправить e-mail  

Помогите новечку :)

Выкладывать код можно, спросив рядом совета по его качеству, чтобы новичок не думал, что это эталон. Тогда новичок увидит, как можно решить задачу другим способом, а вы (и новичок) выслушаете, что в вашем примере не нравится окружающим.

Удачи!



Офлайн

#6 Май 1, 2012 11:14:12

Dracula
Зарегистрирован: 2012-04-27
Сообщения: 17
Репутация: +  0  -
Профиль   Отправить e-mail  

Помогите новечку :)

Всем большое спасибо. Скажите, я хочу заказать книгу. Your text to link here…

Название: Изучаем Python
Автор: Марк Лутц

Стоит ?! И скажите, с чего вы начинали.

Отредактировано Dracula (Май 1, 2012 11:21:59)

Офлайн

#7 Май 1, 2012 12:05:37

fata1ex
От:
Зарегистрирован: 2009-07-11
Сообщения: 732
Репутация: +  52  -
Профиль   Отправить e-mail  

Помогите новечку :)

Если нужен бумажный учебник на русском, то альтернативы книгам Лутца практически нет (разве что Саммерфилд, 2009). Есть еще “Программирование” в двух томах с количество страниц over9000 и примерно такой же ценой. Выбирайте, книга - вещь хорошая. Особенно если с ней действительно работать.



Отредактировано fata1ex (Май 1, 2012 12:06:21)

Офлайн

#8 Май 1, 2012 12:26:56

Dracula
Зарегистрирован: 2012-04-27
Сообщения: 17
Репутация: +  0  -
Профиль   Отправить e-mail  

Помогите новечку :)

fata1ex
Если нужен бумажный учебник на русском, то альтернативы книгам Лутца практически нет (разве что Саммерфилд, 2009). Есть еще “Программирование” в двух томах с количество страниц over9000 и примерно такой же ценой. Выбирайте, книга - вещь хорошая. Особенно если с ней действительно работать.

Можно и электронный вариант, главное на русском, хоть в школе по английскому и была 5, но мои попытки читать книги, в английском английском варианте, оказались четными.

Офлайн

#9 Май 1, 2012 15:27:58

cutwater
От:
Зарегистрирован: 2009-01-08
Сообщения: 444
Репутация: +  19  -
Профиль   Отправить e-mail  

Помогите новечку :)

На правах оффтопа.

Dracula
но мои попытки читать книги, в английском английском варианте, оказались четными.

Попробуйте нечетные попытки.



Офлайн

#10 Май 1, 2012 16:22:23

Dracula
Зарегистрирован: 2012-04-27
Сообщения: 17
Репутация: +  0  -
Профиль   Отправить e-mail  

Помогите новечку :)

cutwater
На правах оффтопа.

Dracula
но мои попытки читать книги, в английском английском варианте, оказались четными.

Попробуйте нечетные попытки.

Попробую :J

Офлайн

Board footer

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

Powered by DjangoBB

Lo-Fi Version