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

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

13
Java“ Virtual Machine” กับ Python“ Interpreter” parlance?
ดูเหมือนว่าเป็นการยากที่จะอ่าน Python "virtual machine" ในขณะที่ใน Java "virtual machine" นั้นถูกใช้งานตลอดเวลา ทั้งตีความรหัสไบต์; ทำไมเรียกหนึ่งเครื่องเสมือนและอื่น ๆ เป็นล่าม
207 java  python  jvm 

6
เมื่อใดที่ฉันควรใช้ uuid.uuid1 () กับ uuid.uuid4 () ใน python
ฉันเข้าใจความแตกต่างระหว่างทั้งสองจากเอกสาร uuid1(): สร้าง UUID จาก ID โฮสต์หมายเลขลำดับและเวลาปัจจุบัน uuid4(): สร้าง UUID แบบสุ่ม ดังนั้นuuid1ใช้ข้อมูลเครื่อง / ลำดับ / เวลาเพื่อสร้าง UUID ข้อดีและข้อเสียของการใช้แต่ละข้อมีอะไรบ้าง ฉันรู้ว่าuuid1()อาจมีข้อกังวลเกี่ยวกับข้อมูลส่วนบุคคลเนื่องจากเป็นข้อมูลของเครื่องจักร ฉันสงสัยว่ามีความละเอียดอ่อนกว่านี้อีกหรือไม่เมื่อเลือกอย่างใดอย่างหนึ่ง ฉันเพิ่งใช้uuid4()ตอนนี้เนื่องจากเป็น UUID ที่สุ่มอย่างสมบูรณ์ แต่ฉันสงสัยว่าควรใช้uuid1เพื่อลดความเสี่ยงของการชนหรือไม่ โดยพื้นฐานแล้วฉันกำลังมองหาเคล็ดลับของผู้คนสำหรับแนวทางปฏิบัติที่ดีที่สุดเกี่ยวกับการใช้แบบเทียบกับแบบอื่น ขอบคุณ!
207 python  uuid 

24
ไม่พบคำสั่ง Virtualenv
ฉันไม่virtualenvสามารถทำงานได้แม้จะพยายามหลายครั้ง ฉันติดตั้งvirtualenvบน MAC OS X โดยใช้: pip install virtualenv และได้เพิ่มPATHเข้าไปในของฉัน.bash_profileด้วย ทุกครั้งที่ฉันพยายามรันvirtualenvคำสั่งมันจะส่งคืน: -bash: virtualenv: command not found ทุกครั้งที่ฉันวิ่งpip install virtualenvมันจะกลับมา: Requirement already satisfied (use --upgrade to upgrade): virtualenv in /Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages ฉันเข้าใจว่าใน mac virtualenvควรติดตั้งอย่างถูกต้อง /usr/local/bin virtualenvมีการติดตั้งจริงใน/usr/local/binแต่เมื่อใดก็ตามที่ฉันพยายามที่จะเรียกใช้virtualenvคำสั่งคำสั่งไม่พบ ฉันยังพยายามเรียกใช้virtualenvคำสั่งในไดเรกทอรี/usr/local/binและให้ผลลัพธ์เดียวกันกับฉัน: -bash: virtualenv: command not found นี่คือเส้นทางที่ฉันเพิ่มลงใน. bash_profile ของฉัน export PATH=$PATH:/usr/local/bin export PATH=$PATH:/usr/local/bin/python export PATH=$PATH:/Library/Framework/Python.framework/Version/2.7/lib/site-packages มีวิธีแก้ปัญหาสำหรับสิ่งนี้หรือไม่? …
207 python  macos  virtualenv 

7
ล้างตัวแปรในไพ ธ อน
มีวิธีการล้างค่าของตัวแปรในหลามหรือไม่? เช่นถ้าฉันกำลังใช้ต้นไม้ไบนารี: Class Node: self.left = somenode1 self.right = somenode2 หากฉันต้องการลบโหนดบางส่วนจากต้นไม้ฉันจะต้องตั้งค่าself.leftให้ว่างเปล่า
207 python 

7
ต่อท้ายแถวใหม่ไปยังไฟล์ csv เก่าหลาม
ฉันพยายามเพิ่มแถวใหม่ลงในไฟล์ csv เก่าของฉัน โดยทั่วไปจะได้รับการปรับปรุงทุกครั้งที่ฉันเรียกใช้สคริปต์ Python ตอนนี้ฉันกำลังจัดเก็บค่า csv row เก่าในรายการแล้วลบไฟล์ csv และสร้างอีกครั้งด้วยค่ารายการใหม่ อยากรู้ว่ามีวิธีใดที่ดีกว่าในการทำเช่นนี้
207 python  csv  append  writer 

19
ImportError: ไม่มีโมดูลชื่อ PIL
ฉันใช้คำสั่งนี้ในเปลือกเพื่อติดตั้ง PIL: easy_install PIL แล้วผมทำงานและพิมพ์นี้:python import PILแต่ฉันได้รับข้อผิดพลาดนี้: Traceback (most recent call last): File "<console>", line 1, in <module> ImportError: No module named PIL ฉันไม่เคยมีปัญหาเช่นนี้คุณคิดอย่างไร?

18
“ OSError: [Errno 1] ไม่อนุญาตให้ใช้งาน” เมื่อติดตั้ง Scrapy ใน OSX 10.11 (El Capitan) (การป้องกันความสมบูรณ์ของระบบ)
ฉันพยายามติดตั้ง Scrapy Python framework ใน OSX 10.11 (El Capitan) ผ่านทาง pip สคริปต์การติดตั้งจะดาวน์โหลดโมดูลที่จำเป็นและในบางจุดจะส่งคืนข้อผิดพลาดต่อไปนี้: OSError: [Errno 1] Operation not permitted: '/tmp/pip-nIfswi-uninstall/System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python/six-1.4.1-py2.7.egg-info' ฉันพยายามปิดใช้งานคุณสมบัติรูตใน OSX 10.11 ด้วยคำสั่ง: sudo nvram boot-args="rootless=0";sudo reboot แต่ฉันยังคงได้รับข้อผิดพลาดเดียวกันเมื่อรีบูตเครื่อง เบาะแสหรือแนวคิดใด ๆ จาก StackExchangers เพื่อนของฉัน หากช่วยได้เอาต์พุตสคริปต์แบบเต็มจะเป็นดังต่อไปนี้: sudo -s pip install scrapy Collecting scrapy Downloading Scrapy-1.0.2-py2-none-any.whl (290kB) 100% |████████████████████████████████| 290kB 345kB/s Requirement already …

13
แปลงสตริงวันที่และเวลา UTC เป็นวันที่และเวลาท้องถิ่น
ฉันไม่เคยต้องแปลงเวลาเป็นและจาก UTC เมื่อเร็ว ๆ นี้มีคำขอให้แอปของฉันตระหนักถึงเขตเวลาและฉันใช้ตัวเองเป็นวงกลม ข้อมูลจำนวนมากเกี่ยวกับการแปลงเวลาท้องถิ่นเป็น UTC ซึ่งฉันพบว่าค่อนข้างธรรมดา (บางทีฉันก็ทำผิดเช่นกัน) แต่ฉันไม่สามารถหาข้อมูลใด ๆ ในการแปลงเวลา UTC เป็นเขตเวลาของผู้ใช้ปลายทางได้อย่างง่ายดาย โดยสรุปแล้วแอพสำหรับ Android ส่งข้อมูล (แอพพลิเคชั่น) ให้ฉันและภายในข้อมูลนั้นเป็นเวลาประทับ ในการจัดเก็บการประทับเวลานั้นเป็นเวลา utc ที่ฉันใช้: datetime.utcfromtimestamp(timestamp) ดูเหมือนว่าจะทำงานได้ เมื่อแอพของฉันเก็บข้อมูลมันจะถูกจัดเก็บล่วงหน้า 5 ชั่วโมง (ฉัน EST -5) ข้อมูลถูกจัดเก็บใน BigTable ของ appengine และเมื่อดึงข้อมูลออกมาจะเป็นสตริงดังนี้: "2011-01-21 02:37:21" ฉันจะแปลงสตริงนี้เป็น DateTime ในเขตเวลาที่ผู้ใช้แก้ไขได้อย่างไร นอกจากนี้พื้นที่เก็บข้อมูลที่แนะนำสำหรับข้อมูลเขตเวลาของผู้ใช้คืออะไร (โดยทั่วไปคุณจะเก็บข้อมูล tz เช่น: "-5: 00" หรือ "EST" ฯลฯ ฯลฯ …

4
ทำความเข้าใจความแตกต่างระหว่าง __getattr__ และ __getattribute__
ฉันพยายามที่จะเข้าใจความแตกต่างระหว่าง__getattr__และ__getattribute__อย่างไรก็ตามฉันล้มเหลว คำตอบของคำถามกองมากเกินความแตกต่างระหว่าง__getattr__VS__getattribute__พูดว่า: __getattribute__ถูกเรียกใช้ก่อนที่จะดูแอตทริบิวต์ที่แท้จริงของวัตถุและอาจมีความยุ่งยากในการใช้อย่างถูกต้อง คุณสามารถจบด้วยการเรียกซ้ำแบบไม่สิ้นสุดได้อย่างง่ายดายมาก ฉันไม่รู้ว่ามันแปลว่าอะไร จากนั้นจะกล่าวต่อไปว่า: __getattr__คุณเกือบจะแน่นอนต้องการ ทำไม? ฉันอ่านว่าถ้า__getattribute__ล้มเหลว__getattr__ถูกเรียก เหตุใดจึงมีสองวิธีที่แตกต่างกันในการทำสิ่งเดียวกัน หากรหัสของฉันใช้คลาสสไตล์ใหม่ฉันควรใช้อะไร ฉันกำลังมองหาตัวอย่างโค้ดเพื่อล้างคำถามนี้ ฉันใช้ Google อย่างดีที่สุดเพื่อความสามารถของฉัน แต่คำตอบที่ฉันพบไม่ได้พูดถึงปัญหาอย่างถี่ถ้วน หากมีเอกสารใด ๆ ฉันพร้อมที่จะอ่าน

13
ควบคุมเมาส์ด้วย Python
หนึ่งจะควบคุมเคอร์เซอร์ของเมาส์ใน Python เช่นย้ายไปยังตำแหน่งที่แน่นอนและคลิกภายใต้ Windows ได้อย่างไร
206 python  mouse 

3
Python argparse ละเว้นอาร์กิวเมนต์ที่ไม่รู้จัก
optparse เวอร์ชันเก่าจะไม่สนใจอาร์กิวเมนต์ที่ไม่รู้จักทั้งหมดและดำเนินการต่อ ในสถานการณ์ส่วนใหญ่สิ่งนี้ไม่เหมาะและถูกเปลี่ยนเป็นอาร์กิวเมนต์ แต่มีบางสถานการณ์ที่คุณต้องการละเว้นอาร์กิวเมนต์ที่ไม่รู้จักและแยกวิเคราะห์อาร์กิวเมนต์ที่คุณระบุ ตัวอย่างเช่น: parser = argparse.ArgumentParser() parser.add_argument('--foo', dest="foo") parser.parse_args() $python myscript.py --foo 1 --bar 2 error: unrecognized arguments: --bar อย่างไรก็ตามมีการเขียนทับนี้หรือไม่?

8
ฟังก์ชันเช่น sum () แต่สำหรับการคูณคืออะไร ผลิตภัณฑ์ ()?
sum()ฟังก์ชันPython ส่งคืนผลรวมของตัวเลขใน iterable sum([3,4,5]) == 3 + 4 + 5 == 12 ฉันกำลังมองหาฟังก์ชั่นที่ส่งคืนผลิตภัณฑ์แทน somelib.somefunc([3,4,5]) == 3 * 4 * 5 == 60 ฉันค่อนข้างแน่ใจว่ามีฟังก์ชั่นดังกล่าวอยู่ แต่ฉันหามันไม่เจอ
206 python  product  built-in  pep 

12
อัพเกรด python ใน virtualenv
มีวิธีในการอัพเกรดเวอร์ชั่นของไพ ธ อนที่ใช้ใน virtualenv หรือไม่ (เช่นถ้ามีการปล่อยบั๊กออกมา)? ฉันทำได้pip freeze --local > requirements.txtแล้วลบไดเรกทอรีและpip install -r requirements.txtแต่ต้องมีการติดตั้งไลบรารีขนาดใหญ่จำนวนมากตัวอย่างเช่นnumpyซึ่งฉันใช้บ่อย ฉันเห็นว่านี่เป็นข้อได้เปรียบเมื่ออัปเกรดจากเช่น 2.6 -> 2.7 แต่จะเป็นอย่างไรเมื่อ 2.7.x -> 2.7.y

8
แปลง tuple เป็น list และ back
ขณะนี้ฉันกำลังทำงานกับโปรแกรมแก้ไขแผนที่สำหรับเกมใน pygame โดยใช้แผนที่ย่อย ระดับนั้นถูกสร้างขึ้นจากบล็อกในโครงสร้างต่อไปนี้ (แม้ว่าจะมีขนาดใหญ่กว่า): level1 = ( (1,1,1,1,1,1) (1,0,0,0,0,1) (1,0,0,0,0,1) (1,0,0,0,0,1) (1,0,0,0,0,1) (1,1,1,1,1,1)) โดยที่ "1" เป็นบล็อกที่เป็นกำแพงและ "0" เป็นบล็อกที่มีอากาศว่าง รหัสต่อไปนี้นั้นเป็นรหัสที่จัดการกับการเปลี่ยนแปลงประเภทบล็อก clicked = pygame.mouse.get_pressed() if clicked[0] == 1: currLevel[((mousey+cameraY)/60)][((mousex+cameraX)/60)] = 1 แต่เนื่องจากระดับถูกเก็บไว้ในสิ่งอันดับฉันไม่สามารถเปลี่ยนค่าของบล็อกต่าง ๆ ได้ ฉันจะเปลี่ยนค่าต่าง ๆ ในระดับอย่างง่ายได้อย่างไร?
206 python  list  tuples 

6
Python ปรับหางแบบวนซ้ำให้เหมาะสมหรือไม่?
ฉันมีรหัสต่อไปนี้ซึ่งล้มเหลวด้วยข้อผิดพลาดต่อไปนี้: RuntimeError: เกินความลึกการเรียกซ้ำสูงสุด ฉันพยายามเขียนสิ่งนี้เพื่ออนุญาตการปรับให้เหมาะสมแบบเรียกซ้ำหาง (TCO) ฉันเชื่อว่ารหัสนี้ควรจะประสบความสำเร็จหาก TCO เกิดขึ้น def trisum(n, csum): if n == 0: return csum else: return trisum(n - 1, csum + n) print(trisum(1000, 0)) ฉันควรสรุปได้หรือไม่ว่า Python ไม่ได้ทำ TCO ประเภทใดหรือฉันต้องกำหนดมันให้แตกต่างกันหรือไม่?

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