Lampoviy

Пользователь

Регистрация: 14.04.2023

Сообщения: 34

Рейтинг: 24

Lampoviy

Регистрация: 14.04.2023

Сообщения: 34

Рейтинг: 24

Neferp1tou сказал(а):

Создай программу, в которой ты сначала вводишь число, от 1 до 100, после чего запускается два асинхронных процесса, в каждом из которых с интервалом в одну секунду, рандомно генерируется число, когда в одном из двух асинхронных процессов выпадет нужное число(которое ввел на старте), оба процесса должны прекратить свою работу, а ты получить ответ о том, какой из двух асинхронных процессов победил. PepeKek.png?1598626085

Нажмите, чтобы раскрыть...

Пьяный? Не надо asyncio и multiprocessing путать, да еще и человека учить чепухе.

pochemyzamenya

Пользователь

Регистрация: 25.02.2016

Сообщения: 4457

Рейтинг: 4064

pochemyzamenya

Регистрация: 25.02.2016

Сообщения: 4457

Рейтинг: 4064

Мы дожили до дня когда кекс заведет свой гитхаб и появится еще одно место которое он терроризирует?

KeksovName

Пользователь

Регистрация: 13.10.2018

Сообщения: 6893

Рейтинг: -293

KeksovName

Регистрация: 13.10.2018

Сообщения: 6893

Рейтинг: -293

AlleriaChan сказал(а):

А чего ассемблер уже все?

Нажмите, чтобы раскрыть...

Мне понравился Python!PepeWh.gif?1610052035

Удалено 537094

Пользователь

Регистрация: 19.04.2015

Сообщения: -20

Рейтинг: -2

Удалено 537094

Регистрация: 19.04.2015

Сообщения: -20

Рейтинг: -2

Zacateca сказал(а):

Молодец какой!


У меня есть для тебя задание! PepeGlasses.png?1553628094


Задание: написать прогу чтобы перенаправить пакет данных из Modbus RTU over TCP в Modbus RTU (Serial Port) с помощью модуля PyModbus.


Зачем это нужно? Есть девайс, который подключен через Ethernet (TCP/IP), но прога, которая получает данные умеет только в RTU через последовательный порт. Короче нужен шлюз.


Если сделаешь, получишь бонус.

Нажмите, чтобы раскрыть...

Чатгпт


Вот пример кода на Python, использующий библиотеку PyModbus для перенаправления пакета данных из Modbus RTU over TCP в Modbus RTU (Serial Port):


```python

from pymodbus.client.sync import ModbusTcpClient

from pymodbus.client.sync import ModbusSerialClient

from pymodbus.transaction import ModbusRtuFramer


# Подключение к Modbus TCP

tcp_client = ModbusTcpClient('192.168.1.1') # Указываем IP-адрес Modbus TCP сервера

tcp_client.connect()


# Подключение к Modbus RTU (Serial Port)

serial_client = ModbusSerialClient(method='rtu', port='/dev/ttyUSB0', baudrate=9600, timeout=1, framer=ModbusRtuFramer())


# Чтение данных с Modbus TCP и запись в Modbus RTU

while True:

# Чтение данных с Modbus TCP

tcp_data = tcp_client.read_holding_registers(address=0, count=10, unit=1) # Пример чтения 10 регистров, начиная с адреса 0


# Запись данных в Modbus RTU

if tcp_data.isError():

print('Ошибка чтения данных с Modbus TCP:', tcp_data)

else:

write_result = serial_client.write_registers(address=0, values=tcp_data.registers, unit=1) # Пример записи данных в регистры Modbus RTU


if write_result.isError():

print('Ошибка записи данных в Modbus RTU:', write_result)


# Закрытие соединений

tcp_client.close()

serial_client.close()

```


Обратите внимание, что вы должны заменить `'192.168.1.1'` на IP-адрес вашего Modbus TCP сервера и `'/dev/ttyUSB0'` на соответствующий серийный порт вашего Modbus RTU устройства.


Этот код устанавливает соединение с Modbus TCP сервером, читает данные с помощью функции `read_holding_registers()`, а затем записывает их в Modbus RTU с помощью функции `write_registers()`. Вы можете настроить этот код в соответствии с вашими потребностями, изменяя адреса регистров и другие параметры функций чтения и записи.


Убедитесь, что у вас установлена библиотека PyModbus, чтобы этот код работал. Вы можете установить ее с по мощью команды `pip install pymodbus`.

Neferp1tou

Пользователь

Регистрация: 17.09.2016

Сообщения: 11958

Рейтинг: 6247

Нарушения: 55

Neferp1tou

Регистрация: 17.09.2016

Сообщения: 11958

Рейтинг: 6247

Нарушения: 55

img
Lampoviy сказал(а):

Пьяный? Не надо asyncio и multiprocessing путать, да еще и человека учить чепухе.

Нажмите, чтобы раскрыть...

AnimeVeryLaught.gif?1621091378 То есть асинхронно это ты сделать не сможешь?

Закись Ашота

Пользователь

Регистрация: 10.05.2013

Сообщения: 14206

Рейтинг: 8142

Закись Ашота

Регистрация: 10.05.2013

Сообщения: 14206

Рейтинг: 8142

img
KeksovName сказал(а):

Мне понравился Python!PepeWh.gif?1610052035

Нажмите, чтобы раскрыть...

Ну че решаешь без цикла?

Taiga121

Пользователь

Регистрация: 12.09.2019

Сообщения: 4990

Рейтинг: 2503

Taiga121

Регистрация: 12.09.2019

Сообщения: 4990

Рейтинг: 2503

pochemyzamenya сказал(а):

Мы дожили до дня когда кекс заведет свой гитхаб и появится еще одно место которое он терроризирует?

Нажмите, чтобы раскрыть...

Жду постов Кекса на Хабре, там только его не хватало, для полноты картины. sammyyPepekek.png?1598626065

KeksovName

Пользователь

Регистрация: 13.10.2018

Сообщения: 6893

Рейтинг: -293

KeksovName

Регистрация: 13.10.2018

Сообщения: 6893

Рейтинг: -293

Закись Ашота сказал(а):

Ну че решаешь без цикла?

Нажмите, чтобы раскрыть...

Возможно так!FeelsWowMan.png?1592046354

math = input('Enter month')

month = math
mouthvar = 1
month = int(month)
micetotal = 5
print(micetotal)
print(month)
micetotal=micetotal * 2
mouthvar=micetotal * month
print(mouthvar)

Что-то не работает, ладно завтра исправлю.PepeWh.gif?1610052035

Закись Ашота

Пользователь

Регистрация: 10.05.2013

Сообщения: 14206

Рейтинг: 8142

Закись Ашота

Регистрация: 10.05.2013

Сообщения: 14206

Рейтинг: 8142

img
KeksovName сказал(а):

Возможно так!FeelsWowMan.png?1592046354

math = input('Enter month')

month = math
mouthvar = 1
month = int(month)
micetotal = 5
print(micetotal)
print(month)
micetotal=micetotal * 2
mouthvar=micetotal * month
print(mouthvar)
Нажмите, чтобы раскрыть...

Ну так ты запусти этот код, он выдает неправильный ответ.

Тебе нужно найти функцию которая соответствует прогрессии 5,10,20,40,80,160...

Тогда тебе не понадобится цикл, ты просто подставишь количество месяцев в эту функцию и получишь ответ. И тогда весь код в одну строчку записывается.

Kaito shoma

Пользователь

Регистрация: 09.03.2021

Сообщения: 1386

Рейтинг: 1928

Kaito shoma

Регистрация: 09.03.2021

Сообщения: 1386

Рейтинг: 1928

img

Напиши код в одну строчку, который считает количество букв "a" во введенной пользователем строке

Zacateca

Пользователь

Регистрация: 22.12.2017

Сообщения: 34318

Рейтинг: 13372

Zacateca

Регистрация: 22.12.2017

Сообщения: 34318

Рейтинг: 13372

Serg121 сказал(а):

Чатгпт


Вот пример кода на Python, использующий библиотеку PyModbus для перенаправления пакета данных из Modbus RTU over TCP в Modbus RTU (Serial Port):


```python

from pymodbus.client.sync import ModbusTcpClient

from pymodbus.client.sync import ModbusSerialClient

from pymodbus.transaction import ModbusRtuFramer


# Подключение к Modbus TCP

tcp_client = ModbusTcpClient('192.168.1.1') # Указываем IP-адрес Modbus TCP сервера

tcp_client.connect()


# Подключение к Modbus RTU (Serial Port)

serial_client = ModbusSerialClient(method='rtu', port='/dev/ttyUSB0', baudrate=9600, timeout=1, framer=ModbusRtuFramer())


# Чтение данных с Modbus TCP и запись в Modbus RTU

while True:

# Чтение данных с Modbus TCP

tcp_data = tcp_client.read_holding_registers(address=0, count=10, unit=1) # Пример чтения 10 регистров, начиная с адреса 0


# Запись данных в Modbus RTU

if tcp_data.isError():

print('Ошибка чтения данных с Modbus TCP:', tcp_data)

else:

write_result = serial_client.write_registers(address=0, values=tcp_data.registers, unit=1) # Пример записи данных в регистры Modbus RTU


if write_result.isError():

print('Ошибка записи данных в Modbus RTU:', write_result)


# Закрытие соединений

tcp_client.close()

serial_client.close()

```


Обратите внимание, что вы должны заменить `'192.168.1.1'` на IP-адрес вашего Modbus TCP сервера и `'/dev/ttyUSB0'` на соответствующий серийный порт вашего Modbus RTU устройства.


Этот код устанавливает соединение с Modbus TCP сервером, читает данные с помощью функции `read_holding_registers()`, а затем записывает их в Modbus RTU с помощью функции `write_registers()`. Вы можете настроить этот код в соответствии с вашими потребностями, изменяя адреса регистров и другие параметры функций чтения и записи.


Убедитесь, что у вас установлена библиотека PyModbus, чтобы этот код работал. Вы можете установить ее с по мощью команды `pip install pymodbus`.

Нажмите, чтобы раскрыть...

Это говно не работает.

Я уже пробовал. Видимо старая версия модуля. Лень самому колупать.

KeksovName

Пользователь

Регистрация: 13.10.2018

Сообщения: 6893

Рейтинг: -293

KeksovName

Регистрация: 13.10.2018

Сообщения: 6893

Рейтинг: -293

Скачал курс-буду дополнительно его смотреть и практиковаться!PepeWh.gif?1610052035

Сейчас немного посмотрю и спать!

Zacateca

Пользователь

Регистрация: 22.12.2017

Сообщения: 34318

Рейтинг: 13372

Zacateca

Регистрация: 22.12.2017

Сообщения: 34318

Рейтинг: 13372

KeksovName сказал(а):

Скачал курс-буду дополнительно его смотреть и практиковаться!PepeWh.gif?1610052035

Сейчас немного посмотрю и спать!

Нажмите, чтобы раскрыть...

Офигел чтоли? PeepoAngry.png?1598477725

А ну сел кодить!! pepestandangry.png?1627073256

Lampoviy

Пользователь

Регистрация: 14.04.2023

Сообщения: 34

Рейтинг: 24

Lampoviy

Регистрация: 14.04.2023

Сообщения: 34

Рейтинг: 24

Neferp1tou сказал(а):

AnimeVeryLaught.gif?1621091378 То есть асинхронно это ты сделать не сможешь?

Нажмите, чтобы раскрыть...

Асинхронно я могу это сделать и в одном процессе, в запускать два event-loop в разных процессах с одним вызовом функции в каждом, эта как минимум странно. Как максимум тебе пора обратно на Skillboxpepeshapka.png?1592046135


Neferp1tou

Пользователь

Регистрация: 17.09.2016

Сообщения: 11958

Рейтинг: 6247

Нарушения: 55

Neferp1tou

Регистрация: 17.09.2016

Сообщения: 11958

Рейтинг: 6247

Нарушения: 55

img
Lampoviy сказал(а):

Асинхронно я могу это сделать и в одном процессе, в запускать два event-loop в разных процессах с одним вызовом функции в каждом, эта как минимум странно. Как максимум тебе пора обратно на Skillboxpepeshapka.png?1592046135


Нажмите, чтобы раскрыть...

sammyyPepekek.png?1598626065 А так ты, вот таким образом воспринял мою задачу. АХАХХАХА Я понял... Еще подумал, от чего ты высрал мультипроцессинг. roflanLico.png?1616515069



HaisTous

Пользователь

Регистрация: 27.08.2013

Сообщения: 3145

Рейтинг: 1121

HaisTous

Регистрация: 27.08.2013

Сообщения: 3145

Рейтинг: 1121

img
KeksovName сказал(а):

Задача с codewars:

Напишите функцию, которая принимает на вход целое число и возвращает количество битов, равных единице в двоичном представлении этого числа. Вы можете гарантировать, что ввод неотрицательный. Пример. Двоичное представление числа 1234 — 10011010010, поэтому в этом случае функция должна возвращать 5.

Беруюсь за решениеPepeWh.gif?1610052035

Нажмите, чтобы раскрыть...

print(f"{int(input()).bit_count()}")

KeksovName

Пользователь

Регистрация: 13.10.2018

Сообщения: 6893

Рейтинг: -293

KeksovName

Регистрация: 13.10.2018

Сообщения: 6893

Рейтинг: -293

В общем начал писать покерный калькулятор!

Начал с префлопа и вот что получилось!

Планы:

Дойти до флопа

Написать какую-нибудь функцию подсчёта карт(пока не придумал)PeepoRiot.gif?1660474708

def prcalculator(cards,limit,bank,players):


limit=int(limit)

bank=int(bank)

players=int(players)

badcard = 0

if players > 0 :

if cards == 'AA':


print('У вас самая лучшая рука')


badcard = 0

if cards == 'KK':


print('У вас вторая по значимости рука!Лучше только AA')


badcard = 0

if cards == 'QQ':


print('У вас третья по значимости рука!Лучше только AA и KK')


badcard = 0

if cards == ('JJ'):


print('У вас средняя рука,если не будет ничего на префлопе сбрасывайте')


badcard = 0

if cards == ('1010'):


print('У вас средняя рука,если не будет ничего на префлопе сбрасывайте')


badcard = 0

if cards == ('99'):


print('У вас средняя рука,если не будет ничего на префлопе сбрасывайте,лучше сбрасывайте')


badcard = 0

if cards == ('88'):


print('У вас плохая рука,если не будет ничего на префлопе сбрасывайте,лучше сбрасывайте')


badcard = 0

if cards == ('77'):


print('У вас плохая рука,если не будет ничего на префлопе сбрасывайте,лучше сбрасывайте')


badcard = 0

if cards != 'AA' and cards != 'KK'and cards != 'QQ'and cards != 'JJ'and cards != '1010'and cards != '99'and cards != '88'and cards != '77':


print('У вас мусорная рука,сбрасывайте лучше')


res = prcalculator(cards='99',limit=3,bank=10,players=5)
badcard удалю позже(пока не на что не влияет)

pochemyzamenya сказал(а):

Мы дожили до дня когда кекс заведет свой гитхаб и появится еще одно место которое он терроризирует?

Нажмите, чтобы раскрыть...

https://github.com/KeksovName/KeksovName

Но я не умею им пользоваться покаAquaCry.png?1621091234

HaisTous

Пользователь

Регистрация: 27.08.2013

Сообщения: 3145

Рейтинг: 1121

HaisTous

Регистрация: 27.08.2013

Сообщения: 3145

Рейтинг: 1121

img
KeksovName сказал(а):

В общем начал писать покерный калькулятор!

Начал с префлопа и вот что получилось!

Планы:

Дойти до флопа

Написать какую-нибудь функцию подсчёта карт(пока не придумал)PeepoRiot.gif?1660474708

def prcalculator(cards,limit,bank,players):


limit=int(limit)

bank=int(bank)

players=int(players)

badcard = 0

if players > 0 :

if cards == 'AA':


print('У вас самая лучшая рука')


badcard = 0

if cards == 'KK':


print('У вас вторая по значимости рука!Лучше только AA')


badcard = 0

if cards == 'QQ':


print('У вас третья по значимости рука!Лучше только AA и KK')


badcard = 0

if cards == ('JJ'):


print('У вас средняя рука,если не будет ничего на префлопе сбрасывайте')


badcard = 0

if cards == ('1010'):


print('У вас средняя рука,если не будет ничего на префлопе сбрасывайте')


badcard = 0

if cards == ('99'):


print('У вас средняя рука,если не будет ничего на префлопе сбрасывайте,лучше сбрасывайте')


badcard = 0

if cards == ('88'):


print('У вас плохая рука,если не будет ничего на префлопе сбрасывайте,лучше сбрасывайте')


badcard = 0

if cards == ('77'):


print('У вас плохая рука,если не будет ничего на префлопе сбрасывайте,лучше сбрасывайте')


badcard = 0

if cards != 'AA' and cards != 'KK'and cards != 'QQ'and cards != 'JJ'and cards != '1010'and cards != '99'and cards != '88'and cards != '77':


print('У вас мусорная рука,сбрасывайте лучше')


res = prcalculator(cards='99',limit=3,bank=10,players=5)
badcard удалю позже(пока не на что не влияет)

https://github.com/KeksovName/KeksovName

Но я не умею им пользоваться покаAquaCry.png?1621091234

Нажмите, чтобы раскрыть...
  1. Вместо print должен быть return
  2. Изучи такие встроенные структуры данных, как список, кортеж, множество и словарь.
  3. Вложенные условия старайся избегать, если есть такая возможность, так как код тяжело читать.
  4. Помимо оператора if, есть такие операторы, как elif и else.

Nubiroed

Пользователь

Регистрация: 01.02.2021

Сообщения: 3739

Рейтинг: 3334

Nubiroed

Регистрация: 01.02.2021

Сообщения: 3739

Рейтинг: 3334

напиши простейший менеджер файловpeepothink.png?1627073265, денек затея займет

Rak 12

Пользователь

Регистрация: 01.02.2013

Сообщения: 3

Рейтинг: 4

Rak 12

Регистрация: 01.02.2013

Сообщения: 3

Рейтинг: 4

KeksovName сказал(а):

Итак, сегодня пытался писать код на Python и мне понравилось!PepeWh.gif?1610052035

Возможно человек(который давал задания) обиделся что я написал про него на форуме и больше не захочет со мной общаться!PepeCry.png

Но я хочу писать свой код, где брать задачки по Python'у?

Есть места куда записывать свой нубский код?PepeHappy.gif?1613920413

Подскажите сайты, форумы с задачками для программистов!

Это будет дневник про то как я пишу свой кодCoolNut.png?1619501245


Нажмите, чтобы раскрыть...

https://leetcode.com/problemset/all/

KeksovName

Пользователь

Регистрация: 13.10.2018

Сообщения: 6893

Рейтинг: -293

KeksovName

Регистрация: 13.10.2018

Сообщения: 6893

Рейтинг: -293

Сделал выдавание рандом карт для игроков от 1 до 10!PepeWh.gif?1610052035

Спойлер

HaisTous сказал(а):

  • Вместо print должен быть return
  • Изучи такие встроенные структуры данных, как список, кортеж, множество и словарь.
  • Вложенные условия старайся избегать, если есть такая возможность, так как код тяжело читать.
  • Помимо оператора if, есть такие операторы, как elif и else.

Нажмите, чтобы раскрыть...

Я не всё знаю, делаю как могу!AquaCry.png?1621091234

Neferp1tou

Пользователь

Регистрация: 17.09.2016

Сообщения: 11958

Рейтинг: 6247

Нарушения: 55

Neferp1tou

Регистрация: 17.09.2016

Сообщения: 11958

Рейтинг: 6247

Нарушения: 55

img
KeksovName сказал(а):

Сделал выдавание рандом карт для игроков от 1 до 10!PepeWh.gif?1610052035

Спойлер

Я не всё знаю, делаю как могу!AquaCry.png?1621091234

Нажмите, чтобы раскрыть...

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

KeksovName

Пользователь

Регистрация: 13.10.2018

Сообщения: 6893

Рейтинг: -293

KeksovName

Регистрация: 13.10.2018

Сообщения: 6893

Рейтинг: -293

Neferp1tou сказал(а):

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

Нажмите, чтобы раскрыть...

Я где-то читал что нужно упрощать логику работы!


Поэтому наверное из этой функции(большой) сделаю генератор случайных карт=на входе количество игроков

на выходе карты для них.

Если получится конечно.PepeHappy.gif?1613920413

Neferp1tou

Пользователь

Регистрация: 17.09.2016

Сообщения: 11958

Рейтинг: 6247

Нарушения: 55

Neferp1tou

Регистрация: 17.09.2016

Сообщения: 11958

Рейтинг: 6247

Нарушения: 55

img
KeksovName сказал(а):

Я где-то читал что нужно упрощать логику работы!


Поэтому наверное из этой функции(большой) сделаю генератор случайных карт=на входе количество игроков

на выходе карты для них.

Если получится конечно.PepeHappy.gif?1613920413

Нажмите, чтобы раскрыть...

Дело не в упрощении, сейчас у тебя в принципе нет логики, ты просто создал условия для каждой отдельной ситуации. Это не логика, а перечень случаев. Логика была бы, если бы ты создал условно один массив, в который добавил бы карты, по градации от самой большой, до самой мелкой. После чего по простой формуле теор вера, ты можешь создать всевозможные варианты комбинаций руки, на втором шаге прописать логику определения "силы" руки. Используя такие критерии как "пара" одинаковые индексы в массиве, а также "величина карты" через индекс на котором она находится, придав определенный коэфициент через простую формулу для каждый величины, программа сгенерирует тебе все возможные "руки" и их место в рейтинге "силы". Это пример логики.