본문 바로가기

python 공부2392

파이썬 함수가 호출자가 인식 한대로 일부 인수를 수정할 수 있지만 다른 인수는 수정할 수없는 이유는 무엇입니까? 변수 범위에 대한 Python의 접근 방식을 이해하려고합니다. 이 예에서 f () 가 main () 내에서 인식되는 것처럼 x 의 값을 변경할 수 있지만 n ? def f(n, x): n = 2 x.append(4) print('In f():', n, x) def main(): n = 1 x = [0,1,2,3] print('Before:', n, x) f(n, x) print('After: ', n, x) main() 산출: Before: 1 [0, 1, 2, 3] In f(): 2 [0, 1, 2, 3, 4] After: 1 [0, 1, 2, 3, 4] 해결 방법 일부 답변에는 함수 호출 컨텍스트에 "복사"라는 단어가 포함되어 있습니다. 혼란 스러워요. Python은 항상 함수 호출 중에 전달하는 객.. 2020. 10. 4.
파이썬에서 __setattr__을 사용하는 이유는 무엇입니까? x.a = 1 과 같은 단순한 참조 대신 __ setattr __ 을 사용하는 이유를 모르겠습니다. 이 예를 이해합니다. class Rectangle: def __init__(self): self.width = 0 self.height = 0 x=Rectangle() x.width=20 x.__setattr__('height',30) setattr(x,'width',99) 그러나 문자열 ( '높이')에 따라 코드를 사용하는 이유를 이해하지 마십시오. __ setattr __ 의 장점이 무엇인지 설명해 주시겠습니까? 해결 방법 당신은 그것을 스스로 부르지 않습니다. 기간. 이름을 미리 모르기 때문에 문자열을 사용해야하는 경우 ( 매우 나쁜 생각이 필요하다고 생각할 수있는 모든 경우의 99 %에서 거의 항상.. 2020. 10. 4.
파이썬 Sorting dictionary keys in python 각 키가 int 값을 참조하는 사전이 있습니다. 값에 따라 키를 목록으로 정렬하는 가장 좋은 방법은 무엇입니까? 해결 방법 >>> mydict = {'a':1,'b':3,'c':2} >>> sorted(mydict, key=lambda key: mydict[key]) ['a', 'c', 'b'] 참조 페이지 https://stackoverflow.com/questions/575819 2020. 10. 4.
파이썬 pyqt: how to remove a widget? 해결 방법 글쎄, 이것은 작동합니다. 제거하려는 위젯에서 widget.setParent (None) 를 호출하십시오. 레이아웃에 추가하면 위젯이 컨테이너에 추가되는 방식이 마음에 들지만 레이아웃에서 제거하는 것은 재미가 없습니다. 참조 페이지 https://stackoverflow.com/questions/5899826 2020. 10. 4.
파이썬 Equation parsing in Python 런타임에 사용자가 입력 할 수있는 "sin (x) * x ^ 2"와 같은 문자열을 (쉽게) 가져와 다음 값에 대해 평가할 수있는 Python 함수를 생성하려면 어떻게해야합니까? x ? 해결 방법 Python 표기법을 사용하는 경우 Python의 자체 내부 컴파일러가이를 구문 분석 할 수 있습니다. 표기법을 약간 변경하면 더 행복해질 것입니다. import compiler eq= "sin(x)*x**2" ast= compiler.parse( eq ) 작업 할 수있는 추상 구문 트리를 얻을 수 있습니다. 참조 페이지 https://stackoverflow.com/questions/594266 2020. 10. 3.
파이썬 Python - converting textfile contents into dictionary values/keys easily 다음과 같은 텍스트 파일이 있다고 가정 해 보겠습니다. line = "this is line 1" line2 = "this is the second line" line3 = "here is another line" line4 = "yet another line!" 그리고 "line *"이 키이고 따옴표로 묶인 텍스트를 값으로 사용하는 동시에 등호를 제거하는 사전 키 / 값으로 빠르게 변환하고 싶습니다. 파이썬에서 이것을 수행하는 가장 좋은 방법은 무엇입니까? 해결 방법 f = open(filepath, 'r') answer = {} for line in f: k, v = line.strip().split('=') answer[k.strip()] = v.strip() f.close() 도움이 되었기를 바랍.. 2020. 10. 3.
파이썬 python-3.x에서 사전을 사용하여 문자열을 어떻게 포맷합니까? 저는 사전을 사용하여 문자열 형식을 지정하는 것을 좋아합니다. 사용중인 문자열 형식을 읽고 기존 사전을 활용할 수 있도록 도와줍니다. 예를 들면 : class MyClass: def __init__(self): self.title = 'Title' a = MyClass() print 'The title is %(title)s' % a.__dict__ path = '/path/to/a/file' print 'You put your file here: %(path)s' % locals() 그러나 동일한 작업을 수행하는 파이썬 3.x 구문을 알아낼 수 없습니다 (또는 가능하다면). 다음을하고 싶습니다 # Fails, KeyError 'latitude' geopoint = {'latitude':41.123,'l.. 2020. 10. 3.
파이썬 Python에서 이미지를 여러 조각으로 분할하는 방법 PIL을 사용하여 사진을 여러 조각으로 분할하려고합니다. def crop(Path,input,height,width,i,k,x,y,page): im = Image.open(input) imgwidth = im.size[0] imgheight = im.size[1] for i in range(0,imgheight-height/2,height-2): print i for j in range(0,imgwidth-width/2,width-2): print j box = (j, i, j+width, i+height) a = im.crop(box) a.save(os.path.join(Path,"PNG","%s" % page,"IMG-%s.png" % k)) k +=1 하지만 작동하지 않는 것 같습니다. 사진을 분할.. 2020. 10. 3.
파이썬 sum ()과 같은 함수는 무엇입니까? 생성물()? sum([3,4,5]) == 3 + 4 + 5 == 12 대신 제품을 반환하는 함수를 찾고 있습니다. somelib.somefunc([3,4,5]) == 3 * 4 * 5 == 60 그러한 기능이 존재한다고 확신하지만 찾을 수 없습니다. 해결 방법 찾고있는 함수는 prod () 또는 product () 라고하지만 Python에는 해당 함수가 없습니다. 그래서, 당신은 당신 자신의 것을 작성해야합니다 (쉽습니다). from functools import reduce # Required in Python 3 import operator def prod(iterable): return reduce(operator.mul, iterable, 1) >>> prod(range(1, 5)) 24 >>> import .. 2020. 10. 3.
파이썬 Python datetime을 타임 스탬프로 변환하고 UTC로 다시 변환하면 여전히 현지 시간대를 사용합니다. utc 타임 스탬프를 제공하는 코드로 작업 중이며 적절한 날짜 / 시간으로 변환하고 싶습니다. 불행히도 pytz로 간단한 사례를 테스트 할 때 datetime에 6 시간이 추가되었습니다 (UTC에 대한 CST 오프셋). 다른 시간대 간의 차이도 계산하기 때문에 시간대 데이터를 올바르게 유지해야합니다. utc 타임 스탬프를 utc datetime으로 변환하는 이유와 방법에 대한 아이디어가 있습니까? In [1]: import pytz In [2]: from datetime import datetime In [3]: import time In [4]: datetime.fromtimestamp(time.mktime(datetime(7,1,1, tzinfo=pytz.UTC).timetuple()), tz=pyt.. 2020. 10. 3.