คำถามติดแท็ก python-3.x

สำหรับคำถามเกี่ยวกับการเขียนโปรแกรม Python ที่เฉพาะเจาะจงกับภาษารุ่น 3 ขึ้นไป ใช้แท็ก [หลาม] ทั่วไปมากขึ้นหากคำถามของคุณไม่เฉพาะรุ่น ใช้แท็ก [python-2.x] สำหรับคำถาม Python 2

1
พฤติกรรมลำไส้ใหญ่แปลก ๆ นี้กำลังทำอะไรอยู่?
ฉันใช้ Python 3.6.1 และฉันเจอบางอย่างที่แปลกมาก ฉันมีการพิมพ์คำผิดในพจนานุกรมง่ายๆซึ่งใช้เวลานานในการค้นหา context = {} context["a"]: 2 print(context) เอาต์พุต {} โค้ดใช้context["a"]: 2ทำอะไร? ไม่ได้เพิ่มSyntaxErrorเวลาที่ควร IMO ตอนแรกคิดว่าเป็นการสร้างฝาน อย่างไรก็ตามการพิมพ์repr(context["a"]: 2)จะทำให้เกิดไฟล์SyntaxError. ฉันพิมพ์context["a"]: 2ในคอนโซลด้วยและคอนโซลไม่ได้พิมพ์อะไรเลย ฉันคิดว่ามันอาจจะกลับมาNoneแต่ฉันไม่แน่ใจ ฉันยังคิดว่ามันอาจเป็นคำสั่ง if บรรทัดเดียว แต่นั่นก็ไม่ควรเป็นไวยากรณ์ที่ถูกต้องเช่นกัน นอกจากนี้context["a"]ควรเพิ่มไฟล์KeyError. ฉันงง เกิดอะไรขึ้น?
104 python  python-3.x 

4
จะเขียนข้อมูลไบนารีไปยัง stdout ใน python 3 ได้อย่างไร?
ใน python 2.x ฉันทำได้: import sys, array a = array.array('B', range(100)) a.tofile(sys.stdout) อย่างไรก็ตามตอนนี้ฉันได้รับไฟล์TypeError: can't write bytes to text stream. มีการเข้ารหัสลับบางอย่างที่ฉันควรใช้หรือไม่?
104 python  python-3.x 

7
Windows ไม่พบไฟล์ใน subprocess.call ()
ฉันได้รับข้อผิดพลาดต่อไปนี้: WindowsError: [Error 2] The system cannot find the file specified รหัสของฉันคือ: subprocess.call(["<<executable file found in PATH>>"]) Windows 7, 64 บิต Python 3.x ล่าสุดเสถียร ความคิดใด ๆ ? ขอบคุณ
104 python  path  python-3.x 

9
วิธีรับโน้ตบุ๊ก IPython เพื่อเรียกใช้ Python 3
ฉันยังใหม่กับ Python ที่ต้องทนกับฉัน ฉันติดตั้ง Anaconda ใช้งานได้ดี ฉันตั้งค่าสภาพแวดล้อม Python 3 ตามคำแนะนำบรรทัด Anaconda cmd ใช้งานได้ดี ฉันตั้งค่าสภาพแวดล้อม Python 3 ของ Anaconda เป็นล่ามของ Pycharm ใช้งานได้ดี ฉันเปิดตัวAnaconda "launcher.app"และเปิดตัว IPython Notebook อย่างไรก็ตาม iPython Notebook กำลังเรียกใช้ Python 2 ไม่ใช่ 3 กว่าสามชั่วโมงของ Googling ในภายหลังฉันไม่สามารถหาวิธีตั้งค่า IPython Notebook ให้เรียกใช้ Python 3 แทน 2 ได้

3
ต้องติดตั้ง urllib2 สำหรับ Python 3.5.1
ฉันใช้ Python 3.5.1 สำหรับ Mac ฉันต้องการใช้urllib2โมดูล ฉันลองติดตั้งแล้ว แต่ได้รับแจ้งว่ามันถูกแยกออกเป็นurllib.requestและurllib.errorสำหรับ Python 3 คำสั่งของฉัน (ทำงานจากไดเร็กทอรี bin เฟรมเวิร์กในตอนนี้เนื่องจากไม่อยู่ในเส้นทางของฉัน): sudo ./pip3 install urllib.request ส่งคืนสิ่งนี้: Could not find a version that satisfies the requirement urllib.request (from versions: ) No matching distribution found for urllib.request ฉันได้รับข้อผิดพลาดเดียวกันก่อนหน้านี้เมื่อฉันพยายามติดตั้งurllib2ในบัดดล

2
ValueError: โปรโตคอลดองที่ไม่รองรับ: 3, python2 pickle ไม่สามารถโหลดไฟล์ที่ทิ้งโดย python 3 pickle ได้หรือไม่
ฉันใช้ pickle เพื่อถ่ายโอนไฟล์บน python 3 และฉันใช้ pickle เพื่อโหลดไฟล์บน python 2 ValueError จะปรากฏขึ้น ดังนั้น python 2 pickle ไม่สามารถโหลดไฟล์ที่ทิ้งโดย python 3 pickle? ถ้าฉันต้องการ? วิธีการทำ?


3
ctypes - ระดับเริ่มต้น
ฉันมีภารกิจในการ "ตัด" ไลบรารี ac ลงในคลาส python เอกสารมีความคลุมเครืออย่างไม่น่าเชื่อในเรื่องนี้ ดูเหมือนว่าพวกเขาคาดหวังว่าจะมีเพียงผู้ใช้ python ขั้นสูงเท่านั้นที่ใช้ ctypes ได้ ฉันเป็นมือใหม่ใน python และต้องการความช่วยเหลือ ความช่วยเหลือทีละขั้นตอนจะดีมาก ฉันจึงมีห้องสมุด c ของฉัน ฉันจะทำอย่างไร? ฉันวางไฟล์อะไรไว้ที่ไหน ฉันจะนำเข้าไลบรารีได้อย่างไร ฉันอ่านพบว่าอาจมีวิธี "ตัดอัตโนมัติ" เป็น Python? (โดยวิธีการที่ฉันทำแบบฝึกหัด ctypes บน python.net และไม่ได้ผลหมายความว่าฉันคิดว่าพวกเขาคิดว่าฉันควรจะสามารถเติมเต็มขั้นตอนที่เหลือได้ อันที่จริงนี่เป็นข้อผิดพลาดที่ฉันได้รับจากรหัสของพวกเขา: File "importtest.py", line 1 >>> from ctypes import * SyntaxError: invalid syntax ฉันสามารถใช้ความช่วยเหลือทีละขั้นตอนในเรื่องนี้ได้จริงๆ! ขอบคุณ ~

9
วิธีเรียกใช้ Spyder ในสภาพแวดล้อมเสมือนจริง?
ฉันใช้ Spyder ที่ติดตั้งกับการแจกจ่าย Anaconda ซึ่งใช้ Python 2.7 เป็นค่าเริ่มต้น ขณะนี้ฉันต้องการตั้งค่าสภาพแวดล้อมเสมือนสำหรับการพัฒนาด้วย Python 3.4 คำแนะนำสองอันดับแรกหลังการค้นคว้าทางออนไลน์ ได้แก่ : เพื่อตั้งค่าสภาพแวดล้อมเสมือนก่อนและชี้ให้เห็นการเปลี่ยนแปลงการตั้งค่าของ Spyder เช่นที่นี่ ; ในการติดตั้งทั้งหมดอ้างอิง Spyder เช่น PyQt4 ในสภาพแวดล้อมเสมือนตัวเองเช่นที่นี่ ; คำแนะนำทั้งสองเป็นเรื่องยุ่งยากและดูไม่เหมือนตัวเลือกที่ชาญฉลาดสำหรับการพัฒนา มีวิธีแก้ปัญหาที่อนุญาตให้เรียกใช้ Spyder ด้วย Python เวอร์ชันที่ต้องการโดยอัตโนมัติหลังจากเปิดใช้งานสภาพแวดล้อมเสมือนที่ต้องการหรือไม่?

10
วิธีการเลื่อน / เลื่อนการประเมิน f-strings?
ฉันใช้สตริงเทมเพลตเพื่อสร้างไฟล์บางไฟล์และฉันชอบความกระชับของ f-strings ใหม่เพื่อจุดประสงค์นี้เพื่อลดรหัสเทมเพลตก่อนหน้าของฉันจากสิ่งนี้: template_a = "The current name is {name}" names = ["foo", "bar"] for name in names: print (template_a.format(**locals())) ตอนนี้ฉันทำได้แล้วโดยแทนที่ตัวแปรโดยตรง: names = ["foo", "bar"] for name in names: print (f"The current name is {name}") อย่างไรก็ตามบางครั้งมันก็สมเหตุสมผลที่จะกำหนดเทมเพลตไว้ที่อื่น - สูงขึ้นในโค้ดหรือนำเข้าจากไฟล์หรือบางสิ่ง ซึ่งหมายความว่าเทมเพลตเป็นสตริงแบบคงที่ที่มีแท็กการจัดรูปแบบอยู่ในนั้น จะต้องมีบางอย่างเกิดขึ้นกับสตริงเพื่อบอกให้ล่ามแปลความหมายของสตริงเป็นสตริง f ใหม่ แต่ฉันไม่รู้ว่ามีสิ่งนั้นหรือไม่ มีวิธีใดบ้างในการนำสตริงเข้ามาและตีความว่าเป็น f-string เพื่อหลีกเลี่ยงการใช้การ.format(**locals())โทร? ตามหลักการแล้วฉันต้องการโค้ดแบบนี้ ... ( magic_fstring_functionส่วนที่ฉันไม่เข้าใจอยู่ที่ไหน): …

6
การติดตั้ง Anacondas 2.7 และ 3.5 ในเวลาเดียวกันเป็นเรื่องปกติหรือไม่?
ตอนนี้ฉันใช้ Anaconda กับ Python 2.7 แต่ฉันจะต้องใช้ Python 3.5 สามารถติดตั้งทั้งสองอย่างพร้อมกันได้หรือไม่? ฉันควรคาดหวังปัญหาบางอย่างหรือไม่? ฉันใช้ Win8 64 บิต

4
asyncio.ensure_future กับ BaseEventLoop.create_task เทียบกับโครูทีนแบบธรรมดา?
ฉันเคยเห็นบทแนะนำ Python 3.5 พื้นฐานหลายตัวเกี่ยวกับ asyncio ที่ดำเนินการแบบเดียวกันในรสชาติต่างๆ ในรหัสนี้: import asyncio async def doit(i): print("Start %d" % i) await asyncio.sleep(3) print("End %d" % i) return i if __name__ == '__main__': loop = asyncio.get_event_loop() #futures = [asyncio.ensure_future(doit(i), loop=loop) for i in range(10)] #futures = [loop.create_task(doit(i)) for i in range(10)] futures = [doit(i) for …

14
วิธีดาวน์เกรด python จาก 3.7 เป็น 3.6
ฉันกำลังพยายามติดตั้ง tensorflow แต่ต้องการการติดตั้ง Python 3.6 และฉันติดตั้ง Python 3.7 เท่านั้น ฉันพยายามเปลี่ยนโดยใช้ brew และ pyenv แต่ไม่ได้ผล ไม่มีใครรู้วิธีแก้ปัญหานี้?
101 python  python-3.x 

4
เมื่อใดที่ hash (n) == n ใน Python
ฉันได้รับเล่นกับงูหลามของฟังก์ชันแฮช สำหรับจำนวนเต็มขนาดเล็กจะปรากฏhash(n) == nเสมอ อย่างไรก็ตามสิ่งนี้ไม่ได้ครอบคลุมถึงจำนวนมาก: >>> hash(2**100) == 2**100 False ฉันไม่แปลกใจเลยฉันเข้าใจว่าแฮชมีค่าที่ จำกัด ช่วงนั้นคืออะไร? ฉันลองใช้การค้นหาแบบไบนารีเพื่อค้นหาจำนวนที่น้อยที่สุดhash(n) != n >>> import codejamhelpers # pip install codejamhelpers >>> help(codejamhelpers.binary_search) Help on function binary_search in module codejamhelpers.binary_search: binary_search(f, t) Given an increasing function :math:`f`, find the greatest non-negative integer :math:`n` such that :math:`f(n) \le t`. …

11
FutureWarning: การเปรียบเทียบองค์ประกอบล้มเหลว ส่งคืนสเกลาร์ แต่ในอนาคตจะทำการเปรียบเทียบตามองค์ประกอบ
ฉันใช้ Pandas 0.19.1บน Python 3 ฉันได้รับคำเตือนเกี่ยวกับบรรทัดของโค้ดเหล่านี้ ฉันพยายามที่จะได้รับรายชื่อที่มีทั้งหมดจำนวนแถวที่สตริงเป็นปัจจุบันที่คอลัมน์PeterUnnamed: 5 df = pd.read_excel(xls_path) myRows = df[df['Unnamed: 5'] == 'Peter'].index.tolist() มันสร้างคำเตือน: "\Python36\lib\site-packages\pandas\core\ops.py:792: FutureWarning: elementwise comparison failed; returning scalar, but in the future will perform elementwise comparison result = getattr(x, name)(y)" FutureWarning นี้คืออะไรและฉันควรเพิกเฉยเพราะดูเหมือนจะใช้งานได้

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