Найти - Пользователи
Полная версия: Вопрос с обработкой в терминале
Начало » Центр помощи » Вопрос с обработкой в терминале
1
Tenebras
Вопрос, видимо, не точно сформулировал в заголовке.
А суть такова:
Допустим имеем
 x = input('Bведите первое число')
y = input('Bведите второе число')
print(x+y)

В терминале, после ввода числа и нажаитя на ентер видно - что я вводил. А надо, что бы число стиралось… Что бы не было видно.

Как реализовать?

PS: На вопрос - зачем оно нужно ответ прост: в конечном итоге мне необходимо сделать программу, заполнять которую будет поочерёдно три человека, передавая устройство друг-другу. И ответа предыдущего видеть нельзя.

Попутно ещё один вопрос нарисовался. Не стану ради него отдельную тему создавать.

Имею
 nums = [1, 2, 3, 4, 5, 6, 7, 8, 9]

Как задать условие, при котором (в случае если в списке будут две одинаковые цифры) программа вернёт False?
Stepan_M
 import getpass
x = getpass.getpass("input something:")
print(x)

 nums = [1, 2, 3, 4, 5] # return True
#nums = [1, 2, 3, 4, 1, 5] # return False
if any(nums.count(x) > 1 for x in nums):
    print("False")
else:
    print("True")
Stright
 def is_with_duplicates(lst):
    return len(lst) == len(set(lst))
Tenebras
Stepan_M
x = getpass.getpass(“input something:”)

C getpass вообще не видно, что вводишь. Мне же надо, что бы я видел, что ввожу, а после нажатия Enter введённое исчезало. Собственно у меня задание - написать игру Чепуха.

 file_name = input("""Придумайте имя файла, в который будет сохранён результат игры!
Если вы придумаете название уже существующее, то ни чего страшного не случится!
Просто в уже существующий файл будет записаны результаты новой игры, но старые результаты тоже останутся!
Введите имя и нажмите Enter:""")
f_name = str(file_name) + str('.txt')
file = open(f_name, 'a')
a = input('Кто?:')
b = input('С кем?:')
c = input('Где?:')
d = input('Что делали?:')
e = input('Кто пришёл?:')
f = input('Что принёс?:')
g = input('Что сказал?:')
h = input('Что ему ответили?:')
i = input('Чем всё закончилось?:')
question = [a, b, c, d, e, f, g, h, i,]
text = "У вас получилась такая вот история: {0} и {1} {2} {3}. Пришёл {4}, принёс {5}. И говорит им: {6}! А ему отвечают:{7}! Закончилось всё {8}".format(question[0], question[1], question[2], question[3], question[4], question[5], question[6], question[7], question[8],)
file.write(text)
file.close
file = open(f_name, 'r')
print(file.read())
file.close()
old_monty
Tenebras
Чтобы после нажатия Enter введенное исчезало, надо после каждого input() делать очистку экрана.
Код игры тоже можно сократить:
 # -*- coding: utf-8 -*-
import os
questions = ['Кто? ', 'С кем? ', 'Где? ', 'Что делали? ', 'Кто пришел? ', 'Что принес? ', 'Что сказал? ', 'Что ему ответили? ', 'Чем все закончилось? ']
answers = []
file_name = input("""Придумайте имя файла, в который будет сохранён результат игры!
Если вы придумаете название уже существующее, то ни чего страшного не случится!
Просто в уже существующий файл будет записаны результаты новой игры, но старые результаты тоже останутся!
Введите имя и нажмите Enter: """)
f_name = file_name + '.txt'
file = open(f_name, 'a')
for q in questions:
    a = input(q)
    os.system('clear')    # Для Windows вместо 'clear' используйте 'cls' 
    answers.append(a)
text = "У вас получилась такая вот история: {0} и {1} {2} {3}. Пришёл {4}, принёс {5}. И говорит им: {6}! А ему отвечают:{7}! Закончилось всё так: {8}".format(*answers)
file.write(text)
file.close
file = open(f_name, 'r')
print(file.read())
file.close()

Примечание: как работает под Windows, я не проверял. Под Mac OS X и под Debian Linux все нормально.
Tenebras
Спасибо! Сейчас опробую)))
У меня нет Windows. У меня именно что macOS (теперь оно так называется - osX кануло в лету) и Linux.
py.user.next
Tenebras
Как реализовать?
#!/usr/bin/env python3

import curses


def main():
screen = curses.initscr()

prompt = 'Input: '
screen.addstr(2, 2, prompt)
s = screen.getstr(2, 2 + len(prompt))

screen.clear()

out = s.decode('utf-8')
screen.addstr(3, 2, 'You have entered: ' + out)
screen.refresh()
screen.getch()

screen.addstr(4, 2, 'Bye')
screen.refresh()
screen.getch()

curses.endwin()

if __name__ == '__main__':
main()
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