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

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

4
รายการมีความปลอดภัยต่อเธรดหรือไม่
.pop()ผมสังเกตเห็นว่ามันก็มักจะแนะนำให้ใช้คิวที่มีหลายกระทู้แทนของรายการและ เป็นเพราะรายการไม่ปลอดภัยสำหรับเธรดหรือด้วยเหตุผลอื่น


7
ควรใช้ iteritems () แทนรายการ () เมื่อใด
มันถูกต้องตามกฎหมายที่จะใช้items()แทนiteritems()ในทุกสถานที่? ทำไมiteritems()ลบออกจาก Python 3 ดูเหมือนว่าเป็นวิธีที่ยอดเยี่ยมและมีประโยชน์ อะไรคือเหตุผลเบื้องหลัง แก้ไข:เพื่อให้ชัดเจนฉันต้องการทราบว่าสำนวนที่ถูกต้องสำหรับการวนซ้ำในพจนานุกรมในลักษณะที่คล้ายกับตัวสร้าง (รายการเดียวในแต่ละครั้งไม่ใช่ทุกหน่วยความจำ) ในวิธีที่เข้ากันได้กับทั้ง Python 2 และ Python 3 ?
153 python  python-3.x 

5
Backporting Python 3 เปิด (การเข้ารหัส =“ utf-8”) ถึง Python 2
ฉันมี Python codebase สร้างขึ้นสำหรับ Python 3 ซึ่งใช้ Python 3 style open () พร้อมพารามิเตอร์การเข้ารหัส: https://github.com/miohtama/vvv/blob/master/vvv/textlineplugin.py#L47 with open(fname, "rt", encoding="utf-8") as f: ตอนนี้ฉันต้องการ backport รหัสนี้เป็น Python 2.x เพื่อที่ฉันจะได้ codebase ซึ่งทำงานกับ Python 2 และ Python 3 กลยุทธ์ที่แนะนำในการแก้ไขopen()ความแตกต่างและการขาดพารามิเตอร์การเข้ารหัสคืออะไร ฉันขอใช้open()ตัวจัดการไฟล์สไตล์Python 3 ได้หรือไม่ซึ่งส่งกระแสข้อมูลทดสอบดังนั้นมันจะทำหน้าที่เหมือน Python 2 open()หรือไม่

11
จะติดตั้ง pip3 บน Mac ของฉันได้อย่างไร?
ฉันพยายามติดตั้ง pip3 แต่ฉันไม่มีโชค นอกจากนี้ฉันพยายามsudo installและมันไม่ทำงาน ฉันจะติดตั้ง pip3 บน Mac ได้อย่างไร sudo easy_install pip3 Password: Searching for pip3 Reading https://pypi.python.org/simple/pip3/ Couldn't find index page for 'pip3' (maybe misspelled?) Scanning index of all packages (this may take a while) Reading https://pypi.python.org/simple/ No local packages or download links found for pip3 error: Could …
152 python  python-3.x  pip 

4
เป็นไปได้ที่จะ“ แฮ็ก” ฟังก์ชั่นการพิมพ์ของงูใหญ่หรือไม่
หมายเหตุ: คำถามนี้มีวัตถุประสงค์เพื่อให้ข้อมูลเท่านั้น ฉันสนใจที่จะดูว่าภายในของ Python นั้นมีความเป็นไปได้ที่จะทำสิ่งนี้อย่างไร เมื่อไม่นานมานี้การสนทนาเริ่มขึ้นในคำถามที่ว่าสตริงที่ส่งผ่านไปยังคำสั่งพิมพ์สามารถแก้ไขได้หลังจาก / ระหว่างการโทรไปprintหรือไม่ ตัวอย่างเช่นพิจารณาฟังก์ชั่น: def print_something(): print('This cat was scared.') ตอนนี้เมื่อprintทำงานแล้วผลลัพธ์ไปยังเทอร์มินัลควรแสดง: This dog was scared. สังเกตคำว่า "cat" ถูกแทนที่ด้วยคำว่า "dog" บางสิ่งบางอย่างก็สามารถปรับเปลี่ยนบัฟเฟอร์ภายในเหล่านั้นเพื่อเปลี่ยนสิ่งที่พิมพ์ สมมติว่าสิ่งนี้ทำโดยไม่ได้รับอนุญาตอย่างชัดแจ้งจากผู้เขียนรหัสดั้งเดิม (ดังนั้นการแฮ็ค / การไฮแจ็ก) ความคิดเห็นนี้จาก @abarnert ที่ฉลาดเป็นพิเศษทำให้ฉันคิดว่า: มีสองวิธีในการทำเช่นนั้น แต่พวกเขาทั้งหมดน่าเกลียดมากและไม่ควรทำ วิธีที่น่าเกลียดอย่างน้อยที่สุดก็คือการแทนที่ codeวัตถุภายในฟังก์ชั่นด้วยอันที่มีco_consts รายการต่างกัน ถัดไปอาจจะเข้าถึง C API เพื่อเข้าถึงบัฟเฟอร์ภายในของ str [ ... ] ดังนั้นดูเหมือนว่าเป็นไปได้จริง นี่คือวิธีที่ไร้เดียงสาของฉันในการเข้าถึงปัญหานี้: >>> import inspect …

1
เร็วกว่า bit-shift สองเท่าสำหรับ Python 3.x จำนวนเต็ม?
ฉันดูที่แหล่งที่มาของsort_containersและรู้สึกประหลาดใจที่เห็นบรรทัดนี้ : self._load, self._twice, self._half = load, load * 2, load >> 1 นี่loadคือจำนวนเต็ม เหตุใดจึงใช้การเลื่อนบิตในที่เดียวและการคูณในที่อื่น ดูเหมือนว่าเหตุผลที่การเลื่อนบิตอาจเร็วกว่าการหารหนึ่งด้วย 2 แต่ทำไมไม่เปลี่ยนการคูณด้วยการเลื่อนด้วย? ฉันเปรียบเทียบกรณีต่อไปนี้: (คูณหาร) (กะกะ) (ครั้งกะ) (กะหาร) และพบว่า # 3 นั้นเร็วกว่าตัวเลือกอื่น ๆ เสมอ: # self._load, self._twice, self._half = load, load * 2, load >> 1 import random import timeit import pandas as pd x …

10
จะบันทึกพจนานุกรมลงในไฟล์ได้อย่างไร?
ฉันมีปัญหากับการเปลี่ยนค่า dict และบันทึก dict เป็นไฟล์ข้อความ (รูปแบบต้องเหมือนกัน) ฉันต้องการเปลี่ยนmember_phoneฟิลด์เท่านั้น ไฟล์ข้อความของฉันอยู่ในรูปแบบต่อไปนี้: memberID:member_name:member_email:member_phone และฉันแยกไฟล์ข้อความด้วย: mdict={} for line in file: x=line.split(':') a=x[0] b=x[1] c=x[2] d=x[3] e=b+':'+c+':'+d mdict[a]=e เมื่อฉันลองเปลี่ยนที่member_phoneเก็บไว้dค่าไม่ได้เปลี่ยนไปตามคีย์ def change(mdict,b,c,d,e): a=input('ID') if a in mdict: d= str(input('phone')) mdict[a]=b+':'+c+':'+d else: print('not') และจะบันทึกคำสั่งลงในไฟล์ข้อความที่มีรูปแบบเดียวกันได้อย่างไร

6
tf.app.run () ทำงานอย่างไร
วิธีการที่ไม่tf.app.run()ทำงานใน Tensorflow แปลสาธิต? ในtensorflow/models/rnn/translate/translate.pyมีการเรียกร้องให้tf.app.run()เป็น มันถูกจัดการอย่างไร? if __name__ == "__main__": tf.app.run()

1
Concurrent.futures vs Multiprocessing ใน Python 3
Python 3.2 เปิดตัวConcurrent Futuresซึ่งเป็นส่วนผสมขั้นสูงของโมดูลการทำเกลียวและมัลติโพรเซสซิ่งที่เก่ากว่า อะไรคือข้อดีและข้อเสียของการใช้สิ่งนี้สำหรับงานที่ผูกกับ CPU ผ่านโมดูลมัลติโปรเซสเซอร์ที่เก่ากว่า? บทความนี้แสดงให้เห็นว่าพวกเขาทำงานได้ง่ายขึ้น - เป็นอย่างนั้นหรือ

3
เครื่องหมายทับหมายความว่าเอาต์พุต help ()
อะไร/เฉลี่ยในหลาม 3.4 ของhelpการส่งออกสำหรับrangeก่อนวงเล็บปิดหรือไม่ >>> help(range) Help on class range in module builtins: class range(object) | range(stop) -> range object | range(start, stop[, step]) -> range object | | Return a virtual sequence of numbers from start to stop by step. | | Methods defined here: | | __contains__(self, key, /) …

7
วิธีลบรายการสุดท้ายในรายการ?
ฉันมีโปรแกรมนี้ที่คำนวณเวลาที่ใช้ในการตอบคำถามเฉพาะและออกจากลูป while เมื่อคำตอบไม่ถูกต้อง แต่ฉันต้องการลบการคำนวณล่าสุดดังนั้นฉันสามารถโทรได้min()และไม่ใช่เวลาผิดขออภัยถ้า นี่คือความสับสน from time import time q = input('What do you want to type? ') a = ' ' record = [] while a != '': start = time() a = input('Type: ') end = time() v = end-start record.append(v) if a == q: print('Time taken to …
148 python  time  python-3.x 

11
มีฟังก์ชัน 'foreach' ใน Python 3 หรือไม่?
เมื่อฉันพบกับสถานการณ์ฉันสามารถทำได้ในจาวาสคริปต์ฉันมักจะคิดว่าถ้ามีforeachฟังก์ชั่นมันจะสะดวก โดย foreach ฉันหมายถึงฟังก์ชันที่อธิบายไว้ด้านล่าง: def foreach(fn,iterable): for x in iterable: fn(x) พวกเขาทำมันในทุกองค์ประกอบและไม่ได้ให้ผลหรือส่งคืนบางสิ่งฉันคิดว่ามันควรจะเป็นฟังก์ชันในตัวและควรจะเร็วกว่าการเขียนด้วย Python บริสุทธิ์ แต่ฉันไม่พบมันในรายการหรือ แค่เรียกชื่ออื่น? บางทีฉันอาจจะคิดผิดทำให้การเรียกใช้ฟังก์ชันใน Python มีราคาสูงไม่ใช่แนวทางปฏิบัติที่ดีสำหรับตัวอย่าง แทนที่จะวนรอบนอกฟังก์ชั่นควรทำวนซ้ำที่ด้านข้างตัวของมันมีลักษณะดังนี้ด้านล่างซึ่งได้กล่าวไว้แล้วในคำแนะนำโค้ดของ python หลายรายการ: def fn(*args): for x in args: dosomething แต่ฉันคิดว่า foreach ยังคงเป็นที่น่ายินดีสำหรับข้อเท็จจริงสองประการ: ในกรณีปกติผู้คนไม่สนใจเกี่ยวกับประสิทธิภาพ บางครั้ง API ไม่ยอมรับออบเจ็กต์ที่ทำซ้ำได้และคุณไม่สามารถเขียนซอร์สซ้ำได้

5
ความแตกต่างระหว่าง except: และ except Exception as e: in Python
ตัวอย่างโค้ดทั้งสองต่อไปนี้ทำสิ่งเดียวกัน พวกเขาจับทุกข้อยกเว้นและรันโค้ดในexcept:บล็อก ตัวอย่างข้อมูล 1 - try: #some code that may throw an exception except: #exception handling code ตัวอย่างข้อมูล 2 - try: #some code that may throw an exception except Exception as e: #exception handling code อะไรคือความแตกต่างในโครงสร้างทั้งสอง?
148 python  python-3.x 

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 ผมทำอะไรผิดหรือเปล่า?

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