Модераторы: Daevaorn

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> разветвление в цикле, как записать в одну строку? 
:(
    Опции темы
PyS
Дата 29.9.2006, 12:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 149
Регистрация: 21.8.2006
Где: г. Алматы (Казахс тан)

Репутация: нет
Всего: 1



Всем привет!
Пожалуйста, помогите записать следующий код в одну строку:
Код

for i in range(10):
   if i==1: 
       print 1 
   elif i==3: 
       print 7**2+9
   else: 
       print 5**6

PM MAIL   Вверх
albertn
Дата 29.9.2006, 12:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 368
Регистрация: 17.7.2006
Где: г. Ставрополь

Репутация: 30
Всего: 34



Получи:
Код

print '\n'.join(map(lambda i:str(i==1 and 1 or i==3 and 7**2+9 or 5**6),range(10)))

Можно еще конечно через sys.stdout.write, но тогда нарушается концепция функционального программирования.
PM WWW ICQ   Вверх
PyS
Дата 29.9.2006, 12:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 149
Регистрация: 21.8.2006
Где: г. Алматы (Казахс тан)

Репутация: нет
Всего: 1



а вот такой?
Код

i=1
if i==1: 
    print 1 
elif i==3: 
    print 7**2+9
else: 
    print 5**6

PM MAIL   Вверх
Artemios
Дата 29.9.2006, 12:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 405
Регистрация: 14.8.2006
Где: Саратов, Россия

Репутация: 18
Всего: 50



Код

[i==1 and 1 or i==3 and 7**2+9 or 5**6 for i in range(10)]



--------------------
fib = 1: 1: [ x+y | (x,y) <- zip fib (tail fib) ]
PM MAIL   Вверх
albertn
Дата 29.9.2006, 12:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 368
Регистрация: 17.7.2006
Где: г. Ставрополь

Репутация: 30
Всего: 34



Цитата(PyS @ 29.9.2006,  12:37)
а вот такой?
Код

i=1
if i==1: 
    print 1 
elif i==3: 
    print 7**2+9
else: 
    print 5**6

Код

i=1
print i==1 and 1 or i==3 and 7**2+9 or 5**6

PM WWW ICQ   Вверх
Artemios
Дата 29.9.2006, 12:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 405
Регистрация: 14.8.2006
Где: Саратов, Россия

Репутация: 18
Всего: 50



Ой, сорри, не увидел, уже все написали smile


--------------------
fib = 1: 1: [ x+y | (x,y) <- zip fib (tail fib) ]
PM MAIL   Вверх
PyS
Дата 29.9.2006, 12:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 149
Регистрация: 21.8.2006
Где: г. Алматы (Казахс тан)

Репутация: нет
Всего: 1



albertn,  спасибо!

что-то я привел слишком простой код:
Код

i=1
if i==1: 
    print 1 
elif i==3: 
    exec 'i = 7**2+9'
    print i
else: 
   e=eval('5**6')
print 'e = ', e


в вветвлениях разные операторы или блоки операторов

Это сообщение отредактировал(а) PyS - 29.9.2006, 12:48
PM MAIL   Вверх
albertn
Дата 29.9.2006, 12:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 368
Регистрация: 17.7.2006
Где: г. Ставрополь

Репутация: 30
Всего: 34



Цитата(PyS @ 29.9.2006,  12:46)
albertn,  спасибо!

что-то я привел слишком простой код:
Код

i=1
if i==1: 
    print 1 
elif i==3: 
    exec 'i = 7**2+9'
    print i
else: 
   e=eval('5**6')
print 'e = ', e


в вветвлениях разные операторы или блоки операторов

Эт ты конечно загнул. В принципе это можно, но а нужно ли оно???
PM WWW ICQ   Вверх
Artemios
Дата 29.9.2006, 12:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 405
Регистрация: 14.8.2006
Где: Саратов, Россия

Репутация: 18
Всего: 50



Код

exec "e=0\ni=1\nif i==1: \n\tprint 1\nelif i==3: \n\texec 'i = 7**2+9'\n\tprint i\nelse: \n\te=eval('5**6')\nprint 'e = ', e"

smile


--------------------
fib = 1: 1: [ x+y | (x,y) <- zip fib (tail fib) ]
PM MAIL   Вверх
albertn
Дата 29.9.2006, 12:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 368
Регистрация: 17.7.2006
Где: г. Ставрополь

Репутация: 30
Всего: 34



Можно немного поприкалываюсь smile
Код

exec "e=0\ni=1\nif i==1:\n    print i\nelif i==3:\n    exec 'i = 7**2+9'\n    print i\nelse:\n    e=eval('5**6')\nprint 'e = ', e"


Добавлено @ 12:56 
Artemios, прям одновременно, но у тебя ошибки
PM WWW ICQ   Вверх
PyS
Дата 29.9.2006, 12:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 149
Регистрация: 21.8.2006
Где: г. Алматы (Казахс тан)

Репутация: нет
Всего: 1



Artemios, спасибо, но как-то не читабельно. smile
+ у меня иногда "гонит" exec 
PM MAIL   Вверх
proDiva
Дата 29.9.2006, 13:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 130
Регистрация: 19.9.2006
Где: КЧР, Россия

Репутация: 7
Всего: 7



До чего дошла наука!  Хитро придумано......... smile  тогда мою прогу можно в три строчки переписать))))
PM MAIL ICQ   Вверх
Artemios
Дата 29.9.2006, 13:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 405
Регистрация: 14.8.2006
Где: Саратов, Россия

Репутация: 18
Всего: 50



Цитата(albertn @  29.9.2006,  12:55 Найти цитируемый пост)
но у тебя ошибки 

где? я с консоли копировал, прежде проверив...


--------------------
fib = 1: 1: [ x+y | (x,y) <- zip fib (tail fib) ]
PM MAIL   Вверх
PyS
Дата 29.9.2006, 13:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 149
Регистрация: 21.8.2006
Где: г. Алматы (Казахс тан)

Репутация: нет
Всего: 1



Цитата(proDiva @  29.9.2006,  20:03 Найти цитируемый пост)
До чего дошла наука!  Хитро придумано......... smile  тогда мою прогу можно в три строчки переписать)))) 

просто читать её будет сложно.
PM MAIL   Вверх
albertn
Дата 29.9.2006, 13:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 368
Регистрация: 17.7.2006
Где: г. Ставрополь

Репутация: 30
Всего: 34



Цитата(Artemios @  29.9.2006,  13:12 Найти цитируемый пост)
где? я с консоли копировал, прежде проверив... 

Пробелы не там вставил smile
PM WWW ICQ   Вверх
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Python: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0539 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.