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

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

12
ถ้าฟังก์ชั่น A จำเป็นต้องใช้โดยฟังก์ชัน B ควรกำหนดภายใน B หรือไม่? [ปิด]
ปิด คำถามนี้เป็นคำถามความคิดเห็นตาม ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้สามารถตอบข้อเท็จจริงและการอ้างอิงได้โดยแก้ไขโพสต์นี้ ปิด5 เดือนที่ผ่านมา ปรับปรุงคำถามนี้ ตัวอย่างง่ายๆ สองวิธีวิธีหนึ่งเรียกจากวิธีอื่น: def method_a(arg): some_data = method_b(arg) def method_b(arg): return some_data ในไพ ธ อนเราสามารถประกาศdefในสิ่งอื่นdefได้ ดังนั้นหากmethod_bจำเป็นและเรียกร้องเท่านั้นmethod_aฉันควรประกาศmethod_bภายในmethod_aหรือไม่ แบบนี้ : def method_a(arg): def method_b(arg): return some_data some_data = method_b(arg) หรือฉันควรหลีกเลี่ยงการทำเช่นนี้?

5
TypeError: module .__ init __ () รับได้สูงสุด 2 ข้อ (กำหนด 3 ข้อ)
Object.pyฉันได้กำหนดระดับในไฟล์ชื่อ เมื่อฉันพยายามสืบทอดจากคลาสนี้ในไฟล์อื่นการเรียกตัวสร้างจะสร้างข้อยกเว้น: TypeError: module.__init__() takes at most 2 arguments (3 given) นี่คือรหัสของฉัน: import Object class Visitor(Object): pass instance = Visitor() # this line throws the exception ผมทำอะไรผิดหรือเปล่า?

5
ผู้ดูแลระบบ Django - ปิดการใช้งานการกระทำ 'เพิ่ม' สำหรับรุ่นเฉพาะ
ฉันมีไซต์ django พร้อมโมเดลและฟอร์มมากมาย ฉันมีฟอร์มและฟอร์มที่กำหนดเองจำนวนมากและชุดรูปแบบอินไลน์และการตรวจสอบความถูกต้องที่กำหนดเองและแบบสอบถามที่กำหนดเอง ดังนั้นการดำเนินการเพิ่มรูปแบบขึ้นอยู่กับรูปแบบที่ต้องการสิ่งอื่น ๆ และ 'เพิ่มรูปแบบ' ในผู้ดูแลระบบ django ตลอด 500 จากชุดแบบสอบถามที่กำหนดเอง อย่างไรก็ตามมีการปิดใช้งานฟังก์ชั่น 'เพิ่ม $ MODEL' สำหรับบางรุ่นหรือไม่ ฉันต้องการ/admin/appname/modelname/add/ให้ข้อผิดพลาด 404 (หรือข้อผิดพลาด 'หายไป' ที่เหมาะสม) ฉันไม่ต้องการให้ปุ่ม 'เพิ่ม $ MODELNAME' ปรากฏ/admin/appname/modelnameขึ้น ผู้ดูแลระบบ Django มีวิธีปิดใช้งานการกระทำของผู้ดูแลระบบ (http://docs.djangoproject.com/en/dev/ref/contrib/admin/actions/#disabling-actions) อย่างไรก็ตามการดำเนินการสำหรับรุ่นนี้คือ 'delete_selected' เช่นการกระทำของผู้ดูแลระบบกระทำเฉพาะกับรุ่นที่มีอยู่เท่านั้น มีวิธีการทำ django-esque บ้างไหม?



12
วิธีการระงับสัญลักษณ์ทางวิทยาศาสตร์เมื่อพิมพ์ค่าทศนิยม?
นี่คือรหัสของฉัน: x = 1.0 y = 100000.0 print x/y 1.00000e-05แสดงความฉลาดของฉันเป็น มีวิธีใดที่จะระงับสัญกรณ์ทางวิทยาศาสตร์และทำให้มันแสดงเป็น 0.00001? ฉันจะใช้ผลลัพธ์เป็นสตริง

12
ผลิตภัณฑ์คาร์ทีเซียนของจุด x และ y เป็นจุดสองมิติในอาร์เรย์เดียว
ฉันมีสองอาร์เรย์ numpy ที่กำหนดแกน x และ y ของตาราง ตัวอย่างเช่น: x = numpy.array([1,2,3]) y = numpy.array([4,5]) ฉันต้องการสร้างผลิตภัณฑ์คาร์ทีเซียนของอาร์เรย์เหล่านี้เพื่อสร้าง: array([[1,4],[2,4],[3,4],[1,5],[2,5],[3,5]]) ในวิธีที่ไม่มีประสิทธิภาพมากนักเพราะฉันต้องทำหลายครั้งในการวนซ้ำ ฉันสมมติว่าการแปลงให้เป็นรายการ Python การใช้itertools.productและการกลับไปยังอาร์เรย์ numpy ไม่ใช่รูปแบบที่มีประสิทธิภาพที่สุด

6
Python แสดงรายการตัววนซ้ำและตัวถัดไป (ตัววนซ้ำ)
พิจารณา: >>> lst = iter([1,2,3]) >>> next(lst) 1 >>> next(lst) 2 ดังนั้นความก้าวหน้าของตัววนซ้ำก็เป็นไปตามที่คาดการณ์ไว้จัดการโดยการกลายพันธุ์วัตถุเดียวกัน ในกรณีนี้ฉันคาดหวังว่า: a = iter(list(range(10))) for i in a: print(i) next(a) เพื่อข้ามทุกองค์ประกอบที่สอง: การเรียกร้องให้nextควรล่วงหน้า iterator ครั้งเดียวแล้วโทรนัยทำโดยวงควรล่วงหน้าเป็นครั้งที่สอง - iและผลของการโทรที่สองนี้จะได้รับการมอบหมายให้ มันไม่ได้ ลูปจะพิมพ์รายการทั้งหมดในรายการโดยไม่ข้ามอะไรเลย ความคิดแรกของฉันคือว่าเรื่องนี้อาจจะเกิดขึ้นเพราะห่วงเรียกร้องiterในสิ่งที่มันจะผ่านไปและอาจให้ iterator อิสระ - iter(a) is aนี้ไม่ได้เป็นกรณีที่เรามี ดังนั้นทำไมnextไม่ปรากฏตัวเลื่อนซ้ำในกรณีนี้?

9
“ ข้อยกเว้นภายใน” (พร้อมการสืบค้นกลับ) ใน Python หรือไม่
พื้นหลังของฉันอยู่ใน C # และฉันเพิ่งเพิ่งเริ่มเขียนโปรแกรมใน Python เมื่อมีข้อผิดพลาดเกิดขึ้นฉันมักต้องการล้อมรอบด้วยข้อยกเว้นอื่นที่เพิ่มข้อมูลเพิ่มเติมขณะที่ยังคงแสดงการติดตามสแต็กเต็ม มันค่อนข้างง่ายใน C # แต่ฉันจะทำใน Python ได้อย่างไร เช่น. ใน C # ฉันจะทำสิ่งนี้: try { ProcessFile(filePath); } catch (Exception ex) { throw new ApplicationException("Failed to process file " + filePath, ex); } ใน Python ฉันสามารถทำสิ่งที่คล้ายกัน: try: ProcessFile(filePath) except Exception as e: raise Exception('Failed to process file …

12
ใน Django ฉันจะตรวจสอบว่าผู้ใช้อยู่ในกลุ่มใดกลุ่มหนึ่งได้อย่างไร
ฉันสร้างกลุ่มที่กำหนดเองในไซต์ผู้ดูแลระบบของ Django ในรหัสของฉันฉันต้องการตรวจสอบว่าผู้ใช้อยู่ในกลุ่มนี้หรือไม่ ฉันจะทำอย่างไร

4
ฉันจะบอก Matplotlib ให้สร้างพล็อต (ใหม่) ที่สองจากนั้นพล็อตที่ใหม่จะมาในภายหลังได้อย่างไร
ฉันต้องการพล็อตข้อมูลแล้วสร้างรูปใหม่และพล็อตข้อมูล 2 และในที่สุดก็กลับมาที่พล็อตเดิมและพล็อตข้อมูล 3 แบบนี้: import numpy as np import matplotlib as plt x = arange(5) y = np.exp(5) plt.figure() plt.plot(x, y) z = np.sin(x) plt.figure() plt.plot(x, z) w = np.cos(x) plt.figure("""first figure""") # Here's the part I need plt.plot(x, w) FYI ฉันจะบอก matplotlib ว่าฉันทำกับพล็อตได้อย่างไร ทำสิ่งที่คล้ายกัน แต่ไม่มาก! ไม่ให้ฉันเข้าถึงพล็อตดั้งเดิมนั้น

19
สร้างตัวอักษรแบบสุ่มใน Python
มีวิธีในการสร้างตัวอักษรแบบสุ่มใน Python (เช่น random.randint แต่สำหรับตัวอักษร)? ฟังก์ชั่นการทำงานของ random.randint น่าจะดี แต่การมี generator ที่เพิ่งเอาท์พุทตัวอักษรแบบสุ่มจะดีกว่าไม่มีอะไรเลย

5
ใน Python ฉันควรทดสอบว่าตัวแปรเป็น None, True หรือ False
ฉันมีฟังก์ชั่นที่สามารถคืนหนึ่งในสามสิ่ง: สำเร็จ ( True) ความล้มเหลว ( False) ข้อผิดพลาดในการอ่าน / การแยกสตรีม ( None) คำถามของฉันคือถ้าฉันไม่ควรทดสอบTrueหรือFalseฉันจะดูได้อย่างไรว่าผลลัพธ์คืออะไร ด้านล่างเป็นวิธีที่ฉันทำอยู่ในปัจจุบัน: result = simulate(open("myfile")) if result == None: print "error parsing stream" elif result == True: # shouldn't do this print "result pass" else: print "result fail" มันง่ายพอ ๆ กับการถอดชิ้น== Trueส่วนออกหรือว่าฉันควรจะเพิ่ม tri-bool data-type ฉันไม่ต้องการให้simulateฟังก์ชันโยนข้อยกเว้นเนื่องจากฉันต้องการให้โปรแกรมภายนอกทำโดยมีข้อผิดพลาดคือบันทึกและดำเนินการต่อ
147 python 

4
หลาม pandas: ใช้ฟังก์ชั่นที่มีข้อโต้แย้งกับซีรีส์
ฉันต้องการใช้ฟังก์ชั่นที่มีข้อโต้แย้งกับชุดใน python python: x = my_series.apply(my_function, more_arguments_1) y = my_series.apply(my_function, more_arguments_2) ... เอกสารอธิบายการสนับสนุนสำหรับวิธีการใช้ แต่ก็ไม่ได้ยอมรับข้อโต้แย้งใด ๆ มีวิธีอื่นที่ยอมรับการขัดแย้งไหม? หรือมิฉะนั้นฉันไม่มีวิธีแก้ปัญหาง่ายๆ อัปเดต (ตุลาคม 2017): โปรดทราบว่าเนื่องจากคำถามนี้ถูกถามตั้งแต่แรกว่าแพนด้าapply()ได้รับการอัปเดตเพื่อจัดการอาร์กิวเมนต์ตำแหน่งและคำหลักและลิงก์เอกสารด้านบนตอนนี้สะท้อนให้เห็นแล้วและแสดงวิธีรวมอาร์กิวเมนต์ประเภทใดประเภทหนึ่ง
147 python  pandas  apply 

9
pandas GroupBy คอลัมน์ที่มีค่า NaN (หายไป)
ฉันมี DataFrame ที่มีค่าหายไปจำนวนมากในคอลัมน์ที่ฉันต้องการจัดกลุ่มตาม: import pandas as pd import numpy as np df = pd.DataFrame({'a': ['1', '2', '3'], 'b': ['4', np.NaN, '6']}) In [4]: df.groupby('b').groups Out[4]: {'4': [0], '6': [2]} ดูว่า Pandas ทำดร็อปแถวด้วยค่าเป้าหมาย NaN (ฉันต้องการรวมแถวเหล่านี้ด้วย!) เนื่องจากฉันต้องการการดำเนินการหลายอย่าง (cols จำนวนมากมีค่าที่หายไป) และใช้ฟังก์ชันที่ซับซ้อนมากกว่าแค่สื่อกลาง (โดยทั่วไปคือป่าสุ่ม) ฉันต้องการหลีกเลี่ยงการเขียนโค้ดที่ซับซ้อนเกินไป ข้อเสนอแนะใด ๆ ฉันควรจะเขียนฟังก์ชั่นสำหรับสิ่งนี้หรือมีวิธีแก้ปัญหาง่ายๆหรือไม่?

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