Форум сайта python.su
Доброго времени суток!
Условие задачи: Дан список чисел. Если в нем есть два соседних элемента одного знака, выведите эти числа.
Если соседних элементов одного знака нет - не выводите ничего.
Решени:
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])
Отредактировано Dorum (Ноя. 26, 2016 13:44:59)
Офлайн
Числа в виде строк можно привести к обычным числам
i = "0" int_i = int(i) float_i = float(i)
Офлайн
FishHookОбратите внимание на мой код. Я задаю n-ое количество цифр, которое в дальнейшем преобразуется в список с элементами типа str.
Числа в виде строк можно привести к обычным числам
Отредактировано Dorum (Ноя. 26, 2016 14:26:01)
Офлайн
DorumДа вижу я ваш код, ничего подобного в нем не происходит.
Обратите внимание на мой код. Я задаю n-ое количество цифр, которое в дальнейшем преобразуется в список с элементами типа str.
Офлайн
FishHook
list = [] while len(list) != 5: n = int(input("Введите число = ")) list.append(n) print(list)
Офлайн
Отлично, список есть. Теперь используйте это решение, чтобы получить решение основной задачи. Только бога ради, не называйте переменную list - это же зарезервированное слово.
Офлайн
FishHookСвое первоначально решение, которое указано в посте номер 1, я использовал как альтернативное. И меня заинтересовал вопрос сравнение строк, то есть могу ли я сравнить “1” и “0”?
Отлично, список есть. Теперь используйте это решение, чтобы получить решение основной задачи. Только бога ради, не называйте переменную list - это же зарезервированное слово.
Отредактировано Dorum (Ноя. 26, 2016 15:19:18)
Офлайн
И будьте добры ответить еще на один вопрос.
Полное условие задачи звучит так: Дан список чисел. Если в нем есть два соседних элемента одного знака, выведите эти числа. Если соседних элементов одного знака нет - не выводите ничего. Если таких пар соседей несколько - выведите первую пару.
Решение:
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=" и ")
Отредактировано Dorum (Ноя. 26, 2016 15:18:52)
Офлайн
DorumОчевидно, что строки - это не цифры. Они сравниваются как строки, то есть предметом сравнения является код символа, а не его семантическое значение. В приведенном вами примере символ “1” меньше чем “9”, потому что стоит раньше в таблице символов. С таким же успехом можете сравнивать “a” < “z”, “sdfsdaf” > “dsfknjsdflkjn”. Если хотите сравнивать числа, содержащиеся в строке, то превратите сначала строку в число.
Но вот, например, “1000” > “999” - False
Офлайн
DorumВопрос аналогичный “как сделать ничего”.
как вывести ничего
Офлайн