Jaki jest odpowiednik scanf w Pythonie?


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,

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *