Уведомления

Группа в Telegram: присоединиться

#1 Май 17, 2019 21:12:46

FishHook
От:
Зарегистрирован: 2011-01-08
Сообщения: 7147
Репутация: +  480  -
Профиль   Отправить e-mail  

Помогите понять плюсы Питона в сравнении с#(+ Visual Studio)

Yuri197
На бытовом уровне я знаю. Я не знаю, что это значит по отношению к питону. Могу предположить, что вы имели в виду операцию сложения двух переменных, но в этом случае, вам бы тоже следовало бы сначала подумать ибо в питоне разрешена операция суммирования для любых типов.



Офлайн

#2 Май 17, 2019 21:16:30

doza_and
От:
Зарегистрирован: 2010-08-15
Сообщения: 3490
Репутация: +  195  -
Профиль   Отправить e-mail  

Помогите понять плюсы Питона в сравнении с#(+ Visual Studio)

Yuri не надо обижаться. Термин добавить в самом деле используется с контейнерами, но наверное вы не это имеете ввиду.
Вот как присвоить объекты разного типа:

 a=2
a="2"
вот как добавить:
 a=[]
a.append(2)
a.append("2")
ни первое ни второе не вызывает проблем.
Yuri197
Я вот даже не представляю, как это можно сделать.
По сути вы задали вопрос, но не очень ясно что именно у вас не получается.



Офлайн

#3 Май 17, 2019 21:38:19

Yuri197
Зарегистрирован: 2019-03-24
Сообщения: 24
Репутация: +  0  -
Профиль  

Помогите понять плюсы Питона в сравнении с#(+ Visual Studio)

doza_and
Yuri не надо обижаться.
Я не обижаюсь, я просто точно знаю, что будет в результате. А тратить 2-3 часа на совершенно мне не нужный спор и портить себе настроение не хочу.
doza_and
По сути вы задали вопрос, но не очень ясно что именно у вас не получается.
Как известно, каждый тип занимает определенное количество байт в памяти. Строго типизированный язык от слабо типизированного отличается наличием комплекса мер, который не позволяет передавать в память одного типа значение другого типа. А Python типы строго контролирует. То есть Python - язык строго типизированный (о чем, кстати, в той-же википедии открытым текстом написано). Я не вопрос задавал, я имел в виду, что мне неизвестен способ обмануть интерпретатор. Например:
ts1 = "строка"
print(type(ts1))
ts2 = 10
print(type(ts2))
ts3 = 1.5
print(type(ts3))
# Сложить строку с int не выйдет.
# ts4 = ts1 + ts2
# Сложить строку с float не выйдет.
# ts4 = ts1 + ts3
ts4 = ts2 + ts3
print(type(ts4))
ts4 = "Новая строка"
print(type(ts4))
Хоть слагай, хоть присваивай, а тип все равно будет соответствующий значению.

Офлайн

#4 Май 17, 2019 21:50:28

FishHook
От:
Зарегистрирован: 2011-01-08
Сообщения: 7147
Репутация: +  480  -
Профиль   Отправить e-mail  

Помогите понять плюсы Питона в сравнении с#(+ Visual Studio)

Yuri197
тип все равно будет соответствующий значению
А! Ну вот теперь то все понятно! Я вас сразу не узнал в гриме, Капитан Очевидность, вы извините. Тип, сответсвует значению, это железно.
Но есть один нюанс… Дело в том, что метод __add__ может принимать что угодно и возвращать что угодно, и ваше утверждение неверно.

Yuri197
я просто точно знаю, что будет в результате.

 class Foo:
     def __add__(self, other):
          return random.choice([int, float, bool])()     
точно знаете????



Отредактировано FishHook (Май 17, 2019 21:51:05)

Офлайн

#5 Май 17, 2019 22:06:25

Yuri197
Зарегистрирован: 2019-03-24
Сообщения: 24
Репутация: +  0  -
Профиль  

Помогите понять плюсы Питона в сравнении с#(+ Visual Studio)

FishHook
Я вас сразу не узнал в гриме, Капитан Очевидность, вы извините.
Объяснялось не вам, а автору темы. Но не поняли почему-то вы.
FishHook
точно знаете????
Ни о чем. Когда я говорил, что точно знаю, я имел в виду результат спора с вами. А не случайный результат переопределения встроенного метода, который поведение интерпретатора ни разу не отменяет.

Впрочем, больше я вас кормить не буду.

Офлайн

#6 Май 17, 2019 22:08:22

JOHN_16
От: Россия, Петропавловск-Камчатск
Зарегистрирован: 2010-03-22
Сообщения: 3292
Репутация: +  220  -
Профиль   Отправить e-mail  

Помогите понять плюсы Питона в сравнении с#(+ Visual Studio)

Yuri197
ну ваш же пример и ломает ваше же высказывание

 >>> ts2 = 10
>>> ts3 = 1.5
>>> t4 = ts2 + ts3
>>> print(t4)
11.5
>>> print(list(map(type, (ts2, ts3, t4))))
[<class 'int'>, <class 'float'>, <class 'float'>]
два разных типа, а сложить удалось. И про память тут высказывания лишние.



_________________________________________________________________________________
полезный блог о python john16blog.blogspot.com

Офлайн

#7 Май 17, 2019 22:13:37

DezmontDeXa
Зарегистрирован: 2019-05-17
Сообщения: 5
Репутация: +  0  -
Профиль   Отправить e-mail  

Помогите понять плюсы Питона в сравнении с#(+ Visual Studio)

Вы считаете себя программистом, не зная ассемблера и Си

Я говорил, что считаю себя программистом? Я говорил лишь о том, что до питона изучал шарп. Это раз.
А во-вторых, что за бред?! Знать ассемблер и Си? Нахрена, если мне не нужен доступ к железу напрямую? Если .net мне хватает для решения 80% моих задач, а оставшееся перекрывается библиотеками.

Вы можете сколько угодно кичиться своими знаниями, но это бред. Если хочешь делать игры - делай игры. Хочешь делать движки для игр - делай движки для игр. Не обязательно знать как работает Unity/Unreal, что бы делать на них игры. Тем более не важно знать ассемблер или Си для разработки игр.
Я уверен, что уже сейчас найдется геймдев, который пилит хорошие игры, без знаний ассемблера. Скорее всего эти игры будут лучше, чем то, что вы можете предложить на Си за то же время.

Вы несете хуйню и ищите срача, как уже сказали. Спасибо, за ваши скрины и подсказки. Жаль что для всего это пришлось испортить себе настроение. Надеюсь, вы подняли свою самооценку, тогда из этого хоть-кто-то получил плюшку.

Офлайн

#8 Май 17, 2019 22:17:31

Yuri197
Зарегистрирован: 2019-03-24
Сообщения: 24
Репутация: +  0  -
Профиль  

Помогите понять плюсы Питона в сравнении с#(+ Visual Studio)

JOHN_16
И про память тут высказывания лишние.
Согласен, лишнее. Все объект. Но хотелось объяснить попроще то, что я имел в виду. Да и смысл то все равно, в конечном итоге в безопасном обмене данными в памяти.
JOHN_16
два разных типа, а сложить удалось.
Значения int и float складываются разумеется. Точнее, int будет приведен самим интепретатором к float, потом будут сложены два значения float. Результат будет float. Нет никакого противоречия. Интерпретатор следит за типами.

Офлайн

#9 Май 17, 2019 23:20:38

PEHDOM
Зарегистрирован: 2016-11-28
Сообщения: 1492
Репутация: +  210  -
Профиль   Отправить e-mail  

Помогите понять плюсы Питона в сравнении с#(+ Visual Studio)

DezmontDeXa
Я уверен, что уже сейчас найдется геймдев, который пилит хорошие игры, без знаний ассемблера.
вы удивитесь но есть геймдевы котороые пилят игры даже не зная ни одного ЯП.
https://ru.wikipedia.org/wiki/Construct_2
И да на этом можно написать нормальную игру, и даже есть преценденты. НО ведь вопрос не в этом.
DezmontDeXa
Не обязательно знать как работает Unity/Unreal, что бы делать на них игры. Тем более не важно знать ассемблер или Си для разработки игр.
Да не обязательно знать как работает Unity/Unreal, что бы делать на них игры, но если вы занете, то сможете лучше/быстрее/эффективнее использовать их возможности. А то я смотрю что геймдев сейчас скатится ниже плинтуса, и какаянить современная реинкарнация арканоида, котороый ранее шел на 486-м с 4 Мб оперативы сейчас хочет коре i3 и 8Гб РАМы, иначе ни-ни.

DezmontDeXa
Или все-таки есть какой-то нормальный способ кодить методом набора кода, а не методом копипаста из браузера?
Ага использовать нормальную ИДЕ вместо поделия от МС. Их и под венду более чем достаточно, PyScripter, PyCharm, PyDev, Spider, NetBeans… это те что сходу пришли в голову, если погуглить то можно найти еще с десяток. Попробуйте пару- ройку и найдите наиболее подходящий именно вам.

Офлайн

#10 Май 18, 2019 00:42:20

JOHN_16
От: Россия, Петропавловск-Камчатск
Зарегистрирован: 2010-03-22
Сообщения: 3292
Репутация: +  220  -
Профиль   Отправить e-mail  

Помогите понять плюсы Питона в сравнении с#(+ Visual Studio)

Yuri197
Значения int и float складываются разумеется. Точнее, int будет приведен самим интепретатором к float, потом будут сложены два значения float. Результат будет float. Нет никакого противоречия. Интерпретатор следит за типами.
Ну а как он следит? По общему правилу, за это отвечает метод __add__
 help(int.__add__)
Help on wrapper_descriptor:
__add__(self, value, /)
    Return self+value.

То есть можно написать класс наследуемый от строки, сложить это с числом и в результате получить словарь. А вот встроенные типы данных защищены (надо смотреть исходный код что бы точно сказать как именно) от изменений. Поэтому и говорят уверенно про строгую типизацию ( имея ввиду в общем то встроенные типы данных)



_________________________________________________________________________________
полезный блог о python john16blog.blogspot.com

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version