Уведомления

Группа в Telegram: @pythonsu

#1 Фев. 19, 2015 17:49:46

Xryst
Зарегистрирован: 2015-01-30
Сообщения: 68
Репутация: +  0  -
Профиль   Отправить e-mail  

Не получается вывести данные в обратном порядке

Здраствуйте не подскажите, что не тк в моем коде:

   import sys 
   sentense = sys.argv[-1]
   for word in (sys.argv[1:])[::-1]:
  sentense += " " + word
  print sentense

Ввод даных: qwe asd zxc 123, а вывод: 123 123 zxc asd qwe

Правильный вывод:123 zxc asd qwe, и пробела в конце рядка не должно быть.
P.S. Что я не так делаю не пойму(( подскажите! Спасибо.

Офлайн

#2 Фев. 19, 2015 18:21:48

ajib6ept
От: От: От: От: От: От: От: От:
Зарегистрирован: 2013-08-04
Сообщения: 297
Репутация: +  26  -
Профиль   Отправить e-mail  

Не получается вывести данные в обратном порядке

sentense = sys.argv[-1]

Сперва идет присвоедние последнего аргумента к переменной sentense, поэтому дублируется.

import sys
sentense = ''
for word in (sys.argv[1:])[::-1]:
    sentense += " " + word
print sentense

И объединять список наверно все-таки лучше через join

import sys
print ' '.join(sys.argv[1:][::-1])



_________________________
Python golden rule: Do not PEP 8 unto others; only PEP 8 thy self.
Don't let PEP 8 make you insanely intolerant of other people's code.

Офлайн

#3 Фев. 19, 2015 18:49:57

Xryst
Зарегистрирован: 2015-01-30
Сообщения: 68
Репутация: +  0  -
Профиль   Отправить e-mail  

Не получается вывести данные в обратном порядке

ajib6ept
import sys
sentense = ''
for word in (sys.argv):
sentense += “ ” + word
print sentense

Простите за тупой вопрос, а как сделать, что бы не дублировалось….

Офлайн

#4 Фев. 19, 2015 18:53:24

Xryst
Зарегистрирован: 2015-01-30
Сообщения: 68
Репутация: +  0  -
Профиль   Отправить e-mail  

Не получается вывести данные в обратном порядке

А, спасибо все я понял, вот убрать

sentense = sys.argv[-1]
…потому как он прописан в цикле
for word in (sys.argv[1:])[::-1] :
правильно размишляю??

Отредактировано Xryst (Фев. 19, 2015 18:59:21)

Офлайн

#5 Фев. 19, 2015 19:01:00

botinag
Зарегистрирован: 2014-02-20
Сообщения: 179
Репутация: +  35  -
Профиль   Отправить e-mail  

Не получается вывести данные в обратном порядке

import sys 
print ' '.join(sys.argv[1:][::-1])

Отредактировано botinag (Фев. 19, 2015 19:02:05)

Офлайн

#6 Фев. 19, 2015 19:11:06

ajib6ept
От: От: От: От: От: От: От: От:
Зарегистрирован: 2013-08-04
Сообщения: 297
Репутация: +  26  -
Профиль   Отправить e-mail  

Не получается вывести данные в обратном порядке

правильно размишляю??

Да



_________________________
Python golden rule: Do not PEP 8 unto others; only PEP 8 thy self.
Don't let PEP 8 make you insanely intolerant of other people's code.

Офлайн

#7 Фев. 19, 2015 22:03:04

terabayt
От: Киев
Зарегистрирован: 2011-11-26
Сообщения: 1099
Репутация: +  103  -
Профиль   Отправить e-mail  

Не получается вывести данные в обратном порядке

botinag

>>> a = [0, 1, 2, 3, 4]
>>> a[1:][::-1]
[4, 3, 2, 1]
>>> a[:0:-1]
[4, 3, 2, 1]



————————————————
-*- Simple is better than complex -*-

Офлайн

#8 Фев. 19, 2015 22:27:19

Xryst
Зарегистрирован: 2015-01-30
Сообщения: 68
Репутация: +  0  -
Профиль   Отправить e-mail  

Не получается вывести данные в обратном порядке

Ребята спасибо, вопрос закрыт…

import sys
sentense = ''
sentense = sys.argv[1:]
sentense.reverse()
result = sentense[0]
for word in (sentense[1:])[::-1]:
   result = result + ' ' + word
print result

Отредактировано Xryst (Фев. 19, 2015 22:35:05)

Офлайн

#9 Фев. 20, 2015 12:08:51

TroSer
От: Харьков
Зарегистрирован: 2013-11-13
Сообщения: 65
Репутация: +  3  -
Профиль   Отправить e-mail  

Не получается вывести данные в обратном порядке

Как по мне, так предложенный вариант

import sys
print ' '.join(sys.argv[:0:-1])
выглядит симпатичнее

Офлайн

#10 Фев. 20, 2015 22:20:12

py.user.next
От:
Зарегистрирован: 2010-04-29
Сообщения: 9890
Репутация: +  854  -
Профиль   Отправить e-mail  

Не получается вывести данные в обратном порядке

>>> import sys
>>> 
>>> def f(lst):
...     print ' '.join(lst[::-1])
... 
>>> sys.argv = ['', 'a', 'b', 'c']
>>> f(sys.argv[1:])
c b a
>>>



Офлайн

Board footer

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

Powered by DjangoBB

Lo-Fi Version