Как объявить тип переменной, стиль C в Python - PullRequest
8 голосов
/ 14 октября 2010

Я студент по программированию, и мой учитель начинает с C, чтобы научить нас парадигмам программирования, он сказал, что все в порядке, если я выполню свою домашнюю работу на python (это легче и быстрее для домашних заданий).И я хотел бы, чтобы мой код был настолько близок, насколько это возможно на простом C. Вопрос в том, как объявить типы данных для переменных в python, как вы делаете это на C. ex:

int X,Y,Z;

Я знаюя могу сделать это в Python

x = 0
y = 0
z = 0

Но это кажется большой работой, и он пропускает точку зрения Python проще / быстрее, чем C. Итак, что самый короткий способ сделатьэтот?PS Я знаю, что вам не нужно объявлять тип данных в python большую часть времени, но все же я хотел бы сделать это, чтобы мой код выглядел как можно более похожим на одноклассников.

Ответы [ 6 ]

24 голосов
/ 14 октября 2010

Нет способа объявить переменные в Python, так как не существует ни «объявления», ни «переменных» в смысле Си.Это свяжет три имени с одним и тем же объектом:

x = y = z = 0
18 голосов
/ 28 января 2019

В Python 3.6 вы можете объявить типы переменных и функций, например:

explicite_number: type

или для функции

def function(explicite_number: type) -> type

Этот пример из этого поста: Как использовать статическую проверку типов в Python 3.6 является более явным

from typing import Dict

    def get_first_name(full_name: str) -> str:
        return full_name.split(" ")[0]

    fallback_name: Dict[str, str] = {
        "first_name": "UserFirstName",
        "last_name": "UserLastName"
    }

    raw_name: str = input("Please enter your name: ")
    first_name: str = get_first_name(raw_name)

    # If the user didn't type anything in, use the fallback name
    if not first_name:
        first_name = get_first_name(fallback_name)

    print(f"Hi, {first_name}!")

Вы можете найти всю информацию в официальной документации для ввода Python: typing - Поддержка подсказок типов

6 голосов
/ 19 октября 2017

Я удивлен, что никто не указал, что вы действительно можете сделать это:

decimalTwenty = float(20)

Во многих случаях бессмысленно вводить переменную, так как она может быть перепечатана в любое время. Однако в приведенном выше примере это может быть полезно. Есть и другие функции типа, такие как: int(), long(), float() и complex()

6 голосов
/ 14 октября 2010

Python не обязательно проще / быстрее, чем C, хотя возможно , что он проще;)

Чтобы пояснить другое сделанное вами заявление, «вам не нужно объявлятьтип данных "- следует повторить, что вы не можете объявить тип данных.Когда вы присваиваете значение переменной, тип значения становится типом переменной.Это тонкая разница, но, тем не менее, другая.

3 голосов
/ 14 октября 2010

Все в Python является объектом и включает в себя классы, экземпляры классов, код в функциях, библиотеки функций, называемых модулями, а также значения данных, такие как целые числа, числа с плавающей точкой, строки или контейнеры, такие как списки и словари.Он даже включает пространства имен, которые являются словарными (или отображающими) контейнерами, которые используются для отслеживания связей между именами идентификаторов (объектами символьных строк) и объектами, которые существуют в настоящее время.Объект может даже иметь несколько имен, если два или более идентификатора становятся связанными с одним и тем же объектом.

Связывание идентификатора с объектом называется «привязкой имени к объекту».Это самая близкая вещь к объявлению переменной в Python.Имена могут быть связаны с разными объектами в разное время, поэтому нет смысла объявлять, к какому типу данных вы собираетесь прикреплять один - вы просто делаете это.Часто это делается в одной строке или блоке кода, который задает как имя, так и определение значения объекта, вызывающего его создание, например <variable> = 0 или функцию, начинающуюся с def <funcname>.

Как этопомогает.

2 голосов
/ 18 мая 2013

Но для облегчения разработки на самом деле существуют сильные типы и определения переменных.Если вы не продумали все это заранее, вы не проектируете и не разрабатываете код, а просто взламываете.

Свободные типы просто переносят сложность со времени «дизайн / взлом» на время выполнения.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...