Занятия по ПИТОНу. Занятие 5. Строки

Автор: | 17.10.2020

Сайт: http://pythontutor.ru/lessons/str/problems/slices

Задача «Делаем срезы»

Условие

Дана строка.

Сначала выведите третий символ этой строки.

Во второй строке выведите предпоследний символ этой строки.

В третьей строке выведите первые пять символов этой строки.

В четвертой строке выведите всю строку, кроме последних двух символов.

В пятой строке выведите все символы с четными индексами (считая, что индексация начинается с 0, поэтому символы выводятся начиная с первого).

В шестой строке выведите все символы с нечетными индексами, то есть начиная со второго символа строки.

В седьмой строке выведите все символы в обратном порядке.

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

В девятой строке выведите длину данной строки.

Входные данные: Abrakadabra

s = input()  
print(s[2]) r
print(s[-2]) r
print(s[:5]) Abrak
print(s[:-2]) Abrakadab
print(s[::2]) Arkdba
print(s[1::2]) baaar
print(s[::-1]) arbadakarbA
print(s[::-2]) abdkrA
print(len(s))  11

Задача «Количество слов»

Условие

Дана строка, состоящая из слов, разделенных пробелами. Определите, сколько в ней слов. Используйте для решения задачи метод count.

a=input()
s=1
for i in range(0, len(a)):
if a[i]==” “:
s+=1
print(s)
#Решение разработчиков
print(input().count(‘ ‘) + 1)
# Видны все преимущества Питона

Если входные данные Hello world – ответ 2

3. Задача «Две половинки»

Условие

Дана строка. Разрежьте ее на две равные части (если длина строки — четная, а если длина строки нечетная, то длина первой части должна быть на один символ больше). Переставьте эти две части местами, результат запишите в новую строку и выведите на экран.

При решении этой задачи не стоит пользоваться инструкцией if.

Решение.

import math

a=input()

s=len(a)

l=math.ceil(s/2)

print(a[l::]+a[0:l])

 Решение разработчиков

s = input()

print(s[(len(s) + 1) // 2:] + s[:(len(s) + 1) // 2])

Если входные данные – Hello, то результат будет  – loHel

Для Qwerty результат – rtyQwe

Примеры решений участников

s=input()

c=len(s)

#print(c)

if c%2==0:

    b=c/2

    z=int(b)

    #print(b)

       aa=s[:z]

    ab=s[z:]

    print(ab+aa)

 if c%2!=0:

    b=c/2

    b=b+1

    z=int(b)

    #print(z)

    aa=s[:z]

    ab=s[z:]

    print(ab+aa)

Ещё решение

from math import *

S = input()

l = len(S)

num = int(l)

num1 = int(ceil(num / 2))

num2 = int(floor(num – num1))

str = S[: num1]

str2 = S[num1:]

print(str2 + str)

4. Задача «Переставить два слова»

Условие

Дана строка, состоящая ровно из двух слов, разделенных пробелом. Переставьте эти слова местами. Результат запишите в строку и выведите получившуюся строку.

При решении этой задачи не стоит пользоваться циклами и инструкцией if.

Во всех задачах считывайте входные данные через input() и выводите ответ через print().

Входные данные

Выходные данные

Hello, world!

world! Hello,

Решение разработчиков

s = input()

first_word = s[:s.find(‘ ‘)]

second_word = s[s.find(‘ ‘) + 1:]

print(second_word + ‘ ‘ + first_word)

Примеры решений участниками:

s=input()

i=s.find(” “)

print(s[i+1::]+” “+s[0:i+1])

n = input()

a = n.find(‘ ‘)

x = n[0:a]

y = n[a:]

print(y + ‘ ‘ + x)

a,b=input().split()

print(b,a)

5. Задача «Первое и последнее вхождения»

Условие

Дана строка. Если в этой строке буква f встречается только один раз, выведите её индекс. Если она встречается два и более раз, выведите индекс её первого и последнего появления. Если буква f в данной строке не встречается, ничего не выводите.

При решении этой задачи не стоит использовать циклы.

Во всех задачах считывайте входные данные через input() и выводите ответ через print().

Входные данные:

  • comfort –Ответ 3
  • office –Ответ 1 2
  • fffffffffffffff – Ответ 0 14
  • afafafafafafafa – Ответ 1 13

Решение разработчиков

s = input()

if s.count(‘f’) == 1:

    print(s.find(‘f’))

elif s.count(‘f’) >= 2:

    print(s.find(‘f’), s.rfind(‘f’))

 

Примеры решений участниками:

s=input()

i=s.find(“f”)

j=len(s)-1-s[::-1].find(“f”)

if i==j:

    print(i)

elif j>i and i!=-1:

    print(i,j)

 

s = input()

s1 = s.find(‘f’)

s2 = s.rfind(‘f’)

if s1 == s2 and s1 != -1:

    print(s1)

elif s1 != s2:

    print(s1, s2)