คำถามติดแท็ก python

Python เป็นภาษาการเขียนโปรแกรมแบบหลายกระบวนทัศน์แบบไดนามิกพิมพ์อเนกประสงค์ มันถูกออกแบบมาให้เรียนรู้เข้าใจและใช้งานได้อย่างรวดเร็วและบังคับใช้ไวยากรณ์ที่สะอาดและสม่ำเสมอ โปรดทราบว่า Python 2 สนับสนุนอย่างเป็นทางการตั้งแต่วันที่ 01-01-2020 สำหรับคำถาม Python เฉพาะรุ่นให้เพิ่มแท็ก [python-2.7] หรือ [python-3.x] เมื่อใช้ตัวแปรหรือไลบรารี Python (เช่น Jython, PyPy, Pandas, Numpy) โปรดรวมไว้ในแท็ก

3
วิธีรับการอ้างอิงถึงแอตทริบิวต์ของโมดูลปัจจุบันใน Python
สิ่งที่ฉันพยายามจะมีลักษณะเช่นนี้ในบรรทัดคำสั่ง: >>> import mymodule >>> names = dir(mymodule) ฉันจะได้รับการอ้างอิงถึงชื่อทั้งหมดที่กำหนดmymoduleจากภายในmymoduleตัวเองได้อย่างไร? สิ่งนี้: # mymodule.py names = dir(__thismodule__)
119 python 

7
Python - ตัวแปลงสัญญาณ 'ascii' ไม่สามารถถอดรหัสไบต์ได้
ฉันสับสนจริงๆ ผมพยายามที่จะเข้ารหัส can't decode...แต่ข้อผิดพลาดดังกล่าว >>> "你好".encode("utf8") Traceback (most recent call last): File "<stdin>", line 1, in <module> UnicodeDecodeError: 'ascii' codec can't decode byte 0xe4 in position 0: ordinal not in range(128) ฉันรู้วิธีหลีกเลี่ยงข้อผิดพลาดที่มีคำนำหน้า "u" ในสตริง ฉันแค่สงสัยว่าทำไมจึงเกิดข้อผิดพลาด "ไม่สามารถถอดรหัส" เมื่อมีการเรียกการเข้ารหัส Python กำลังทำอะไรอยู่ภายใต้ประทุน?

5
คุณรันโค้ดของคุณเองควบคู่ไปกับเหตุการณ์วนซ้ำของ Tkinter ได้อย่างไร?
น้องชายของฉันเพิ่งเริ่มเขียนโปรแกรมและสำหรับโครงการ Science Fair ของเขาเขากำลังจำลองฝูงนกบนท้องฟ้า เขาอากาศที่สุดของรหัสของเขาเขียนและการทำงานเป็นอย่างดี แต่นกจำเป็นต้องย้ายทุกช่วงเวลา อย่างไรก็ตาม Tkinter ใช้เวลาในการวนรอบเหตุการณ์ของตัวเองดังนั้นรหัสของเขาจะไม่ทำงาน การทำเช่นroot.mainloop()วิ่งวิ่งและช่วยให้ทำงานและสิ่งเดียวที่มันจะทำงานเป็นตัวจัดการเหตุการณ์ มีวิธีที่จะให้โค้ดของเขาทำงานควบคู่ไปกับ mainloop หรือไม่ (โดยไม่ต้องใช้มัลติเธรดทำให้สับสนและควรทำให้ง่าย) และถ้าเป็นเช่นนั้นมันคืออะไร? ตอนนี้เขามาพร้อมกับแฮ็คที่น่าเกลียดโดยผูกmove()ฟังก์ชั่นของเขาไว้<b1-motion>ดังนั้นตราบใดที่เขากดปุ่มค้างไว้และกระดิกเมาส์มันก็ใช้งานได้ แต่มันต้องมีวิธีที่ดีกว่านี้
119 python  events  tkinter 

4
Unittest setUp / tearDown สำหรับการทดสอบหลายครั้ง
มีฟังก์ชันที่เริ่มต้น / สิ้นสุดของสถานการณ์การทดสอบหรือไม่? ฟังก์ชัน setUp และ tearDown จะเริ่มทำงานก่อน / หลังการทดสอบทุกครั้ง ฉันมักจะต้องการสิ่งนี้: class TestSequenceFunctions(unittest.TestCase): def setUpScenario(self): start() #launched at the beginning, once def test_choice(self): element = random.choice(self.seq) self.assertTrue(element in self.seq) def test_sample(self): with self.assertRaises(ValueError): random.sample(self.seq, 20) for element in random.sample(self.seq, 5): self.assertTrue(element in self.seq) def tearDownScenario(self): end() #launched at the end, …

12
ความคล้ายคลึงกันของโคไซน์ระหว่าง 2 รายการหมายเลข
ฉันจำเป็นต้องใช้ในการคำนวณความคล้ายคลึงกันโคไซน์ระหว่างสองรายการสมมติว่าตัวอย่างเช่นรายการที่ 1 ซึ่งเป็นdataSetIรายการที่ 2 dataSetIIซึ่งเป็น ฉันไม่สามารถใช้สิ่งใด ๆ เช่นnumpyหรือโมดูลสถิติ ฉันต้องใช้โมดูลทั่วไป (คณิตศาสตร์ ฯลฯ ) (และโมดูลที่น้อยที่สุดเท่าที่จะทำได้เพื่อลดเวลาที่ใช้) สมมติว่าdataSetIเป็น[3, 45, 7, 2]และเป็นdataSetII [2, 54, 13, 15]ความยาวของรายการจะเท่ากันเสมอ แน่นอนความคล้ายคลึงกันโคไซน์อยู่ระหว่าง0 และ 1format(round(cosine, 3))และเพื่อประโยชน์ของมันก็จะกลมกับทศนิยมที่สามหรือสี่ด้วย ขอบคุณมากล่วงหน้าสำหรับความช่วยเหลือ

7
มีนิพจน์สำหรับเครื่องกำเนิดไฟฟ้าที่ไม่สิ้นสุดหรือไม่?
มีนิพจน์เครื่องกำเนิดไฟฟ้าแบบตรงไปตรงมาที่สามารถให้องค์ประกอบที่ไม่มีที่สิ้นสุดหรือไม่? นี่เป็นคำถามเชิงทฤษฎีล้วนๆ ไม่จำเป็นต้องมีคำตอบที่ "ใช้ได้จริง" ที่นี่ :) ตัวอย่างเช่นการสร้างเครื่องกำเนิดไฟฟ้าที่ จำกัด เป็นเรื่องง่าย: my_gen = (0 for i in xrange(42)) อย่างไรก็ตามในการสร้างสิ่งที่ไม่มีที่สิ้นสุดฉันต้อง "สร้างมลพิษ" เนมสเปซของฉันด้วยฟังก์ชันปลอม: def _my_gen(): while True: yield 0 my_gen = _my_gen() การทำสิ่งต่างๆในไฟล์แยกกันและการทำในimportภายหลังจะไม่นับรวม ฉันยังรู้ว่าitertools.repeatมันทำอย่างนี้ ฉันอยากรู้ว่ามีวิธีแก้ปัญหาแบบซับเดียวหรือไม่

7
ตรวจสอบเวอร์ชันโมดูล Python ที่รันไทม์
โมดูล Python ของบุคคลที่สามจำนวนมากมีแอตทริบิวต์ที่เก็บข้อมูลเวอร์ชันสำหรับโมดูล (โดยปกติจะมีลักษณะคล้ายmodule.VERSIONหรือmodule.__version__) แต่บางโมดูลไม่มี ตัวอย่างเฉพาะของโมดูลดังกล่าว ได้แก่ libxslt และ libxml2 ฉันต้องการตรวจสอบว่าเวอร์ชันที่ถูกต้องของโมดูลเหล่านี้กำลังใช้งานอยู่ที่รันไทม์ มีวิธีทำไหม? วิธีแก้ปัญหาที่เป็นไปได้คือการอ่านซอร์สที่รันไทม์แฮชแล้วเปรียบเทียบกับแฮชของเวอร์ชันที่รู้จัก แต่นั่นเป็นเรื่องที่น่ารังเกียจ มีวิธีแก้ไขที่ดีกว่านี้หรือไม่?
119 python  module  version 

3
การเพิ่มป้ายชื่อแกน y ให้กับแกน y ทุติยภูมิใน matplotlib
ฉันสามารถเพิ่มป้ายกำกับ ay ให้กับแกน y ด้านซ้ายโดยใช้plt.ylabelแต่จะเพิ่มลงในแกน y รองได้อย่างไร table = sql.read_frame(query,connection) table[0].plot(color=colors[0],ylim=(0,100)) table[1].plot(secondary_y=True,color=colors[1]) plt.ylabel('$')
119 python  matplotlib 

8
python multithreading รอจนกว่าเธรดทั้งหมดจะเสร็จสิ้น
สิ่งนี้อาจถูกถามในบริบทที่คล้ายกัน แต่ฉันไม่สามารถหาคำตอบได้หลังจากค้นหาประมาณ 20 นาทีดังนั้นฉันจะถาม ฉันได้เขียนสคริปต์ Python (สมมติว่า scriptA.py) และสคริปต์ (สมมติว่า scriptB.py) ใน scriptB ฉันต้องการเรียก scriptA หลาย ๆ ครั้งด้วยอาร์กิวเมนต์ที่แตกต่างกันแต่ละครั้งจะใช้เวลาประมาณหนึ่งชั่วโมงในการรัน (มันเป็นสคริปต์ขนาดใหญ่ทำสิ่งต่างๆมากมาย .. ไม่ต้องกังวลกับมัน) และฉันต้องการที่จะสามารถเรียกใช้ scriptA พร้อมอาร์กิวเมนต์ที่แตกต่างกันทั้งหมดพร้อมกัน แต่ฉันต้องรอจนกว่าจะเสร็จสิ้นทั้งหมดก่อนที่จะดำเนินการต่อ รหัสของฉัน: import subprocess #setup do_setup() #run scriptA subprocess.call(scriptA + argumentsA) subprocess.call(scriptA + argumentsB) subprocess.call(scriptA + argumentsC) #finish do_finish() ฉันต้องการเรียกใช้ทั้งหมดsubprocess.call()ในเวลาเดียวกันจากนั้นรอจนกว่าทุกอย่างจะเสร็จสิ้นฉันจะทำอย่างไร ฉันพยายามใช้เธรดดังตัวอย่างที่นี่ : from threading import Thread …

5
ตัวเลข: แบ่งแต่ละแถวด้วยองค์ประกอบเวกเตอร์
สมมติว่าฉันมีอาร์เรย์จำนวนนับ: data = np.array([[1,1,1],[2,2,2],[3,3,3]]) และฉันมี "เวกเตอร์:" ที่ตรงกัน vector = np.array([1,2,3]) ฉันจะดำเนินการdataตามแต่ละแถวเพื่อลบหรือหารได้อย่างไรผลลัพธ์จึงเป็น: sub_result = [[0,0,0], [0,0,0], [0,0,0]] div_result = [[1,1,1], [1,1,1], [1,1,1]] เรื่องสั้นสั้น ๆ : ฉันจะดำเนินการกับแต่ละแถวของอาร์เรย์ 2 มิติด้วยสเกลาร์ 1D ที่สอดคล้องกับแต่ละแถวได้อย่างไร
119 python  arrays  numpy  scipy 

3
จะระงับคำเตือนในอนาคตของแพนด้าได้อย่างไร?
เมื่อฉันเรียกใช้โปรแกรม Pandas จะให้ 'คำเตือนในอนาคต' เหมือนด้านล่างทุกครั้ง D:\Python\lib\site-packages\pandas\core\frame.py:3581: FutureWarning: rename with inplace=True will return None from pandas 0.11 onward " from pandas 0.11 onward", FutureWarning) ฉันได้รับข้อความแล้ว แต่ฉันแค่ต้องการหยุดให้ Pandas แสดงข้อความดังกล่าวซ้ำแล้วซ้ำอีกมีพารามิเตอร์ buildin ใดที่ฉันสามารถตั้งค่าเพื่อให้ Pandas ไม่ปรากฏ 'คำเตือนในอนาคต' หรือไม่

4
ฉันจะบันทึกภาพด้วย PIL ได้อย่างไร?
ฉันเพิ่งทำการประมวลผลรูปภาพโดยใช้ไลบรารีรูปภาพ Python (PIL) โดยใช้โพสต์ที่ฉันพบก่อนหน้านี้เพื่อทำการแปลงฟูเรียร์ของรูปภาพและฉันไม่สามารถให้ฟังก์ชันบันทึกทำงานได้ รหัสทั้งหมดใช้งานได้ดี แต่จะไม่บันทึกภาพที่ได้: from PIL import Image import numpy as np i = Image.open("C:/Users/User/Desktop/mesh.bmp") i = i.convert("L") a = np.asarray(i) b = np.abs(np.fft.rfft2(a)) j = Image.fromarray(b) j.save("C:/Users/User/Desktop/mesh_trans",".bmp") ข้อผิดพลาดที่ฉันได้รับมีดังต่อไปนี้: save_handler = SAVE[string.upper(format)] # unknown format KeyError: '.BMP' ฉันจะบันทึกภาพด้วย Pythons PIL ได้อย่างไร?

1
Pandas ใช้กฎอะไรในการสร้างมุมมองเทียบกับสำเนา
ฉันสับสนเกี่ยวกับกฎที่ Pandas ใช้เมื่อตัดสินใจว่าการเลือกจาก dataframe เป็นสำเนาของ dataframe ดั้งเดิมหรือมุมมองจากต้นฉบับ ตัวอย่างเช่นถ้าฉันมี df = pd.DataFrame(np.random.randn(8,8), columns=list('ABCDEFGH'), index=range(1,9)) ฉันเข้าใจว่าqueryส่งคืนสำเนาเพื่อให้เป็นเช่นนั้น foo = df.query('2 < index <= 5') foo.loc[:,'E'] = 40 จะไม่มีผลกับ dataframe ดั้งเดิม, df. ฉันยังเข้าใจว่าสเกลาร์หรือส่วนที่ตั้งชื่อส่งคืนมุมมองดังนั้นการมอบหมายให้กับสิ่งเหล่านี้เช่น df.iloc[3] = 70 หรือ df.ix[1,'B':'E'] = 222 จะเปลี่ยนdfไป แต่ฉันหลงทางเมื่อต้องเจอกับคดีที่ซับซ้อนกว่านี้ ตัวอย่างเช่น, df[df.C <= df.B] = 7654321 การเปลี่ยนแปลงdfแต่ df[df.C <= df.B].ix[:,'B':'E'] ไม่. มีกฎง่ายๆไหมที่นุ่นใช้ว่าฉันหายไป? …

10
คุณจะตั้งค่าแอตทริบิวต์คลาสจากอาร์กิวเมนต์ตัวแปร (kwargs) ใน python ได้อย่างไร
สมมติว่าฉันมีคลาสที่มีคอนสตรัคเตอร์ (หรือฟังก์ชันอื่น ๆ ) ที่รับอาร์กิวเมนต์จำนวนตัวแปรแล้วตั้งค่าเป็นคลาสแอ็ตทริบิวต์ตามเงื่อนไข ฉันสามารถตั้งค่าได้ด้วยตนเอง แต่ดูเหมือนว่าพารามิเตอร์ตัวแปรจะเป็นเรื่องธรรมดามากพอใน python ที่ควรมีสำนวนทั่วไปสำหรับการทำเช่นนี้ แต่ฉันไม่แน่ใจว่าจะทำแบบไดนามิกได้อย่างไร ฉันมีตัวอย่างการใช้ eval แต่แทบจะไม่ปลอดภัย ฉันต้องการทราบวิธีที่เหมาะสมในการทำเช่นนี้ - อาจใช้แลมด้า? class Foo: def setAllManually(self, a=None, b=None, c=None): if a!=None: self.a = a if b!=None: self.b = b if c!=None: self.c = c def setAllWithEval(self, **kwargs): for key in **kwargs: if kwargs[param] != None eval("self." …
119 python 

6
จะอ่านและเขียนไฟล์ INI ด้วย Python3 ได้อย่างไร?
ฉันต้องการอ่านเขียนและสร้างไฟล์ INIด้วย Python3 FILE.INI default_path = "/path/name/" default_file = "file.txt" ไฟล์ Python: # Read file and and create if it not exists config = iniFile( 'FILE.INI' ) # Get "default_path" config.default_path # Print (string)/path/name print config.default_path # Create or Update config.append( 'default_path', 'var/shared/' ) config.append( 'default_message', 'Hey! help me!!' ) …
119 python  python-3.x  ini 

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.