Найти - Пользователи
Полная версия: Помогите новечку :)
Начало » Python для новичков » Помогите новечку :)
1 2 3 4 5
sanodin
Мы учимся,Вы наставляете….указываете на ошибки,говорите как правильно…раздел для новичков, поэтому код надо оптимизировать и писать правильно,чему мы и учимся….ВСЮ ЖИЗНЬ
FishHook
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

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

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

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

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

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

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

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

Попробуйте нечетные попытки.
Dracula
cutwater
На правах оффтопа.

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

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

Попробую :J
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