Найти - Пользователи
Полная версия: подскажите по 2 простым задачкам
Начало » Центр помощи » подскажите по 2 простым задачкам
1 2
alekss07
Здравствуйте
Питон изучал очень давно
перешел на С++
синтаксис весь забыл
подскажите по 2 задачам
1)Необходимо поменять местами значения в переменных: a = 5; b = 12.

2)Написать функцию, которая во входных параметрах принимает строку и возвращает инверсию этой строки в верхнем регистре. Например, для входной строки ‘Hello World’ результат должен быть ‘DLROW OLLEH ’
3)Написать функцию, которая во входных параметрах принимает строку с текстом. Функция должна возвращать количество слов и предложений в строке. Условимся, что слова разбиваются одним пробелом, a конец строки обозначается символом ‘.’

во второй задаче вроде reverse() или и upper()
заранее спасибо большое!
c одной уже разобрался
 def bigger(a):
    out = a.upper()[::-1]
    
    print(out)
bigger("Hello Word")
ajib6ept
  a, b = b, a 
vic57
3.
конец строки обозначается символом ‘.’
строки или предложения?
 >>> s ='Hello World. Python is cool.'
>>> len(s.split())
5
>>> l = [i for i in s.split('.') if i.strip()]
>>> l
['Hello World', ' Python is cool']
>>> len(l)
2

alekss07
vic57
3.
конец предложения обазначаеться точкой
вот так получается спасибо
 def bigger(a):
    out = len(a.split())
    l = [i for i in a.split('.') if i.strip()]
    print(len(l))
    
    print(out)
bigger('Hello World. Python is cool.')
а не подскажите по синтаксису
для собственного понимания вопрос
 l = [i for i in a.split('.') if i.strip()]
– я правильно понимаю что i это переменная которая создается внутри цикла фор для обхода строки?
и второй вопрос
если убрать i.strip() то все работает i.strip() убирает пробелы насколько я понял. но количество точек считается уже не верно и вместо 2 получается 3
хотя за подщет точек отвечает split() ,если не сложно не могли бы пояснить спасибо
vic57
по пунткам:
 >>> s = 'Hello world. Python is cool.'
>>> s.split('.')
['Hello world', ' Python is cool', '']
>>> [i for i in s.split('.')]
['Hello world', ' Python is cool', '']
>>> [i for i in s.split('.') if i.strip()]
['Hello world', ' Python is cool']
i - переменная цикла
аналог:
 >>> s = 'Hello world. Python is cool.'
out = []
for i in s.split('.'):
    if i.strip() != '': out.append(i)
print len(out),out
strip() нужен чтобы убрать пустые элементы
gambrinas13
Ребята, нужна ваша помощь. Задачка простенькая, вроде бы как решена, но мне кажется, что я не до конца понял задание:
Изначальная функция из книги:
def ask_number(question. low. high):
"""Просит ввести число из диапазона."""
response = None
while response not in range(low. high):
response = int(input(question))
return response
А вот задание и мой вариант:
Доработайте функцию ask_numЬer() так, чтобы ее можно было вызывать еще с одним параметром -
кратностью (величиной шага). Сделайте шаг по умолчанию равным 1.
low = 0
high = 8
def ask_number(question,low,high,step = 1):
response = None
while response not in range(low,high):
response = int(input(question))
return response
ask_number("Введите число от 0 до 8:",low ,high,1)
Если есть ошибка или недоработка укажите на это и подскажите, где мне следует исправить решение. Заранее, благодарю!


gambrinas13
И еще одна задачка:
import random
the_number = random.randint(l. 100)
guess = int(input("Baшe предположение: "))
tries = 1
# цикл отгадывания
while guess != the_number:
if guess > the_number:
pri nt( "Меньше".")
else:
print( "Больше."")
guess = i nt ( i nput ("Ваше предположение: "))
tries += 1
print("Baм удалось отгадать число! Зто в самом деле". the_number)
print("Bы затратили на отгадывание всего лишь ", tries. " попыток!\n")
Каким образом нужно использовать функцию ask_number из 1 задачи чтобы она корректна работала?
У меня работает корректно только в том случае, когда ты угадываешь число с 1 раза:
import random
number = random.randint(1,5)
response = int(input("Ваше предположение:"))
tries = 1
low = 1
high = 5
def ask_number (question,low,high):
response = None
while response not in range(low,high):
response = int(input(question))
return response
while response != number:
if response > number:
print("Меньше")
else:
print("Больше")
ask_number("Ваше число:",low,high)
tries += 1
print("Baм удалось отгадать число! Зто в самом деле". number)
print("Bы затратили на отгадывание всего лишь ", tries. " попыток!\n")
PEHDOM
gambrinas13 заключайте код а теги “code python” “/code”, без отступов ваш код нечитабелен.
gambrinas13
PEHDOM
gambrinas13 заключайте код а теги “code python” “/code”, без отступов ваш код нечитабелен.
Отредактировал, прошу прощения.
PEHDOM
 while response != number:
    if response > number:
        print("Меньше")
    else:
        print("Больше")
    response = ask_number("Ваше число:",low,high)
    tries += 1

+ while response not in range(low,high): не сработает если number = 5, поскольку range(1,5) вернет 1,2,3,4
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB