Професионална програма
Loading...
+ Нов въпрос
andrey_bg avatar andrey_bg 4 Точки

Ти го правиш все едно винаги входът ти е текст състоящ се от три думи- ами ако е повече?

Eто редактиран кода ти- само съм добавил един лист res, където запазваш резултата дума след дума, за да не ти променям много кода :) 

text = input().split()


def swap(c, i, j):
    c = list(c)
    x=c[i]
    c[i], c[j] = c[j], x
    return "".join(c)

res=[]

for key in text:
    list_zero = []
    list_element = []
    [list_zero.append(i) for i in key if i.isdigit()]
    num = int("".join(list_zero))
    num = chr(num)
    list_element.insert(0,num)
    [list_element.append(j) for j in key if not j.isdigit()]

    res.append(swap(list_element, 1, - 1))
    res.append(" ")
    list_zero.clear();
    list_element.clear();

res="".join(res)

print(res)
0
fumanbest avatar fumanbest 10 Точки

Mersi mnogo !

0
fumanbest avatar fumanbest 10 Точки

Super, mersi !

1
fumanbest avatar fumanbest 10 Точки

Здравейте ! Бихте ли пояснили как в принта едната функция извиква другата, която е вмъкната в скобите на оператора и защо обратното не е възможно ?

print(" ".join([switch_letters(int_to_chr(word)) for word in input().split()]))

Просто сега навлизам във функциите. Извинявам се, ако въпросът е доста тъп !

0
DeveloperEnthusiast avatar DeveloperEnthusiast 303 Точки

Защо да не е възможно?

print(' '.join([int_to_chr(switch_letters(word)) for word in input().split()]))
#  input - 72olle
#  output - eoll2

Просто не прави каквото трябва да прави. Първо обръща индексите на '2' и 'е' и става това грозното, защото прави char(7) - http://www.asciitable.com/

 

Действията се извършват от вътре навън и e същото като да си дефинираме една функция от сорта на:

#  input - 72olle

def decipher(word):
    word = int_to_chr(word)  # първо сменя '72' с главно 'H' - Holle
    word = switch_letters(word)  # обръща 1-ви и последен индекс
    return word  # връща Hello

# decipher(word) е същото като switch_letters(int_to_chr(word))

print(' '.join([decipher(word) for word in input().split()]))
#  ouput - Hello
print(' '.join([int_to_chr(switch_letters(word)) for word in input().split()]))
#  ouput - Hello

 

0
manish45 avatar manish45 0 Точки

in this content is very good and awesiome thanks for sharing and more tech knolege for this like How to Delete Whatsapp Group and more useful article provided thanks.

0
snow27 avatar snow27 16 Точки

https://pastebin.com/FmcpCXxq/

0
21/10/2020 10:06:26
Julianh12 avatar Julianh12 2 Точки

Ето ви едно друго решение,работя със стрингове и накрая правя един лист от всички с всички изброение думи,само че със сменени букви и конвертирани числа в символи:

 

new_list=input().split(" ")

empty_string=''
empty=""
index=0
top_list=[]
for i in range(len(new_list)):
  string = new_list[i]
  for ch in string:
    if ch.isdigit()==True:
      empty_string+=ch

  empty_string = chr(int(empty_string))
  empty += ''.join(i for i in string if not i.isdigit())
  empty = empty[-1] + empty[1:-1] + empty[0]
  top_list.append(empty_string + empty)
  empty_string=''
  empty=''
for i in range(len(top_list)):
  print(top_list[i],end=' ')

0