Бред


Ответить в тред Ответить в тред

Check this out!
<<
Назад | Вниз | Каталог | Обновить тред | Автообновление
82 4 32

Аноним 06/02/20 Чтв 23:29:00 2131107841
1200px-Python-l[...].png (79Кб, 1200x1200)
1200x1200
Питонисты петухисты, поясняйте за свою ебалу. Я сишник-байтоеб. Ковыряюсь с вашей змеей. Нужно менять переменную внутри функции (не ее локальную копию). В си для этого были божественные указатели. А тут что?
06/02/20 Чтв 23:30:27 2131108782
>>213110784 (OP)
Я бы тебя обоссал на ревью за такие сайдэффекты.
Аноним 06/02/20 Чтв 23:35:29 2131111503
>>213110878
Что ты несешь? Однозначно детерменирована такая функция будет, никаких побочек
Аноним 06/02/20 Чтв 23:37:54 2131112944
Бамп
Аноним 06/02/20 Чтв 23:38:54 2131113425
Душители удава, вы где?
Аноним 06/02/20 Чтв 23:40:59 2131114566
Бамп
Аноним 06/02/20 Чтв 23:41:23 2131114767
>>213110784 (OP)
Ты шиз. Твой высер дальше первого слова прочитать невозможно. Впервые такое тут вижу
Съёбывай отсюда, даун. Ты пьян.
Аноним 06/02/20 Чтв 23:42:38 2131115408
>>213111476
Спасибо, что насрал в тред
Аноним 06/02/20 Чтв 23:43:25 2131115819
>>213110784 (OP)
> просит помочь
> "петухисты"

Нахуй бы тебе не пойти?
Аноним 06/02/20 Чтв 23:43:57 21311161310
>>213111581
Ой, бедненький, обиделся
Аноним 06/02/20 Чтв 23:44:34 21311165011
>>213110784 (OP)
если внешняя переменная x, то в функции ее инициализируешь через global x и все
Аноним 06/02/20 Чтв 23:45:44 21311171612
Очевидный return
Аноним 06/02/20 Чтв 23:45:59 21311172913
>>213111650
Можно код-образец?
Типа вот так:
def foo(global x):
?
Аноним 06/02/20 Чтв 23:46:14 21311173914
>>213110784 (OP)
>менять переменную внутри функции (не ее локальную копию).
Не передавай переменную в функцию а просто используй глобальную
06/02/20 Чтв 23:46:30 21311175715
>>213110784 (OP)
> Я сишник-байтоеб
Ты студентота лаба1. Иначе бы был в состоянии пользоваться гуглом и документацией.
Аноним 06/02/20 Чтв 23:46:50 21311177516
Аноним 06/02/20 Чтв 23:46:53 21311177817
>>213111739
Это же идиотизм. Есть нормальное решение?
Аноним 06/02/20 Чтв 23:47:03 21311178718
>>213111729
загуглить сложно? синтаксис сказали, он еще выебывается
Аноним 06/02/20 Чтв 23:47:07 21311179019
>>213111729
x = 2
def funct(argument):
___global x
___x = 5

Заменит твою х на 5 далее по коду.
Аноним 06/02/20 Чтв 23:47:53 21311182920
>>213111778
Это скриптовый язык мань... Нормальное решение - юзать кресты.
Аноним 06/02/20 Чтв 23:48:01 21311183921
>>213111775
И этот global x в одном неймспейсе с x, который в общем коде программы?
Аноним 06/02/20 Чтв 23:49:37 21311192522
>>213111829
> Нормальное решение
> Кресты

Земля тебе пухом
Аноним 06/02/20 Чтв 23:49:46 21311193123
>>213111839
этот х это и есть х из внешнего кода программы
Аноним 06/02/20 Чтв 23:50:22 21311197224
>>213111790
А если у меня функция из функции вызывается? Щас короче сяду за пеку и прикреплю скрин
Аноним 06/02/20 Чтв 23:52:18 21311206225
>>213111150
то, что внешняя переменная меняется при выполнении функции - это ты называешь никаких побочек?
Аноним 06/02/20 Чтв 23:52:22 21311206626
>>213111931
Да, я уже понял. Типа модификатор global обозначает, что мы берем x из пространства глобальных переменных (общего кода), а не создает локальную копию. Но как быть при вложенных вызовах функции? Ща покажу скрин
Аноним 06/02/20 Чтв 23:52:54 21311208827
>>213110784 (OP)
Если переменная изменяемая, можно без глобала.
Аноним 06/02/20 Чтв 23:53:54 21311215028
>>213112062
Называть такое сайд-эффектом - это как называть сайд-эффектом вызов функции вввода в функции
Аноним 06/02/20 Чтв 23:55:46 21311225729
>>213112088
А как неизменяемую обернуть в изменяемую? Есть какие-нибудь контейнеры как в с#?
Аноним 06/02/20 Чтв 23:56:24 21311228530
15798003453410.jpg (33Кб, 529x502)
529x502
Знатоки расскажите как создать демона на питоне в винде и как ему передавать какую-либо информацию (не сигналы) ?
Аноним 06/02/20 Чтв 23:57:44 21311235331
>>213112150
сайд-эффект - это когда внешний мир меняется под действием твоей функции. Это не "как что-то там если бы что-то там". Это вполне себе конкретное, блять, определение.
Аноним 06/02/20 Чтв 23:58:52 21311239932
>>213112285
Пентаграмму в PIL нарисуй
Аноним 07/02/20 Птн 00:02:10 21311257333
Снимок экрана 2[...].png (97Кб, 1238x830)
1238x830
>>213111790
>>213111931
Вот. Надо чтоб изменение x и y в control прилетало в graphics. Как реализовать?
Аноним 07/02/20 Птн 00:04:36 21311270134
>>213112353
Я про то, что ты говоришь, будто сайд-эффект - это что-то неебически плохое. У тебя по сути бОльшая половина функции в стандартных либах с сайд-эффектами, ибо там хендлеры, память, изменение внешних данных
Аноним 07/02/20 Птн 00:05:24 21311275135
Аноним 07/02/20 Птн 00:06:33 21311280636
>>213112573
как вариант не мудрить ничего ни с какими глобалами, а передавать в функцию массив
функция будет его чекать и как там появятся значения (или изменятся) будет что-то там делать
Аноним 07/02/20 Птн 00:07:44 21311286837
>>213112573
Рогалик на питоне пишешь?
Можно просто без передачи х и у менять глобалки
Или передавать объект, у которого менять переменные
Аноним 07/02/20 Птн 00:07:58 21311289538
Аноним 07/02/20 Птн 00:11:08 21311305739
>>213112806
>функция будет его чекать и как там появятся значения (или изменятся) будет что-то там делать
Не понял. Неявные вызовы что ли в питоне есть?
>как вариант не мудрить ничего ни с какими глобалами, а передавать в функцию массив
Я, вроде, пробовал уже. Там синтаксическую ошибку выбивает при описании функции, мол, не может быть параметр массивом
Аноним 07/02/20 Птн 00:12:14 21311310940
>>213113057
Да заяем массив, бля.
Return x, y в самой функции
В другой x, y = conrol(x, y)
Аноним 07/02/20 Птн 00:12:14 21311311041
>>213113057
какие нахуй неявные вызовы
расскажи для начала что ты пишешь, потом я тебе скажу че да как
Аноним 07/02/20 Птн 00:12:33 21311313042
Аноним 07/02/20 Птн 00:13:50 21311320343
>>213112868
Рогалик или змейку какую-нибудь, да. Чисто чтобы освоить язык хоть чуть-чуть. А то буквально только начал
>Можно просто без передачи х и у менять глобалки
Можно, но такой себе варик. Нарушает структуру и целостность кода
>Или передавать объект, у которого менять переменные
Поподробнее можно?
Аноним 07/02/20 Птн 00:13:55 21311320844
>>213113130
Лол, номера постов перепутал
Аноним 07/02/20 Птн 00:14:34 21311325345
>>213112573
Ты пиздец xyйни понаписал, что ты вообще сделать пытаешься ?
Аноним 07/02/20 Птн 00:15:35 21311330846
>>213112895
>>213113109
>>213113130
А, все, у вас ебать так можно сделать. Мощно. В сишке хуй пососешь с такими штуками. Ща попробую. Я просто не знал, что ретернить можно несколько параметров. Думал, это троллинг
Аноним 07/02/20 Птн 00:15:59 21311333347
>>213113130
Да, походу это реально попытка от ОПа в кринж-троллинг.
Аноним 07/02/20 Птн 00:16:46 21311337448
>>213113333
Прост всю жизнь фукнции отображали в одно значение область определения
Аноним 07/02/20 Птн 00:17:03 21311338949
Аноним 07/02/20 Птн 00:17:45 21311343750
ВКАТИЛСЯ В АНУС ОП
Аноним 07/02/20 Птн 00:21:24 21311362551
>>213111757
Согласен. Мимо даже не программист.
Аноним 07/02/20 Птн 00:23:09 21311372152
>>213113308
Короче, все работает. Охуеть. Мощно
Аноним 07/02/20 Птн 00:23:39 21311375553
Аноним 07/02/20 Птн 00:23:54 21311377354
Решение с глобалами - порнуха уровня ОПа-петуха.
Аноним 07/02/20 Птн 00:24:54 21311382255
Аноним 07/02/20 Птн 00:27:54 21311395356
>>213110784 (OP)
>божественные указатели
Хорошо пошутил. Проблема на миллиард долларов, которую везде пытаются заткнуть у него оказывается божественная фича.
Аноним 07/02/20 Птн 00:27:56 21311395457
>>213112573
Очевидно запихивоеш в класс
И обращаешься к х и у как self.x self.y
Аноним 07/02/20 Птн 00:30:15 21311407358
>>213112573
Блять ну очевидно же что надо писать
Key= input()
X = x + updateX(key)
Y = y + updateY(key)
Ну или божественный список
X,y = и далее по тексту

За такой код что у оп и на С надо канделябром бить
Аноним 07/02/20 Птн 00:36:59 21311442659
>>213113953
Чем это проблема? Указатели это маст-хев. Питон выглядит глупо со своей концепцией "= это не инициализация, а ссылка". А еще более глупо выглядит какой-нибудь C#, у которого инициализация структуры struct foo - это foo my, а инициализация класса class foo - это foo my = new foo();
То есть оператор присваивания работает по-разному в зависимости от сущности. В случае со структурой в качестве инициализатора, а в случае с классом - как связыватель для ссылки. Нелогично.
В си логично: мы всегда знаем, где сущность, а где указатель на сущность.
Аноним 07/02/20 Птн 00:39:37 21311455160
>>213114073
Сириосли? Зачем делать отдельный апдейт под ЭТО? В детстве на компе много оперативки было?
Аноним 07/02/20 Птн 00:40:33 21311460261
>>213113389
>>213110784 (OP)
pastebin[dot]com/3Bk8NGRM

Я нихера не понял что ты сделать пытаешься, но попробовал предположить, это то что тебе нужно ?
Аноним 07/02/20 Птн 00:41:06 21311463862
>>213110784 (OP)
Хаскель боги тебя бы за такое опустили
Аноним 07/02/20 Птн 00:41:33 21311465963
>>213114426
В питоне всё объект. Присваивание это всегда ссылка. Инициализация не включена в присваивание. Можешь считать что литерал это инициализатор нового объекта, new.
Аноним 07/02/20 Птн 00:42:04 21311469364
>>213110784 (OP)
В питоне нет передачи по значению, там все по ссылке. Изменишь параметр внутри, он измениться и снаружи.
Аноним 07/02/20 Птн 00:42:39 21311472565
>>213112573
*фиксд

#!/usr/bin/python
import os
import time
import keyboard

def control(x:int, y:int):
key = keyboard.read_key()
if key == "a" and x > 0:
x -= 1
elif key == "d":
x += 1
elif key == "s":
y += 1
elif key == "w" and y > 0:
y -= 1
return (x,y)

def graphics(x, y):
spaces = 0
lines = 0
while lines < y:
print()
lines += 1
while spaces < x:
print(" ", end = "")
spaces += 1
print("@")
time.sleep(0.1)
(x,y) = control(x, y)
os.system("clear")
return((x,y))

x = int(input())
y = int(input())
while True:
(x,y) = graphics(x,y)
Аноним 07/02/20 Птн 00:44:25 21311480266
Та все, всем спасибо, уже накидали кода и порешали все
Аноним 07/02/20 Птн 00:45:30 21311484467
>>213114426
> В си логично: мы всегда знаем, где сущность, а где указатель на сущность.
На самом деле это немного по другому:

- вот число, это число
- вот число, это символ
- вот число, это адрес другого числа
- вот число, это хуй знает что так как void *

Просто охуенно удобно, спасибо.
Аноним 07/02/20 Птн 00:46:03 21311486668
image.png (50Кб, 360x622)
360x622
>>213114725
Бля, кто табуляцию спиздил?!
Аноним 07/02/20 Птн 00:46:08 21311487069
>>213114725
>key = keyboard.read_key()
Вот за это сяп. Это же небуферизированный ввод без эхо?
Аноним 07/02/20 Птн 00:46:08 21311487170
>>213110784 (OP)
> В си для этого были божественные указатели
Не указатели, а ссылки. Потому что ты можешь менять указатель инкремируя и декримируя, при этом в основной программе он не изменится, если не передал по ссылке. Делетант хуев.
Аноним 07/02/20 Птн 00:47:56 21311495571
>>213114551
Тут можно как угодно писать. Суть в принципе, что определяешь функции без сайдэффектов.
Не надо дергать инпут, вот просто не надо.
Аноним 07/02/20 Птн 00:51:09 21311508472
>>213114844
>вот число, это хуй знает что так как void *
Меньше знаешь - крепче спишь.
А вообще, гибко же. В каком-то смысле, грубо говоря, это дайтайпинг нативно в Си
Аноним 07/02/20 Птн 00:51:53 21311510973
>>213115084
>дайтайпинг
даКтайпинг
опечатка
Аноним 07/02/20 Птн 00:53:33 21311517074
>>213114955
Я тогда ваще не понял. Какая разница, делать условный оператор в control или вызывать внутри control еще одну функцию?
Аноним 07/02/20 Птн 00:54:42 21311521475
>>213110784 (OP)
Иди учись программировать, сайд эффекты он нам тут собрался делать. Может у тебя ещё объекты не единственную ответственность имеют, июнь?
Аноним 07/02/20 Птн 00:54:50 21311522076
>>213114871
Што?
Различия указателя и ссылки знаешь?
Аноним 07/02/20 Птн 00:55:50 21311526577
>>213115214
Ты из тех, кто боится goto?
Аноним 07/02/20 Птн 00:58:26 21311536178
>>213114870
Не, wasd всё равно печатались, но потом исчезали, ибо экран очищается. Если увеличить частоту обновления (1 мс, допустим), то они не особо будут заметны (хмм, а что, если после ввода координат перенаправить stdin в пизду...).
А так это вообще первое подходящее решение со стаковерфлоу. Я просто предположил, что ты хочешь сделать, ибо input() читает только по энтеру, а ты скорее всего, чтобы просто по нажатию. Встроенной функции getch() я не нашёл, поэтому пришлось импортировать библиотеку keyboard, которая в винде и лине можно установить с помощью pip.

Самый цимес ещё в этом:
Traceback (most recent call last):
File "./2ch.py", line 36, in <module>
(x,y) = graphics(x,y)
File "./2ch.py", line 29, in graphics
(x,y) = control(x, y)
File "./2ch.py", line 7, in control
key = keyboard.read_key()
File "/usr/lib/python3.8/site-packages/keyboard/__init__.py", line 935, in read_key
event = read_event(suppress)
File "/usr/lib/python3.8/site-packages/keyboard/__init__.py", line 924, in read_event
hooked = hook(queue.put, suppress=suppress)
File "/usr/lib/python3.8/site-packages/keyboard/__init__.py", line 461, in hook
append(callback)
File "/usr/lib/python3.8/site-packages/keyboard/_generic.py", line 67, in add_handler
self.start_if_necessary()
File "/usr/lib/python3.8/site-packages/keyboard/_generic.py", line 35, in start_if_necessary
self.init()
File "/usr/lib/python3.8/site-packages/keyboard/__init__.py", line 196, in init
_os_keyboard.init()
File "/usr/lib/python3.8/site-packages/keyboard/_nixkeyboard.py", line 113, in init
build_device()
File "/usr/lib/python3.8/site-packages/keyboard/_nixkeyboard.py", line 109, in build_device
ensure_root()
File "/usr/lib/python3.8/site-packages/keyboard/_nixcommon.py", line 174, in ensure_root
raise ImportError('You must be root to use this library on linux.')
ImportError: You must be root to use this library on linux.
Аноним 07/02/20 Птн 01:00:16 21311543479
Обоссал всех итт
QBasic-господин
Аноним 07/02/20 Птн 01:59:59 21311774480
Раз уж в треде есть питонознатаки, может кто пояснить за идеалогию питона, типа как должны изменяться объекты, что на что воздействовать, какие связи и прочее?
Аноним 07/02/20 Птн 02:46:30 21311925181
>>213115084
Это даже и близко не duck typing, ибо из void * ты не можешь сделать никаких выводов, чтобы сказать, что это "утка".
Аноним 07/02/20 Птн 03:01:53 21311968182
Аноним 07/02/20 Птн 04:00:33 21312119783
>>213115170
Update любая ее реализация не должна опрашивать клавиатуру.
Тогда появляется возможность писать тесты и некоторая гибкость.
Input же по идее вместо кода конкретной клавиши должен возвращать действие ( вверх там или вниз)
Тогда мы отвязываемся от конкретных клавиш
Настройки X
Ответить в тред X
15000 [S]
Макс объем: 20Mб, макс кол-во файлов: 4
Кликни/брось файл/ctrl-v
X
Ваш шидевор X
Стикеры X
Избранное / Топ тредов