LINUX.ORG.RU

spisok="abcdefghigklmnopqrstuvwxyz"
sum_ai = 0
for i in spisok:
    ai = ord(i)
    sum_ai = sum_ai + ai
    print("для буквы %s ascii код равен %i" % (i, ai))

print("Total character code sum is %i" % sum_ai)
fat_angel ★★★★★
()
Ответ на: комментарий от fat_angel
sum_ai = sum_ai + ai

Посоны пишут так:

sum_ai += ai
А ещё лучше покурить map вместо цикла.

Алсо, mephistopheles, скажи, в этой книге в примерах переменные тоже транслитом названы? Если да - выброси книгу, если это твоя инициатива - сделай вдоль.

jessey
()
Ответ на: комментарий от jessey

Писать i=0 вместо i = 0 тоже не нужно.

anonymous
()
Ответ на: комментарий от jessey

если это твоя инициатива - сделай вдоль.

Какой ты злой, я же просто в интерактивном режиме практикуюсь, в реальной программе, разумеется, я транслитом называть ничего не буду.

mephistopheles ★★
() автор топика
Ответ на: комментарий от mephistopheles

Я не злой, я совершаю акт любви к людям, которым, возможно, когда-нибудь придётся поддерживать твой код.

в реальной программе, разумеется, я транслитом называть ничего не буду.

Это радует.

jessey
()
Ответ на: комментарий от mephistopheles

Интересно, почему я в интерактивном режими не использую транслит? Чем например «lst» тебя не устроило?

anonymous
()
Ответ на: комментарий от anonymous

Ну, наверное, потому, что в моих мыслях, пока еще, русский язык преобладает над английским и поэтому, мне было лень вспоминать это слово на английском языке. Фигню сморозил вообщем. Но ты понял.

mephistopheles ★★
() автор топика
Ответ на: комментарий от mephistopheles

Скажи честно, ты ведь скор отращиваешь? В любом вменяемом учебнике подобная хрень должна описываться, да чего уж там, в документации есть все, что нужно, чтобы ответить на твой вопрос.

anonymous
()
Ответ на: комментарий от anonymous

Говорю честно: на скор мне совершенно наплевать, я сюда не за поднятием ЧСВ захожу.

В учебнике это была задачка в конце параграфа, но я, обычно, читаю быстро и немного по диагонали, => пропустил ту часть, где это объяснялось.

Гуглить пробовал, что-то ничего не выдавало.

mephistopheles ★★
() автор топика
Ответ на: комментарий от jessey

Да. Ну не считая всяких php, с которым знаком совсем поверхностно.

mephistopheles ★★
() автор топика
Ответ на: комментарий от mephistopheles

я, обычно, читаю быстро и немного по диагонали, => пропустил ту часть, где это объяснялось.

Ну и зачем тогда читать?

kernelpanic ★★★★★
()
Ответ на: комментарий от kernelpanic

Ну, общую часть я усваиваю. Да и я, обычно, отдельные главы по несколько раз перечитываю и если что-то не понятно, консультируюсь с гуглом или людьми.

mephistopheles ★★
() автор топика
Ответ на: комментарий от kernelpanic

Чего набросился то? Учить приличию своих детей будешь, ясно? Что-то не нравится — не пиши в тред, тебя кто-то заставляет или что?

mephistopheles ★★
() автор топика
Ответ на: комментарий от mephistopheles

в реальной программе, разумеется, я транслитом называть ничего не буду.

Как показывает практика, так думать вредно. Хороший стиль, это хорошое мышление, а не следование правилам. Если тебе удобнее писать странно, то тут стоит задуматься. Ничего личного, когда-то меня тоже так в говно окунали мордой.

dizza ★★★★★
()
Ответ на: комментарий от dimon555

Идеологически лучше. Про p3 не в курсе, но почему бы ему не остаться? Или ты про reduce, который не выпилен, а убран в библиотеку?

jessey
()
Ответ на: комментарий от jessey

Аватар и юзернейм как раз таки как у школьника.

anonymous
()
Ответ на: комментарий от Zorn

А никакая. Гвидо решил, что редьюс - это непонятно и сложно выглядит. Вот так и живем.

jessey
()
Ответ на: комментарий от dimon555

чем лучше? а в python3 map остался?

А куда он денется с подводной лодки? Но идейно вроде правильно использовать однострочные генераторы, которые в точности то же самое, что мап с фильтром.

А всё потому, что гвидо ниасилятор

aedeph_ ★★
()
Ответ на: комментарий от Kalashnikov

map будет вторым циклом.

Брысь читать, что такое итераторы.

Еще взгляни на решение бегемота и анонимуса.

aedeph_ ★★
()
Ответ на: комментарий от Kalashnikov

Тогда тут мы влетает в следующее ниасиляторство гвидо, с дурацким ограничением на лямбды.

Однако при желании извратиться тоже можно:

import sys
reduce(lambda x,y: (x[0]+y[0], ""), (map(lambda x: ((ord(x), sys.stdout.write(x + " ASCII:"+  str(ord(x)) + "\n"))), spisok)))[0]
aedeph_ ★★
()
Ответ на: комментарий от Kalashnikov

sys.stdout.write(x) - костыль для функционального print x (в третьем не нужен).

На самом деле красивше буде так:

sum(map(lambda x: ord(x)+(lambda y: 0)(sys.stdout.write(x + " ASCII:"+  str(ord(x)) + "\n")), spisok))
aedeph_ ★★
()

В модуле string есть:

string.ascii_letters
string.ascii_lowercase
string.ascii_uppercase.

Можно использовать вместо spisok. //Просто к сведению для начинающего.

deterok ★★★★★
()
Ответ на: комментарий от aedeph_

и вот после такого вам оторвут руки и засунут известно куда :)

да и вообще, map это красиво, удобно, но _если_я_не_ошибаюсь_ медленнее for

ggrn ★★★★★
()
Ответ на: комментарий от ggrn

Ошибаешься конечно.

for итерирует, map возвращает итератор.

Что быстрее: быстрая сортировка или быстрое преобразование фурье?

aedeph_ ★★
()
Ответ на: комментарий от jessey

Давайте не будем скатывать ЛОР в сосач, это прежде всего, нормальный ресурс, где можно спросить совета, а не Бред.

mephistopheles ★★
() автор топика
Ответ на: комментарий от aedeph_

И еще, ответить, что по-твоему быстрее в худшем случае (то есть мы проходим весь генератор и for):

def f(x):
    # do something with x
    return y

lst = [...]

# list тут затем, что мы должны же что-то сделать с мапом, пробежимся по нему просто
list(map(f, lst)) # a)
for x in lst: # b)
    # do something with x
a) или b)? Обоснуй ответ.

anonymous
()
Ответ на: комментарий от anonymous
aedeph@aedeph-305V4A-305V5A:~/sandbox$ cat 1.py 
import math
lst=range(10000000)
nlst=[]
f = (lambda x : math.acos(math.sin(x**2)))
nlst=list(map(f,lst))

aedeph@aedeph-305V4A-305V5A:~/sandbox$ cat 2.py 
import math
lst=range(10000000)
nlst=[]
f = (lambda x : math.acos(math.sin(x**2)))
for i in lst:
	nlst.append(f(i))

aedeph@aedeph-305V4A-305V5A:~/sandbox$ time python 1.py 

real	0m9.727s
user	0m8.757s
sys	0m0.504s

aedeph@aedeph-305V4A-305V5A:~/sandbox$ time python 2.py 

real	0m10.930s
user	0m10.553s
sys	0m0.348s
aedeph_ ★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.