Уведомления

Группа в Telegram: @pythonsu

#1 Апрель 9, 2020 19:37:57

El_Tejon
Зарегистрирован: 2020-04-09
Сообщения: 3
Репутация: +  0  -
Профиль   Отправить e-mail  

Хьюстон, у нас проблемы.

from typing import List, Any

def all_the_same(elements: List) -> bool:
# your code here
return len(set(elements)) <= 1

Объясните пжлст, что это за конструкция “(elements: List) -> bool:” и ее функционал?

Офлайн

#2 Апрель 9, 2020 19:42:25

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

Хьюстон, у нас проблемы.

это аннотация типов, появилась, в версии 3.6, если мне не изменяет память.
подробнее читайт тут: https://devpractice.ru/python-lesson-18-annotations/
более развернуто тут https://habr.com/ru/company/lamoda/blog/432656/



==============================
Помещайте код в теги:
[code python][/code]
Бериегите свое и чужое время.

Отредактировано PEHDOM (Апрель 9, 2020 19:45:33)

Офлайн

#3 Апрель 9, 2020 21:17:15

AD0DE412
Зарегистрирован: 2019-05-12
Сообщения: 1130
Репутация: +  44  -
Профиль   Отправить e-mail  

Хьюстон, у нас проблемы.

прикольно мне почему то не встречалось (ну у меня и опыта конечно так)

это что можно объявить переменную без значения

.. и да а если указываешь тип то это что то вроде строгой типизации но не совсем (хотя нет в питоне типизация строгая тоесть получается эээ не денамическая строгая типизация 0_0)
блин заморочено как .. а для чего все это так в чем смысл?



1. пжлст, форматируйте код, это в панели создания сообщений, выделите код и нажмите что то вроде
2. чтобы вставить изображение залейте его куда нибудь (например), нажмите и вставьте ссылку на его url

есчщо

Отредактировано AD0DE412 (Апрель 9, 2020 21:48:00)

Офлайн

#4 Апрель 9, 2020 23:00:42

py.user.next
От:
Зарегистрирован: 2010-04-29
Сообщения: 10031
Репутация: +  857  -
Профиль   Отправить e-mail  

Хьюстон, у нас проблемы.

AD0DE412
хотя нет в питоне типизация строгая тоесть получается эээ не денамическая строгая типизация
Динамичность типизации и строгость типизации - никак не связанные понятия. В питоне типизация и строгая, и динамическая.



Офлайн

#5 Апрель 10, 2020 00:55:50

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

Хьюстон, у нас проблемы.

AD0DE412
а для чего все это так в чем смысл?
ну как минимум, ИМХО, для удобства чтения кода, ты сразу видишь какого типа аргументы должны подаваться, и какого вернуться вместо выяитывания докстрингов, котороых может и не быть.
+ не нужно заморачиваться с проверкой типов, и выискивать долго в дебагере, где же сцуко, инт превратился в стр, оно само выдаст ошибку если тип не соответвует заявленому в аннотации.
ВОбщем пытаються скрестить ежа с ужом статическую и динамическую типизацию, У динамической типизации есть как свои плюсы, так и минусы, вот от минусов пытаются избавиться, типа чтоб и нах@й сесть и рыбку сьесть..



==============================
Помещайте код в теги:
[code python][/code]
Бериегите свое и чужое время.

Офлайн

#6 Апрель 10, 2020 07:56:08

AD0DE412
Зарегистрирован: 2019-05-12
Сообщения: 1130
Репутация: +  44  -
Профиль   Отправить e-mail  

Хьюстон, у нас проблемы.

PEHDOM
вот от минусов пытаются избавиться
ага создовая другие минусы … ладно не мне судить люди поумнее и поопытние меня придумали все это, но все ровно как то … эээ не превычно
спасиб



1. пжлст, форматируйте код, это в панели создания сообщений, выделите код и нажмите что то вроде
2. чтобы вставить изображение залейте его куда нибудь (например), нажмите и вставьте ссылку на его url

есчщо

Офлайн

#7 Апрель 10, 2020 12:26:11

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

Хьюстон, у нас проблемы.

AD0DE412
ага создовая другие минусы…но все ровно как то … эээ не превычн
ну эта штука вроде как опциональна, тоесть можно писать и без аннотаций, “по старому”, и ничего за это не будет.



==============================
Помещайте код в теги:
[code python][/code]
Бериегите свое и чужое время.

Офлайн

#8 Апрель 15, 2020 07:02:46

white
Зарегистрирован: 2018-11-28
Сообщения: 45
Репутация: +  0  -
Профиль   Отправить e-mail  

Хьюстон, у нас проблемы.

Добрый день!
Не хочу создавать новую тему, к тому же название этой 100% подходит.
Проблема такая:
Не компилируется в exe. Пишу в командной строке pyinstaller qwer.py (сам фаил находится в корне диска С)

C:\>pyinstaller qwer.py
894 INFO: PyInstaller: 3.6
894 INFO: Python: 3.6.0
909 INFO: Platform: Windows-10-10.0.17763-SP0
Traceback (most recent call last):
File “C:\Users\user\AppData\Local\Programs\Python\Python36\Scripts\pyinstaller-script.py”, line 11, in <module>
load_entry_point('PyInstaller==3.6', ‘console_scripts’, ‘pyinstaller’)()
File “c:\users\user\appdata\local\programs\python\python36\lib\site-packages\PyInstaller\__main__.py”, line 112, in run
spec_file = run_makespec(**vars(args))
File “c:\users\user\appdata\local\programs\python\python36\lib\site-packages\PyInstaller\__main__.py”, line 58, in run_makespec
spec_file = PyInstaller.building.makespec.main(filenames, **opts)
File “c:\users\user\appdata\local\programs\python\python36\lib\site-packages\PyInstaller\building\makespec.py”, line 456, in main
with open_file(specfnm, ‘w’, encoding='utf-8') as specfile:
PermissionError: Permission denied: ‘C:\\qwer.spec’

Код программы:

[code python]

from tkinter import *
from tkinter import messagebox

d = ' '

def transfer():
global d
C11 = C1.get()
C55 = C5.get()
A11 = A1.get()
A55 = A5.get()
A33 = A3.get()
try:
C11 = float(C11)
C55 = float(C55)
A11 = float(A11)
A55 = float(A55)
A33 = float(A33)
if A11 != A55:
d=C11+(A33-A11)*((C11-C55)/(A11-A55))
label6 = Label(root, width=20, font=("Ubunte", 10), text=d)
label6.grid(row=7, columnspan=2)
else:
messagebox.showerror("Ошибка", "Ошибка ввода данных")
except ValueError:
messagebox.showerror("Ошибка", "Должно быть введено число")

def telo():
global C1
global C5
global A1
global A5
global A3
global root

root = Tk()
root.geometry('350x200+0+0') #размер окна и координаты
root.title('Расчет') #название окна

label0 = Label(root, width=30, font=("Ubunte", 10), text='РАСЧЕТ')
label0.grid(row=0, columnspan=2)

label1 = Label(root, width=20, font=("Ubunte", 10), text='Мин. шкалы')
label1.grid(row=1, column=0)
C1 = Entry(root, width=10)
C1.grid(row=1, column=1)

label2 = Label(root, width=20, font=("Ubunte", 10), text='Макс. шкалы')
label2.grid(row=2, column=0)
C5 = Entry(root, width=10)
C5.grid(row=2, column=1)

label3 = Label(root, width=20, font=("Ubunte", 10), text='Мин.')
label3.grid(row=3, column=0)
A1 = Entry(root, width=10)
A1.grid(row=3, column=1)

label4 = Label(root, width=20, font=("Ubunte", 10), text='Макс.')
label4.grid(row=4, column=0)
A5 = Entry(root, width=10)
A5.grid(row=4, column=1)

label5 = Label(root, width=20, font=("Ubunte", 10), text='Изм A3')
label5.grid(row=5, column=0)
A3 = Entry(root, width=10)
A3.grid(row=5, column=1)

button1 = Button(root, text="Решение", font=("Ubunte", 10), command=transfer)
button1.grid(row=6, columnspan=2, sticky="ew")

label6 = Label(root, width=40, font=("Ubunte", 10), text=d)
label6.grid(row=7, columnspan=2)



telo()
root.mainloop()

[/code]

не пинайте сильно, это 2-ай попытка в написание чего либо.

Отредактировано white (Апрель 15, 2020 09:29:00)

Офлайн

#9 Апрель 15, 2020 09:55:50

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

Хьюстон, у нас проблемы.

white
не пинайте сильно,
Не!!! Будем сильно пинать. Вторая попытка а уже компилировать!!! Не надо этого делать.



Отредактировано doza_and (Апрель 15, 2020 09:56:19)

Офлайн

#10 Апрель 15, 2020 14:41:08

white
Зарегистрирован: 2018-11-28
Сообщения: 45
Репутация: +  0  -
Профиль   Отправить e-mail  

Хьюстон, у нас проблемы.

doza_and
С той проблемой разобрался.

Вопрос другой, решил модернизировать программу
 from tkinter import *
from PIL import ImageTk, Image
from tkinter import messagebox
d = ' erte '
def transfer():
        global d
        C11 = C1.get()
        С33 = C3.get()
        C55 = C5.get()
        A11 = A1.get()
        A55 = A5.get()
        A33 = A3.get()
        
        try:    
                C11 = float(C11)
                C33 = float(C33)
                C55 = float(C55)           
                A11 = float(A11)
                A55 = float(A55)
                A33 = float(A33)
                
                if A11 != A55:
                        d=C11+(A33-A11)*((C11-C55)/(A11-A55))
                        label6 = Label(window, width=20, font=("Ubunte", 10), text=d)
                        label6.grid(row=13, columnspan=3)
                else:
                      messagebox.showerror("Ошибка", "Ошибка ввода данных") 
        except ValueError:
                messagebox.showerror("Ошибка", "Должно быть введено число")
        
global C1
global C3
global C5
global A1
global A5
global A3
global window
window = Tk()
window.title("Join")
window.geometry("199x405")
window.configure(background = "white")   
    
path = "q.jpg"
img = ImageTk.PhotoImage(Image.open("C:\\qwe\\q.jpg"))
panel = Label(window, image = img)
panel.grid(rowspan=12, column=1)
A1 = Entry(window, width=10) #4 ма
A1.grid(row=0, column=0)
A3 = Entry(window, width=10) # изм
A3.grid(row=6, column=0)
A5 = Entry(window, width=10) #20 ма
A5.grid(row=11, column=0)
C1 = Entry(window, width=10) #начало шкалы 0
C1.grid(row=0, column=2)
C3 = Entry(window, width=10) #изм
C3.grid(row=6, column=2)
C5 = Entry(window, width=10) #конец шкалы 100
C5.grid(row=11, column=2)
button1 = Button(window, text="Решение", font=("Ubunte", 10), command=transfer)
button1.grid(row=12, columnspan=3, sticky="ew")
window.mainloop()

Почему ругается на переменную С33?
Exception in Tkinter callback
Traceback (most recent call last):
File “C:\Users\user\AppData\Local\Programs\Python\Python36\lib\tkinter\__init__.py”, line 1699, in __call__
return self.func(*args)
File “C:\Users\user\Desktop\Пересчет 4-20 рабоча.py”, line 19, in transfer
C33 = float(C33)
UnboundLocalError: local variable ‘C33’ referenced before assignment

Разобрался

Отредактировано white (Апрель 15, 2020 15:26:41)

Офлайн

Board footer

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

Powered by DjangoBB

Lo-Fi Version