Уведомления

Группа в Telegram: @pythonsu

#1 Дек. 9, 2010 15:19:28

gnombdsm
От:
Зарегистрирован: 2010-12-09
Сообщения: 5
Репутация: +  0  -
Профиль   Отправить e-mail  

Новечку нужна помощь, пара лёгких задачек))

1. Дан номер месяца (1 — январь, 2 — февраль, …). Вывести название соответствующего времени года (“winter”, “spring”, “autumn”, “summer”)

2. Дан одномерный массив числовых значений, насчитывающий N элементов. Поменять местами элементы, стоящие на чётных и нечётных местах: А(1) с А(2), А (3) с А(4)



Офлайн

#2 Дек. 9, 2010 15:26:31

sp3
От:
Зарегистрирован: 2010-01-12
Сообщения: 405
Репутация: +  18  -
Профиль   Отправить e-mail  

Новечку нужна помощь, пара лёгких задачек))

>>> a = range(20)
>>>
>>> a
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19]
>>> for x in xrange(0,len(a),2):
... a[x],a[x+1] = a[x+1],a[x]
...
>>> a
[1, 0, 3, 2, 5, 4, 7, 6, 9, 8, 11, 10, 13, 12, 15, 14, 17, 16, 19, 18]
>>>
остальное сам



Офлайн

#3 Дек. 9, 2010 15:34:14

gnombdsm
От:
Зарегистрирован: 2010-12-09
Сообщения: 5
Репутация: +  0  -
Профиль   Отправить e-mail  

Новечку нужна помощь, пара лёгких задачек))

Спасибо sp3! На счёт первой разобрался))



Офлайн

#4 Янв. 12, 2011 10:47:33

gnombdsm
От:
Зарегистрирован: 2010-12-09
Сообщения: 5
Репутация: +  0  -
Профиль   Отправить e-mail  

Новечку нужна помощь, пара лёгких задачек))

та же задача, только чтобы массив вводился с клавиатуры, как это сделать??



Офлайн

#5 Янв. 12, 2011 12:25:42

igor.kaist
От:
Зарегистрирован: 2007-11-12
Сообщения: 1879
Репутация: +  3  -
Профиль   Отправить e-mail  

Новечку нужна помощь, пара лёгких задачек))

gnombdsm? использовать input или raw_input



Офлайн

#6 Янв. 12, 2011 15:08:45

gnombdsm
От:
Зарегистрирован: 2010-12-09
Сообщения: 5
Репутация: +  0  -
Профиль   Отправить e-mail  

Новечку нужна помощь, пара лёгких задачек))

это в принципе не важно



Офлайн

#7 Март 30, 2012 06:50:16

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

Новечку нужна помощь, пара лёгких задачек))

sp3
>>> a = range(20)
>>>
>>> a
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19]
>>> for x in xrange(0,len(a),2):
... a[x],a[x+1] = a[x+1],a[x]
...
>>> a
[1, 0, 3, 2, 5, 4, 7, 6, 9, 8, 11, 10, 13, 12, 15, 14, 17, 16, 19, 18]
>>>
остальное сам
Этот код даст ошибку при нечетной длине списка
>>> a=range(21)
>>> for x in xrange(0, len(a),2):
	a[x],a[x+1]=a[x+1],a[x]
Traceback (most recent call last):
  File "<pyshell#3>", line 2, in <module>
    a[x],a[x+1]=a[x+1],a[x]
IndexError: list index out of range
>>> 
Предлагаю несколько модифицировать
>>> a,result=range(21),[]
>>> for x in map(None,a[1::2],a[::2]):
	if x[0]: result+=x
	else: result.append(x[1])
	
>>> result
[1, 0, 3, 2, 5, 4, 7, 6, 9, 8, 11, 10, 13, 12, 15, 14, 17, 16, 19, 18, 20]



Офлайн

#8 Март 30, 2012 07:30:19

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

Новечку нужна помощь, пара лёгких задачек))

seasons=['winter','spring','summer','autumn']
num_months=range(1,13)
num_months.insert(0,num_months.pop(-1))
for i in range(1,13):
	print  i,'-->', seasons[num_months.index(i)/3]
1 --> winter
2 --> winter
3 --> spring
4 --> spring
5 --> spring
6 --> summer
7 --> summer
8 --> summer
9 --> autumn
10 --> autumn
11 --> autumn
12 --> winter



Офлайн

#9 Июль 1, 2012 20:43:02

alekzp
Зарегистрирован: 2012-06-14
Сообщения: 13
Репутация: +  1  -
Профиль   Отправить e-mail  

Новечку нужна помощь, пара лёгких задачек))

FishHook
Предлагаю несколько модифицировать
>>> a,result=range(21),[]
>>> for x in map(None,a[1::2],a[::2]):
	if x[0]: result+=x
	else: result.append(x[1])
	
>>> result
[1, 0, 3, 2, 5, 4, 7, 6, 9, 8, 11, 10, 13, 12, 15, 14, 17, 16, 19, 18, 20]

Такой вариант не работает на Python3.
for x in map(None,a[1::2],a[::2]):
TypeError: 'NoneType' object is not callable
Предлагаю просто проверять элемент на чётность:

line,result = range(22),[]
for x in line:
	if x % 2 == 0: result.append(x+1)
	else: result.append(x-1)
print(result)	

Но, чую, есть решение, которое, так сказать, более “pythonic”

Отредактировано alekzp (Июль 1, 2012 20:44:55)

Офлайн

#10 Июль 1, 2012 20:54:27

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

Новечку нужна помощь, пара лёгких задачек))

>>> a = [1,2,3,4,5]
>>> b = [6,7,8,9,10]
>>> map(None, a, b)
[(1, 6), (2, 7), (3, 8), (4, 9), (5, 10)]
>>> zip(a, b)
[(1, 6), (2, 7), (3, 8), (4, 9), (5, 10)]



Офлайн

Board footer

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

Powered by DjangoBB

Lo-Fi Version