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

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


16
ฉันจะแก้ไข 'ImportError: ไม่สามารถนำเข้าชื่อ IncompleteRead' ได้อย่างไร
เมื่อฉันพยายามติดตั้งทุกอย่างด้วยpipหรือpip3ฉันจะได้รับ: $ sudo pip3 install python3-tk Traceback (most recent call last): File "/usr/bin/pip3", line 9, in <module> load_entry_point('pip==1.5.6', 'console_scripts', 'pip3')() File "/usr/lib/python3/dist-packages/pkg_resources.py", line 356, in load_entry_point return get_distribution(dist).load_entry_point(group, name) File "/usr/lib/python3/dist-packages/pkg_resources.py", line 2476, in load_entry_point return ep.load() File "/usr/lib/python3/dist-packages/pkg_resources.py", line 2190, in load ['__name__']) File "/usr/lib/python3/dist-packages/pip/__init__.py", line 61, in <module> …
284 python  pip 

6
ไวยากรณ์ที่ถูกต้องสำหรับ 'else if' คืออะไร?
ฉันเป็นโปรแกรมเมอร์ Python คนใหม่ที่กระโดดจาก 2.6.4 เป็น 3.1.1 ทุกอย่างไปได้ดีจนกระทั่งฉันพยายามใช้คำสั่ง 'else if' ล่ามให้ฉันข้อผิดพลาดทางไวยากรณ์หลังจาก 'ถ้า' ใน 'อื่น ๆ ถ้า' ด้วยเหตุผลที่ฉันไม่สามารถเข้าใจได้ def function(a): if a == '1': print ('1a') else if a == '2' print ('2a') else print ('3a') function(input('input:')) ฉันอาจจะคิดถึงบางสิ่งที่ง่ายมาก อย่างไรก็ตามฉันไม่สามารถหาคำตอบได้ด้วยตัวเอง
284 python  python-3.x 

2
ทำไมบางลอย <เปรียบเทียบจำนวนเต็มสี่ครั้งช้ากว่าคนอื่น ๆ ?
เมื่อเปรียบเทียบลอยกับจำนวนเต็มคู่ของค่าบางอย่างใช้เวลานานในการประเมินมากกว่าค่าอื่น ๆ ที่มีขนาดใกล้เคียงกัน ตัวอย่างเช่น: &gt;&gt;&gt; import timeit &gt;&gt;&gt; timeit.timeit("562949953420000.7 &lt; 562949953421000") # run 1 million times 0.5387085462592742 แต่ถ้าจำนวนลอยหรือจำนวนเต็มน้อยกว่าหรือใหญ่กว่าการเปรียบเทียบจะทำงานได้เร็วขึ้น: &gt;&gt;&gt; timeit.timeit("562949953420000.7 &lt; 562949953422000") # integer increased by 1000 0.1481498428446173 &gt;&gt;&gt; timeit.timeit("562949953423001.8 &lt; 562949953421000") # float increased by 3001.1 0.1459577925548956 การเปลี่ยนตัวดำเนินการเปรียบเทียบ (เช่นการใช้==หรือ&gt;แทน) จะไม่ส่งผลกระทบต่อเวลาในลักษณะที่สังเกตเห็นได้ สิ่งนี้ไม่ได้เกี่ยวข้องกับขนาดเพียงอย่างเดียวเพราะการเลือกค่าที่มากขึ้นหรือน้อยลงอาจทำให้การเปรียบเทียบเร็วขึ้นดังนั้นฉันจึงสงสัยว่ามันจะลงไปในทางที่โชคร้ายเล็กน้อยที่บิตเรียงกัน เห็นได้ชัดว่าการเปรียบเทียบค่าเหล่านี้เร็วกว่าเพียงพอสำหรับกรณีใช้งานส่วนใหญ่ ฉันแค่อยากรู้ว่าทำไม Python ดูเหมือนจะต่อสู้กับค่าบางคู่มากกว่ากับคนอื่น

12
ภาษารวบรวมและตีความ
ฉันพยายามทำความเข้าใจกับความแตกต่างให้ดีขึ้น ฉันพบคำอธิบายออนไลน์มากมาย แต่พวกเขามีแนวโน้มไปสู่ความแตกต่างเชิงนามธรรมมากกว่าความหมายเชิงปฏิบัติ ที่สุดของประสบการณ์การเขียนโปรแกรมของฉันได้รับกับ CPython (แบบไดนามิกตีความ) และ Java (คงรวบรวม) อย่างไรก็ตามฉันเข้าใจว่ามีภาษาอื่น ๆ ที่แปลและเรียบเรียง นอกเหนือจากข้อเท็จจริงที่ว่าไฟล์ที่ปฏิบัติการได้สามารถแจกจ่ายจากโปรแกรมที่เขียนด้วยภาษาที่คอมไพล์แล้วมีข้อดี / ข้อเสียของแต่ละประเภทหรือไม่? บ่อยครั้งที่ฉันได้ยินผู้คนโต้แย้งว่าภาษาที่ตีความสามารถใช้โต้ตอบได้ แต่ฉันเชื่อว่าภาษาที่คอมไพล์สามารถมีการใช้งานแบบอินเตอร์แอคทีฟได้เช่นกันถูกต้องหรือไม่

12
การห่อไลบรารี C ใน Python: C, Cython หรือ ctypes?
ฉันต้องการเรียกไลบรารี C จากแอปพลิเคชัน Python ฉันไม่ต้องการห่อทั้ง API เฉพาะฟังก์ชันและประเภทข้อมูลที่เกี่ยวข้องกับกรณีของฉัน ตามที่เห็นฉันมีสามตัวเลือก: สร้างโมดูลส่วนขยายจริงใน C. อาจเป็นไปได้มากเกินไปและฉันยังต้องการหลีกเลี่ยงค่าใช้จ่ายในการเรียนรู้การเขียนส่วนขยาย ใช้Cythonเพื่อแสดงส่วนที่เกี่ยวข้องจาก C library ไปยัง Python ทำสิ่งทั้งหมดใน Python ctypesเพื่อใช้สื่อสารกับไลบรารีภายนอก ฉันไม่แน่ใจว่า 2) หรือ 3) เป็นตัวเลือกที่ดีกว่าหรือไม่ ข้อได้เปรียบของ 3) คือctypesส่วนหนึ่งของไลบรารีมาตรฐานและโค้ดผลลัพธ์จะเป็น Python แท้ๆ - ถึงแม้ว่าฉันไม่แน่ใจว่าประโยชน์นั้นใหญ่เพียงใด มีข้อดี / ข้อเสียมากกว่าทั้งสองทางเลือกหรือไม่? คุณแนะนำวิธีใด แก้ไข:ขอบคุณสำหรับคำตอบทั้งหมดของคุณพวกเขาให้ทรัพยากรที่ดีสำหรับทุกคนที่ต้องการทำสิ่งที่คล้ายกัน แน่นอนว่าการตัดสินใจยังคงต้องทำในกรณีเดียว - ไม่มีใครตอบ "นี่คือสิ่งที่ถูกต้อง" สำหรับกรณีของฉันเองฉันอาจจะไปกับ ctypes แต่ฉันก็ตั้งตารอที่จะลอง Cython ในโครงการอื่น เมื่อไม่มีคำตอบที่แท้จริงเพียงคำเดียวการยอมรับคำตอบก็ค่อนข้างเป็นการสุ่ม ฉันเลือกคำตอบของ FogleBird เพราะให้ข้อมูลเชิงลึกที่ดีเกี่ยวกับ ctypes …
284 python  c  ctypes  cython 

6
SyntaxError: อักขระที่ไม่ใช่ ASCII '\ xa3' ในไฟล์เมื่อฟังก์ชันส่งคืน '£'
พูดว่าฉันมีฟังก์ชั่น: def NewFunction(): return '£' ฉันต้องการพิมพ์สิ่งที่มีเครื่องหมายปอนด์อยู่ข้างหน้าและพิมพ์ข้อผิดพลาดเมื่อฉันพยายามเรียกใช้โปรแกรมนี้ข้อความแสดงข้อผิดพลาดนี้จะปรากฏขึ้น: SyntaxError: Non-ASCII character '\xa3' in file 'blah' but no encoding declared; see http://www.python.org/peps/pep-0263.html for details ใครสามารถบอกฉันว่าฉันสามารถรวมเครื่องหมายปอนด์ในฟังก์ชั่นการส่งคืน โดยทั่วไปฉันใช้มันในชั้นเรียนและอยู่ใน'__str__'ส่วนที่มีเครื่องหมายปอนด์รวมอยู่ด้วย

9
ค้นหาเมทริกความคล้ายคลึงกันระหว่างสองสตริง
ฉันจะรับความน่าจะเป็นของสตริงที่คล้ายกับสตริงอื่นใน Python ได้อย่างไร ฉันต้องการรับค่าทศนิยมเช่น 0.9 (หมายถึง 90%) ฯลฯ โดยเฉพาะกับ Python และไลบรารี่มาตรฐาน เช่น similar("Apple","Appel") #would have a high prob. similar("Apple","Mango") #would have a lower prob.


23
วิธีการแทนที่สตริงย่อยหลายสตริง?
ฉันต้องการใช้ฟังก์ชัน. แทนที่เพื่อแทนที่สตริงจำนวนมาก ฉันมี string.replace("condition1", "") แต่ต้องการมีสิ่งที่ชอบ string.replace("condition1", "").replace("condition2", "text") แม้ว่าจะไม่รู้สึกว่าไวยากรณ์ดี วิธีที่เหมาะสมในการทำเช่นนี้คืออะไร? ชนิดของ grep / regex ที่คุณสามารถทำได้\1และ\2แทนที่ฟิลด์เป็นสตริงการค้นหาที่ต้องการ
284 python  text  replace 


9
ปัญหา Django datetime (ค่าเริ่มต้น = datetime.now ())
ฉันมีรูปแบบฐานข้อมูลด้านล่าง: from datetime import datetime class TermPayment(models.Model): # I have excluded fields that are irrelevant to the question date = models.DateTimeField(default=datetime.now(), blank=True) ฉันเพิ่มอินสแตนซ์ใหม่โดยใช้ด้านล่าง: tp = TermPayment.objects.create(**kwargs) ปัญหาของฉัน: บันทึกทั้งหมดในฐานข้อมูลมีค่าเหมือนกันในฟิลด์วันที่ซึ่งเป็นวันที่ชำระเงินครั้งแรก หลังจากเซิร์ฟเวอร์รีสตาร์ตหนึ่งเรคคอร์ดมีวันที่ใหม่และเรคคอร์ดอื่นมีเหมือนกันกับเรกคอร์ดแรก ดูเหมือนว่าข้อมูลบางส่วนถูกแคช แต่ฉันไม่สามารถหาได้ ฐานข้อมูล: MySQL 5.1.25 django v1.1.1
283 python  django 

13
หลาม: วิธีการระบุว่าตัวแปรเป็นอาร์เรย์หรือสเกลาร์
NBinsฉันมีฟังก์ชั่นที่ใช้อาร์กิวเมนต์ ฉันต้องการโทรไปยังฟังก์ชั่นนี้ด้วยสเกลาร์50หรืออาเร[0, 10, 20, 30]ย์ ฉันจะระบุได้อย่างไรในฟังก์ชั่นความยาวของNBinsมันคืออะไร? หรือพูดต่างออกไปถ้ามันเป็นเซนต์คิตส์และเนวิส? ฉันลองสิ่งนี้: &gt;&gt;&gt; N=[2,3,5] &gt;&gt;&gt; P = 5 &gt;&gt;&gt; len(N) 3 &gt;&gt;&gt; len(P) Traceback (most recent call last): File "&lt;stdin&gt;", line 1, in &lt;module&gt; TypeError: object of type 'int' has no len() &gt;&gt;&gt; อย่างที่คุณเห็นฉันไม่สามารถนำlenไปใช้ได้Pเนื่องจากมันไม่ใช่อาร์เรย์ .... มีอะไรที่คล้ายisarrayหรือisscalarในหลาม? ขอบคุณ

5
วิธีซ่อนเอาต์พุตของกระบวนการย่อยใน Python 2.7
ฉันใช้ eSpeak บน Ubuntu และมีสคริปต์ Python 2.7 ที่พิมพ์และพูดข้อความ: import subprocess text = 'Hello World.' print text subprocess.call(['espeak', text]) eSpeak สร้างเสียงที่ต้องการ แต่ตัดเชลล์ด้วยข้อผิดพลาดบางอย่าง (ALSA lib ... ไม่มีการเชื่อมต่อซ็อกเก็ต) ดังนั้นฉันไม่สามารถอ่านสิ่งที่พิมพ์ก่อนหน้านี้ได้อย่างง่ายดาย รหัสออกคือ 0 น่าเสียดายที่ไม่มีตัวเลือกเอกสารที่จะปิดการใช้คำฟุ่มเฟื่อยของมันดังนั้นฉันกำลังมองหาวิธีที่จะเงียบมันมองเห็นและทำให้เปลือกเปิดที่สะอาดสำหรับการโต้ตอบต่อไป ฉันจะทำสิ่งนี้ได้อย่างไร

15
ฉันจะตรวจสอบเวอร์ชันของ NumPy ที่ฉันใช้อยู่ได้อย่างไร
ฉันจะตรวจสอบเวอร์ชันของ NumPy ที่ฉันใช้อยู่ได้อย่างไร (FYI คำถามนี้ได้รับการแก้ไขเพราะทั้งคำถามและคำตอบไม่ใช่แพลตฟอร์มเฉพาะ)
283 python  numpy  version 

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