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

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

1
Python“ เพิ่มจาก” การใช้งาน
ความแตกต่างระหว่างraiseและraise fromในงูใหญ่คืออะไร? try: raise ValueError except Exception as e: raise IndexError ซึ่งให้ผลผลิต Traceback (most recent call last): File "tmp.py", line 2, in <module> raise ValueError ValueError During handling of the above exception, another exception occurred: Traceback (most recent call last): File "tmp.py", line 4, in <module> raise IndexError IndexError และ …

6
ไข่ปลา […] หมายถึงอะไรในรายการ
ฉันกำลังเล่นอยู่ในงูหลาม ฉันใช้รหัสต่อไปนี้ใน IDLE: p = [1, 2] p[1:1] = [p] print p ผลลัพธ์คือ: [1, [...], 2] นี่อะไรน่ะ[…]? ที่น่าสนใจตอนนี้ฉันสามารถใช้สิ่งนี้เป็นรายการของรายการสูงสุดถึงอนันต์คือ p[1][1][1].... ฉันสามารถเขียนข้างต้นตราบเท่าที่ฉันต้องการและมันจะยังคงทำงาน แก้ไข: มันเป็นตัวแทนในหน่วยความจำได้อย่างไร? มันใช้อะไร? ตัวอย่างของบางกรณีที่มีประโยชน์จะเป็นประโยชน์ ลิงก์ใด ๆ ไปยังเอกสารอย่างเป็นทางการจะมีประโยชน์จริงๆ

4
ไม่จำเป็นต้อง __init__.py สำหรับแพ็คเกจใน Python 3.3+
ฉันใช้ Python 3.5.1 ฉันอ่านเอกสารและส่วนแพ็คเกจที่นี่: https://docs.python.org/3/tutorial/modules.html#packages ตอนนี้ฉันมีโครงสร้างต่อไปนี้: /home/wujek/Playground/a/b/module.py module.py: class Foo: def __init__(self): print('initializing Foo') ตอนนี้ในขณะที่/home/wujek/Playground: ~/Playground $ python3 >>> import a.b.module >>> a.b.module.Foo() initializing Foo <a.b.module.Foo object at 0x100a8f0b8> ในทำนองเดียวกันตอนนี้อยู่ที่บ้าน superfolder ของPlayground: ~ $ PYTHONPATH=Playground python3 >>> import a.b.module >>> a.b.module.Foo() initializing Foo <a.b.module.Foo object at 0x10a5fee10> ที่จริงฉันสามารถทำสิ่งต่าง ๆ ได้ทุกอย่าง: …

10
TypeError: ไม่ได้แปลงอาร์กิวเมนต์ทั้งหมดในระหว่างการจัดรูปแบบสตริงของไพ ธ อน
โปรแกรมควรใช้ชื่อสองชื่อและหากมีความยาวเท่ากันควรตรวจสอบว่าเป็นคำเดียวกันหรือไม่ ถ้าเป็นคำเดียวกันจะพิมพ์"ชื่อเหมือนกัน" หากพวกเขาเป็นระยะเวลาเดียวกัน แต่มีตัวอักษรที่แตกต่างกันก็จะพิมพ์"ชื่อมีความแตกต่างกัน แต่ระยะเวลาเดียวกัน" ส่วนที่ฉันมีปัญหาอยู่ใน 4 บรรทัดด้านล่าง #!/usr/bin/env python # Enter your code for "What's In (The Length Of) A Name?" here. name1 = input("Enter name 1: ") name2 = input("Enter name 2: ") len(name1) len(name2) if len(name1) == len(name2): if name1 == name2: print ("The names are the …

4
`1 ..__ truediv__ 'คืออะไร? Python มีไวยากรณ์สัญกรณ์ .. (“ dot dot”) หรือไม่
ฉันเพิ่งเจอไวยากรณ์ที่ฉันไม่เคยเห็นมาก่อนเมื่อฉันเรียนรู้หลามหรือในบทเรียนส่วนใหญ่..สัญกรณ์มันมีลักษณะเช่นนี้: f = 1..__truediv__ # or 1..__div__ for python 2 print(f(8)) # prints 0.125 ฉันคิดว่ามันเหมือนกับ (ยกเว้นยาวกว่าแน่นอน): f = lambda x: (1).__truediv__(x) print(f(8)) # prints 0.125 or 1//8 แต่คำถามของฉันคือ: จะทำเช่นนั้นได้อย่างไร มันมีความหมายอย่างไรกับจุดสองจุด คุณจะใช้มันอย่างไรในข้อความที่ซับซ้อนมากขึ้น (ถ้าเป็นไปได้)? นี่อาจจะช่วยฉันรหัสหลายบรรทัดในอนาคต ... :)

8
วัตถุประสงค์ของ“ pip install --user …” คืออะไร?
จากpip install --help: --user Install to the Python user install directory for your platform. Typically ~/.local/, or %APPDATA%\Python on Windows. (See the Python documentation for site.USER_BASE for full details.) เอกสารสำหรับเว็บไซต์ USER_BASE เป็นหนอนที่น่ากลัวที่น่าสนใจ * ห้ามเรื่องที่ฉันไม่เข้าใจ --userภาษาอังกฤษธรรมดามีจุดประสงค์อะไร? ทำไมการรวมแพคเกจถึง~/.local/สำคัญ? ทำไมไม่เพียงเอาไฟล์ปฏิบัติการมาไว้ที่ $ PATH ของฉันล่ะ

24
วิธีสร้างวัตถุที่ไม่เปลี่ยนรูปใน Python
แม้ว่าฉันไม่เคยต้องการสิ่งนี้ แต่ก็ทำให้ฉันรู้สึกว่าการสร้างวัตถุที่ไม่เปลี่ยนรูปใน Python อาจเป็นเรื่องยุ่งยากเล็กน้อย คุณไม่สามารถลบล้าง__setattr__ได้เนื่องจากคุณไม่สามารถกำหนดแอตทริบิวต์ในไฟล์__init__. Subclassing tuple เป็นเคล็ดลับที่ใช้ได้ผล: class Immutable(tuple): def __new__(cls, a, b): return tuple.__new__(cls, (a, b)) @property def a(self): return self[0] @property def b(self): return self[1] def __str__(self): return "<Immutable {0}, {1}>".format(self.a, self.b) def __setattr__(self, *ignored): raise NotImplementedError def __delattr__(self, *ignored): raise NotImplementedError แต่แล้วคุณมีการเข้าถึงaและbตัวแปรผ่านself[0]และself[1]ซึ่งเป็นที่น่ารำคาญ เป็นไปได้ไหมใน Pure Python ถ้าไม่ฉันจะใช้นามสกุล …

7
วัตถุ 'str' ไม่มีแอตทริบิวต์ 'ถอดรหัส' ข้อผิดพลาด Python 3?
นี่คือรหัสของฉัน: import imaplib from email.parser import HeaderParser conn = imaplib.IMAP4_SSL('imap.gmail.com') conn.login('example@gmail.com', 'password') conn.select() conn.search(None, 'ALL') data = conn.fetch('1', '(BODY[HEADER])') header_data = data[1][0][1].decode('utf-8') ณ จุดนี้ฉันได้รับข้อความแสดงข้อผิดพลาด AttributeError: 'str' object has no attribute 'decode' Python 3 ไม่ได้ถอดรหัสอีกต่อไปฉันถูกไหม ฉันจะแก้ไขสิ่งนี้ได้อย่างไร นอกจากนี้ใน: data = conn.fetch('1', '(BODY[HEADER])') ฉันกำลังเลือกอีเมลฉบับที่ 1 เท่านั้น ฉันจะเลือกทั้งหมดได้อย่างไร

11
วิธีตัดช่องว่างทั้งหมดออกจากสตริง
ฉันจะตัดช่องว่างทั้งหมดในสตริงไพ ธ อนได้อย่างไร ตัวอย่างเช่นฉันต้องการสตริงstrip my spacesที่จะกลายเป็นstripmyspacesแต่ฉันดูเหมือนจะไม่ประสบความสำเร็จด้วยstrip(): >>> 'strip my spaces'.strip() 'strip my spaces'

16
ไม่สามารถหารุ่นที่ตรงกับความต้องการของเมตริกซ์
ผมติดตั้งรุ่นล่าสุดของงูใหญ่และรุ่นล่าสุดของ(3.6.4 64-bit) PyCharm (2017.3.3 64-bit)จากนั้นฉันติดตั้งโมดูลบางตัวใน PyCharm (Numpy, Pandas ฯลฯ ) แต่เมื่อฉันลองติดตั้ง Tensorflow มันไม่ได้ติดตั้งและฉันได้รับข้อความแสดงข้อผิดพลาด: ไม่พบรุ่นที่ตรงตามข้อกำหนด TensorFlow (จากรุ่น:) ไม่พบการแจกแจงที่ตรงกันสำหรับ TensorFlow จากนั้นฉันลองติดตั้ง TensorFlow จากพรอมต์คำสั่งและฉันได้รับข้อความแสดงข้อผิดพลาดเดียวกัน อย่างไรก็ตามฉันติดตั้ง tflearn สำเร็จแล้ว ฉันติดตั้ง Python 2.7 ด้วย แต่ฉันได้รับข้อความแสดงข้อผิดพลาดเดิมอีกครั้ง ฉัน googled ข้อผิดพลาดและลองสิ่งที่แนะนำให้คนอื่น แต่ไม่มีอะไรทำงาน (รวมถึงการติดตั้ง Flask) ฉันจะติดตั้ง Tensorflow ได้อย่างไร ขอบคุณ

12
การนำเข้าสัมพัทธ์ - ModuleNotFoundError: ไม่มีโมดูลชื่อ x
นี่เป็นครั้งแรกที่ฉันได้นั่งลงและลองใช้ python 3 และดูเหมือนจะล้มเหลวอย่างน่าสังเวช ฉันมีสองไฟล์ต่อไปนี้: test.py config.py config.py มีฟังก์ชั่นบางอย่างที่กำหนดไว้ในนั้นรวมถึงตัวแปรบางอย่าง ฉันได้แยกมันออกเป็น: config.py debug = True test.py import config print (config.debug) ฉันยังมี __init__.py อย่างไรก็ตามฉันได้รับข้อผิดพลาดต่อไปนี้: ModuleNotFoundError: No module named 'config' ฉันทราบว่าอนุสัญญา py3 นั้นใช้การนำเข้าแบบสัมบูรณ์: from . import config อย่างไรก็ตามสิ่งนี้นำไปสู่ข้อผิดพลาดต่อไปนี้: ImportError: cannot import name 'config' ดังนั้นฉันจะสูญเสียว่าจะทำอย่างไรที่นี่ ... ความช่วยเหลือใด ๆ ที่ชื่นชมอย่างมาก :)

8
Python 3 เปลี่ยนช่วงเป็นรายการ
ฉันพยายามทำรายการด้วยตัวเลข1-1000ในนั้น เห็นได้ชัดว่ามันน่ารำคาญที่จะเขียน / อ่านดังนั้นฉันพยายามทำรายการด้วยช่วงที่อยู่ในนั้น ใน Python 2 ดูเหมือนว่า: some_list = range(1,1000) จะใช้งานได้ แต่ใน Python 3 ช่วงจะคล้ายกับxrangeของ Python 2 หรือไม่ ใครสามารถให้ข้อมูลเชิงลึกเกี่ยวกับเรื่องนี้?
178 python  python-3.x  list  range 

12
ให้วัตถุ JSON ยอมรับไบต์หรือให้ urlopen สตริงออก
ด้วย Python 3 ฉันกำลังขอเอกสาร json จาก URL response = urllib.request.urlopen(request) responseวัตถุเป็นวัตถุไฟล์เช่นเดียวกับreadและreadlineวิธีการ โดยปกติแล้ววัตถุ JSON สามารถสร้างขึ้นด้วยไฟล์ที่เปิดในโหมดข้อความ obj = json.load(fp) สิ่งที่ฉันต้องการจะทำคือ: obj = json.load(response) อย่างไรก็ตามสิ่งนี้ไม่ทำงานเมื่อ urlopen ส่งคืนวัตถุไฟล์ในโหมดไบนารี แน่นอนว่าการทำงานรอบ ๆ : str_response = response.read().decode('utf-8') obj = json.loads(str_response) แต่สิ่งนี้รู้สึกไม่ดี ... มีวิธีที่ดีกว่าที่ฉันสามารถแปลงวัตถุไฟล์ไบต์เป็นวัตถุไฟล์สตริง? หรือฉันไม่มีพารามิเตอร์ใด ๆ สำหรับurlopenหรือjson.loadให้การเข้ารหัส

4
การเปลี่ยนแปลงคำสั่ง import python3
ฉันไม่เข้าใจสิ่งต่อไปนี้จากpep-0404 ใน Python 3 การอิมพอร์ตสัมพัทธ์โดยนัยภายในแพ็คเกจไม่สามารถทำได้อีกต่อไป - รองรับการนำเข้าสัมบูรณ์และการนำเข้าสัมพัทธ์อย่างชัดเจนเท่านั้น นอกจากนี้การนำเข้ารูปดาว (เช่นจากการนำเข้า x *) ได้รับอนุญาตในรหัสระดับโมดูลเท่านั้น การนำเข้าแบบสัมพันธ์คืออะไร อนุญาตการนำเข้าดาวในสถานที่อื่นได้อีกใน python2 กรุณาอธิบายด้วยตัวอย่าง
177 python  python-3.x 

13
การแปลง int เป็นไบต์ใน Python 3
ฉันพยายามสร้างวัตถุไบต์นี้ใน Python 3: b'3\r\n' ดังนั้นฉันพยายามชัดเจน (สำหรับฉัน) และพบพฤติกรรมแปลก: >>> bytes(3) + b'\r\n' b'\x00\x00\x00\r\n' เห็นได้ชัดว่า: >>> bytes(10) b'\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' ฉันไม่เห็นพอยน์เตอร์ใด ๆ ว่าทำไมการแปลงไบต์จึงใช้วิธีนี้ในการอ่านเอกสาร อย่างไรก็ตามฉันพบข้อความแปลกใจบางอย่างในเรื่อง Python เกี่ยวกับการเพิ่มformatลงในไบต์ (ดูรูปแบบ Python 3 ไบต์ ): http://bugs.python.org/issue3982 สิ่งนี้โต้ตอบได้ไม่ดียิ่งขึ้นกับสิ่งแปลกประหลาดเช่นไบต์ (int) ที่คืนค่าศูนย์ในขณะนี้ และ: มันจะสะดวกกว่าสำหรับฉันถ้า bytes (int) คืนค่า ASCIIfication ของ int นั้น แต่โดยสุจริตแม้ข้อผิดพลาดจะดีกว่าพฤติกรรมนี้ (ถ้าฉันต้องการพฤติกรรมนี้ - ซึ่งฉันไม่เคยมี - ฉันอยากให้มันเป็นวิธีการในชั้นเรียนที่เรียกเช่น "bytes.zeroes (n)") บางคนสามารถอธิบายได้ว่าพฤติกรรมนี้มาจากไหน
177 python  python-3.x 

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