Определите, что будет напечатано в результате выполнения следующего скрипта: z = 30 for n in range(10): if n < 0: z = z – 2 * n else: z = n - z print(z) (с решением) *
Задача 1. Код, предложенный Budzsergiy777p0i27m наиболее подходит для решения, если слова разделены только одним пробелом. Решение задачи ниже аналогично (удалить пробелы в начале и в конце строки, затем посчитать пробелы, увеличить на 1 результат и вывести на экран)
Программа: print(input().strip().count(' ')+1)
Задача 2. Здесь следует учесть, что строка является неизменяемым элементом, т.е. напрямую символ в строке изменить нельзя, но можно получить два среза строки до и после буквы 'h' и затем склеить первый срез + большая буква 'H' + второй срез. Например, строка 'abchdef' -> 'abc'+'H'+'def'. А чтобы не захватить первую и последнюю букву h, нужно найти их индексы в строке и затем обрабатывать только часть строки между первой и последней буквой h.
Программа:
x=input() #ввод строки n1=x.find('h') #находим индекс первого вхождения буквы h n2=x.rfind('h') #находим индекс последнего вхождения буквы hy=x[n1+1:n2] #выбираем срез строки после первого вхождения #буквы h и до последнего вхождения буквы h while y.find('h')!=-1: #пока в срезе есть буква h y=y[:y.find('h')]+'H'+y[y.find('h')+1:] #заменить малую букву h на H print(x[:n1+1]+y+x[n2:]) #вывод строки до первой буквы h+результат #замен в срезе h на H + вывод строки после # последней буквы h
35
Объяснение:
n=0 z=0-30
n=1 z=1-(-30)
n=2 z=2-31
n=3 z=3-(-29)
n=4 z=4-32
n=5 z=5-(-28)
n=6 z=6-33
n=7 z=7-(-27)
n=8 z=8-34
n=9 z=9-(-26)=35