Найти - Пользователи
Полная версия: Списки
Начало » Python для новичков » Списки
1 2 3
Dorum
Доброго времени суток!
Условие задачи: Дан список чисел. Если в нем есть два соседних элемента одного знака, выведите эти числа.
Если соседних элементов одного знака нет - не выводите ничего.
Решени:
 list = input("Введите n - количество чисел разных знаков через пробел = ").split(" ")
print(list)
for i in range(len(list)):
    if list[i] > "0" and list[i - 1] > "0" and i != 0:
        print(list[i], list[i - 1])
    elif list[i] < "0" and list[i - 1] < "0" and i != 0:
        print(list[i], list[i - 1])
Вопрос:
Мой код работает, но меня интересует следующий вопрос: как происходит сравнение чисел в строках? Дело в том, что если в условии сравнивать i с 0, то будет выбиваться ошибка, ибо нельзя сравнивать str с int.
P.S Я бы мог задать список чисел изначально, но хотел реализовать это через ввод с клавиатуры.

Заранее спасибо!
FishHook
Числа в виде строк можно привести к обычным числам
 i = "0"
int_i = int(i)
float_i = float(i)
Dorum
FishHook
Числа в виде строк можно привести к обычным числам
Обратите внимание на мой код. Я задаю n-ое количество цифр, которое в дальнейшем преобразуется в список с элементами типа str.
FishHook
Dorum
Обратите внимание на мой код. Я задаю n-ое количество цифр, которое в дальнейшем преобразуется в список с элементами типа str.
Да вижу я ваш код, ничего подобного в нем не происходит.
Давайте упростим задачу, вам нужно ввести с клавиатуры набор чисел и получить из них список.
Показывайте решение.
Dorum
FishHook
 list = []
while len(list) != 5:
    n = int(input("Введите число = "))
    list.append(n)
print(list)
FishHook
Отлично, список есть. Теперь используйте это решение, чтобы получить решение основной задачи. Только бога ради, не называйте переменную list - это же зарезервированное слово.
Dorum
FishHook
Отлично, список есть. Теперь используйте это решение, чтобы получить решение основной задачи. Только бога ради, не называйте переменную list - это же зарезервированное слово.
Свое первоначально решение, которое указано в посте номер 1, я использовал как альтернативное. И меня заинтересовал вопрос сравнение строк, то есть могу ли я сравнить “1” и “0”?
Например,
“1” > “0” - True
Но вот, например, “1000” > “999” - False
Dorum
И будьте добры ответить еще на один вопрос.
Полное условие задачи звучит так: Дан список чисел. Если в нем есть два соседних элемента одного знака, выведите эти числа. Если соседних элементов одного знака нет - не выводите ничего. Если таких пар соседей несколько - выведите первую пару.
Решение:
 list = []
while len(list) != 5:
    list1 = int(input("Введите число = "))
    list.append(list1)
print(list)
a = []
for i in range(len(list)):
    if list[i] > 0 and list[i - 1] > 0 and i != 0:
        a.append(list[i])
        a.append(list[i - 1])
        #print(list[i], list[i - 1])
    elif list[i] < 0 and list[i - 1] < 0 and i != 0:
        a.append(list[i])
        a.append(list[i - 1])
        #print(list[i], list[i - 1])
print(a[0], a[1], sep=" и ")
Вопрос следующий:
Если нет соседних элементов одного знака, то, собственно, как вывести ничего? То есть, чтобы результат был пуст. Ибо из-за моего print(a, a, sep=“ и ”) в случае отсутствия пар выбивается ошибка.

Заранее спасибо!
FishHook
Dorum
Но вот, например, “1000” > “999” - False
Очевидно, что строки - это не цифры. Они сравниваются как строки, то есть предметом сравнения является код символа, а не его семантическое значение. В приведенном вами примере символ “1” меньше чем “9”, потому что стоит раньше в таблице символов. С таким же успехом можете сравнивать “a” < “z”, “sdfsdaf” > “dsfknjsdflkjn”. Если хотите сравнивать числа, содержащиеся в строке, то превратите сначала строку в число.
FishHook
Dorum
как вывести ничего
Вопрос аналогичный “как сделать ничего”.
- Если анализы будут положительными, то я застрелюсь.
- А если отрицательными?
- Ничего не буду делать.
Вероятно, с “ничего не делать” в быту у вас проблем не возникает?
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