Najlepsza odpowiedź
Nie ma bezpośredniej równoważności, ponieważ Python bardzo różni się od scanf.
scanf próbuje przeanalizować wiersz wejściowy i przechowuje wartości w zmiennych, nie sprawdza granic, na przykład łańcuchów wejściowych; dlatego zaleca się użycie fgets , a następnie napisanie własnego parsera dla określonego oczekiwanego wiersza wejściowego.
Najbliższy Python odpowiednikiem fgets jest
- plik . read : gdzie plik jest otwartym plikiem (może sys .stdin )
lub za naciśnięciem:
- input (Python3) lub raw\_input (Python2)
input / raw\_input funkcje nie są bezpośrednio równoważne z fgets , ponieważ :
- fgets jest ograniczone do liczby odczytywanych znaków, dane wejściowe / raw\_input nie są ograniczone ited; czytają po naciśnięciu powrotu.
- fgets mogą pobierać dane wejściowe z dowolnego otwartego pliku – input / raw\_input pobieraj dane tylko z programów stdin .
- fgets nie wyświetla monitu – input / raw\_input może opcjonalnie emitować monit do programów stdout .
Answer
Możesz użyć raw\_input („prompt ”).
Wartość wejściowa będzie domyślnie ciągiem. Musisz przekonwertować go na int, boolean, float itp. Zgodnie z wymaganiami.
Jeśli bierzesz wiele danych wejściowych w tym samym czasie, ograniczonych spacją, użyj:
[x , y] = raw\_input (). split („“)
Z przyjemnością odpowiadam,