Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Компьютеры » Прикладное программирование » Python

Модерирует : ShIvADeSt

 Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26

Открыть новую тему     Написать ответ в эту тему

Adm10



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Здесь обсуждается всё, что связано с использованием Python: программирование, библиотеки, ресурсы и другие вопросы

Python


Python - высокоуровневый язык программирования общего назначения с динамической типизацией и автоматическим управлением памятью, ориентированный на повышение производительности разработчика, читаемости кода и его качества, а также на обеспечение переносимости написанных на нём программ

С чего начать?
Простой, понятный и вместе с тем грамотный ресурс на русском языке: pythonworld.ru + самоучитель
Библия PEP8

Всего записей: 35 | Зарегистр. 13-10-2006 | Отправлено: 15:48 16-06-2007 | Исправлено: shrmn, 22:22 07-03-2021
akaGM

Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Steepe_Hare
 
может и есть, надо на питон-ресурсах искать...
только зачем?
есть конкретная задача? -- вот под неё / о ней и ищи, да хоть на том же гитхабе...

Всего записей: 24052 | Зарегистр. 06-12-2002 | Отправлено: 20:57 14-02-2020
Vasily_Koshkin



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Mavrikii

Код:
try:
    # код работающий с файлами
    # ...
except FileNotFoundError as not_found:
    print(not_found.filename)

То есть только вручную оборачивать в try ... except все файловые операции по всему коду? А один раз заменить стандартный обработчик ошибок своим собственным, автоматически влияющим на все подключаемые модули и пакеты, я так понимаю, не светит?  
Спасибо за ликбез, буду знать.

Всего записей: 1377 | Зарегистр. 07-02-2004 | Отправлено: 00:14 16-02-2020 | Исправлено: Vasily_Koshkin, 00:14 16-02-2020
Mavrikii

Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Vasily_Koshkin

Цитата:
А один раз заменить стандартный обработчик ошибок своим собственным

что то типа

Код:
import sys
 
def my_excepthook(type, value, traceback):
    print 'Unhandled error:', type, value
 
sys.excepthook = my_excepthook

 
https://stackoverflow.com/questions/25495028/why-doesnt-sys-excepthook-work
 
но в ситуации выше сообщение было от WinAPI и там название файла вообще может не быть (ибо была попытка запустить программу отдельным потоком), сам питон скажет  

Цитата:
IOError: [Errno 2] No such file or directory: 'filename.ext'

Всего записей: 15038 | Зарегистр. 20-09-2014 | Отправлено: 00:43 16-02-2020 | Исправлено: Mavrikii, 00:46 16-02-2020
Vasily_Koshkin



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Mavrikii

Цитата:
но в ситуации выше сообщение было от WinAPI и там название файла вообще может не быть (ибо была попытка запустить программу отдельным потоком), сам питон скажет
 

Цитата:
IOError: [Errno 2] No such file or directory: 'filename.ext'

Вот этого я конечно не знал, так как привык, что имя файла по умолчанию выводится. Собственно, вопрос "Где взять имя?" поэтому и возник. Первый раз сталкиваюсь с его отсутствием.

Всего записей: 1377 | Зарегистр. 07-02-2004 | Отправлено: 01:28 17-02-2020 | Исправлено: Vasily_Koshkin, 01:29 17-02-2020
Hinzor



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Я новичек. Решил поизучать питон, самые азы. Кто-то знает почему не работает?
n=int(input('Please, enter value for n: '))
    if n>=0:
        coundown(n)
    else:
        countup(n)
def countdown(n):
    if n < 0:
        print('Blastoff!')
    else:
        print(n)
        countdown(n - 1)
 
def countup(n):
    if n >= 0:
        print('Blastoff!')
    else:
        print(n)
        countup(n + 1)
 
Выдает:
 if n>=0:
    ^
IndentationError: unexpected indent
 
Process finished with exit code 1

Всего записей: 45 | Зарегистр. 16-08-2007 | Отправлено: 17:12 20-02-2020
Mavrikii

Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Hinzor

Цитата:
IndentationError: unexpected indent

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

Код:
def countdown(n):
    if n < 0:
        print('Blastoff!')
    else:
        print(n)
        countdown(n - 1)
 
def countup(n):
    if n >= 0:
        print('Blastoff!')
    else:
        print(n)
        countup(n + 1)
 
n = int(input('Please, enter value for n: '))
if n >= 0:
  countdown(n)
else:
  countup(n)

Всего записей: 15038 | Зарегистр. 20-09-2014 | Отправлено: 21:57 22-02-2020
Hinzor



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Спасибо
 
Добавлено:
кто-то возмется помогать мне с python задачками за умеренную плату?

Всего записей: 45 | Зарегистр. 16-08-2007 | Отправлено: 18:18 26-02-2020
Mavrikii

Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Hinzor
будут вопросы - спрашивайте тут )) но не вида - "напишите за меня" ))

Всего записей: 15038 | Зарегистр. 20-09-2014 | Отправлено: 21:42 26-02-2020 | Исправлено: Mavrikii, 21:42 26-02-2020
Hinzor



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
def is_divisible(x, y):  
    if x>0 and y>0:      
        print("x and y are positive \n function is_powers starts")  
    else:                  
        print('x or Y is negative or = 0 \nfunction is_power will be stopped')  
def is_power(x, y):        
    if y == 1:              
        print("y=1 , function is_power will be stopped")  
    elif x == y:            
        print("x=y , function is_power will be stopped")  
    else:
        print(x / y)        
        is_power(x - y, y)  
 
print("is_power(27, 3) returns: ", is_power(27, 3))    
 
Это одна фунцкия дожна была вызывать другую, проверять на позитивность агрументы, а вторая искать деление на корень (логарифм?). Я знаю это далеко от идеала.  
 
 
 

Всего записей: 45 | Зарегистр. 16-08-2007 | Отправлено: 07:29 27-02-2020
Mavrikii

Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Hinzor
вопрос то в чем?

Всего записей: 15038 | Зарегистр. 20-09-2014 | Отправлено: 09:36 27-02-2020
Hinzor



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Вцелом вопроса два: почему одна функция не вызывает вторую. И как првильно в питоне выразить рекурсивный поиск степени числа через основу м сумму(тоесть там дано 27 и 3, оно должно бьло найти рекурсивно что степень 3).

Всего записей: 45 | Зарегистр. 16-08-2007 | Отправлено: 16:28 27-02-2020
Mavrikii

Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Hinzor

Цитата:
почему одна функция не вызывает вторую

потому, что ее вызов там не прописан. чтобы функция сработала - она должна быть вызвана, где это ?)

Цитата:
как првильно в питоне выразить

определите понятие "правильно".

Всего записей: 15038 | Зарегистр. 20-09-2014 | Отправлено: 21:47 27-02-2020
akaGM

Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Mavrikii
 
присоветуй, плиз, какой-нить простенький онлайн-справочник по ключ.словам, функам?

Всего записей: 24052 | Зарегистр. 06-12-2002 | Отправлено: 15:00 28-02-2020
Mavrikii

Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
akaGM

Цитата:
какой-нить простенький онлайн-справочник по ключ.словам, функам?

https://docs.python.org/3.9/reference/

Всего записей: 15038 | Зарегистр. 20-09-2014 | Отправлено: 22:07 28-02-2020
akaGM

Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Mavrikii
 
да, стормозил :)
спасибо...

Всего записей: 24052 | Зарегистр. 06-12-2002 | Отправлено: 22:15 28-02-2020
Hinzor



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
def any_lowercase1(s):
    for c in s:
        if c.islower():
            return True
        else:
            return False
 
 
any_lowercase1('string')
 
почему не выдет True ?

Всего записей: 45 | Зарегистр. 16-08-2007 | Отправлено: 21:31 02-03-2020
Mavrikii

Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Hinzor

Цитата:
почему не выдет True ?

а почему должно что то выдавать? вы вернули значение, но не присвоили его никакой переменной, ни сделали какого либо вывода этого значения.
 
print(any_lowercase1('string'))
выдаст

Всего записей: 15038 | Зарегистр. 20-09-2014 | Отправлено: 21:34 02-03-2020 | Исправлено: Mavrikii, 21:35 02-03-2020
Hinzor



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
большое спасибо

Всего записей: 45 | Зарегистр. 16-08-2007 | Отправлено: 21:39 02-03-2020
Hinzor



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
def my_sqrt(a):
    while True:
        x = -1
        y = (x + a / x) / 2.0
        import math(z)
        z=math.sqrt(a)
        if y == x:
            break
 
def test_sqrt(n):
    while n > 0:
        print(n)
        n = n - 1
        diff=my_sqrt(a)-test_sqrt(n)
           if n==9:
               print('Done')
    print("Stop")
    return my_sqrt(n) and test_sqrt(n)
 
print("a = " (a) "| my_sqrt(a) =" (my_sqrt(a)) "| math.sqrt(a) =" (z) "| diff =" (diff))
 
 
это должны были добываться корни и сравниваться со встроенной функцмей math плоть до цифры 9 где и остановиться. Вид хотел быть какой-то такой:
 
 
a = 1 | my_sqrt(a) = 1 | math.sqrt(a) = 1.0 | diff = 0.0
a = 2 | my_sqrt(a) = 1.41421356237 | math.sqrt(a) = 1.41421356237 | diff = 2.22044604925e-16
a = 3 | my_sqrt(a) = 1.73205080757 | math.sqrt(a) = 1.73205080757 | diff = 0.0
a = 4 | my_sqrt(a) = 2.0 | math.sqrt(a) = 2.0 | diff = 0.0
a = 5 | my_sqrt(a) = 2.2360679775 | math.sqrt(a) = 2.2360679775 | diff = 0.0
a = 6 | my_sqrt(a) = 2.44948974278 | math.sqrt(a) = 2.44948974278 | diff = 0.0
a = 7 | my_sqrt(a) = 2.64575131106 | math.sqrt(a) = 2.64575131106 | diff = 0.0
a = 8 | my_sqrt(a) = 2.82842712475 | math.sqrt(a) = 2.82842712475 | diff = 4.4408920985e-16
a = 9 | my_sqrt(a) = 3.0 | math.sqrt(a) = 3.0 | diff = 0.0  
 
 
подскажите ошибки если не сложно, я знаю там не только проблемы с math функцией.

Всего записей: 45 | Зарегистр. 16-08-2007 | Отправлено: 08:06 03-03-2020
Mavrikii

Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Hinzor
настоятельно рекомендую почитать как процессор работает с числами с плавающей запятой.
к примеру тут - https://habr.com/ru/post/112953/
 
ибо
Цитата:
if y == x:

нельзя
 

Цитата:
import math(z)

импорты делаются в начале файла, и не как функция (нет там (z))
 

Цитата:
print("a = " (a) "| my_sqrt(a) =" (my_sqrt(a)) "| math.sqrt(a) =" (z) "| diff =" (diff))

что этим хотели сказать? и почему вне цикла??
 

Цитата:
           if n==9:
               print('Done')
    print("Stop")

И почему оно должно остановиться? Прочто print("Stop") цикл не прервет.
 
 

Цитата:
diff=my_sqrt(a)-test_sqrt(n)

рекурсивный вызов test_sqrt никогда не закончится
 
...
и еще куча разной фигни
 

Код:
import math
 
def my_sqrt(a):
  x = 1.
  y = a
  eps = 1e-12
  while abs(x - y) > eps:
    x = (x + y) / 2.0
    y = a / x
  return x
 
def run_me(n_max):
  for n in range(1, n_max + 1):
    z1 = my_sqrt(n)
    z2 = math.sqrt(n)
    diff = z1 - z2
    print("n = " + str(n)  + " | my_sqrt(n) = " + str(z1) +
          " | math.sqrt(n) = " + str(z2) +  " | diff = " + str(diff))
 
run_me(9)

 
вывод

Цитата:
n = 1 | my_sqrt(n) = 1.0 | math.sqrt(n) = 1.0 | diff = 0.0
n = 2 | my_sqrt(n) = 1.414213562373095 | math.sqrt(n) = 1.4142135623730951 | diff = -2.220446049250313e-16
n = 3 | my_sqrt(n) = 1.7320508075688772 | math.sqrt(n) = 1.7320508075688772 | diff = 0.0
n = 4 | my_sqrt(n) = 2.000000000000002 | math.sqrt(n) = 2.0 | diff = 2.220446049250313e-15
n = 5 | my_sqrt(n) = 2.236067977499978 | math.sqrt(n) = 2.23606797749979 | diff = 1.8829382497642655e-13
n = 6 | my_sqrt(n) = 2.449489742783178 | math.sqrt(n) = 2.449489742783178 | diff = 0.0
n = 7 | my_sqrt(n) = 2.6457513110645907 | math.sqrt(n) = 2.6457513110645907 | diff = 0.0
n = 8 | my_sqrt(n) = 2.82842712474619 | math.sqrt(n) = 2.8284271247461903 | diff = -4.440892098500626e-16
n = 9 | my_sqrt(n) = 3.0 | math.sqrt(n) = 3.0 | diff = 0.0

Всего записей: 15038 | Зарегистр. 20-09-2014 | Отправлено: 08:18 03-03-2020 | Исправлено: Mavrikii, 08:38 03-03-2020
Открыть новую тему     Написать ответ в эту тему

Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26

Компьютерный форум Ru.Board » Компьютеры » Прикладное программирование » Python


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.B0ard
© Ru.B0ard 2000-2024

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru