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

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

9
ทำไม "ถ้าไม่ใช่ someobj:" ดีกว่า "ถ้า someobj == ไม่มี:" ใน Python
ฉันเคยเห็นตัวอย่างของรหัสเช่นนี้: if not someobj: #do something แต่ฉันสงสัยว่าทำไมไม่ทำ: if someobj == None: #do something มีความแตกต่างหรือไม่? คนหนึ่งได้เปรียบกว่าอีกคนหนึ่งหรือเปล่า?
127 python 

9
ใช้แผนที่หลามและเครื่องมือการทำงานอื่น ๆ
นี่ค่อนข้างน่าเบื่อ แต่ฉันกำลังพยายามเรียนรู้ / ทำความเข้าใจการเขียนโปรแกรมเชิงฟังก์ชันใน python รหัสต่อไปนี้: foos = [1.0,2.0,3.0,4.0,5.0] bars = [1,2,3] def maptest(foo, bar): print foo, bar map(maptest, foos, bars) ผลิต: 1.0 1 2.0 2 3.0 3 4.0 None 5.0 None ถามมีวิธีใช้แผนที่หรือเครื่องมือการทำงานอื่น ๆ ใน python เพื่อสร้างสิ่งต่อไปนี้โดยไม่ต้องวนซ้ำเป็นต้น 1.0 [1,2,3] 2.0 [1,2,3] 3.0 [1,2,3] 4.0 [1,2,3] 5.0 [1,2,3] เช่นเดียวกับข้อสังเกตว่าการใช้งานจะเปลี่ยนไปอย่างไรหากมีการพึ่งพาระหว่าง foo และ …

7
แปลงปี / เดือน / วันเป็นวันของปีใน Python
ฉันใช้โมดูลPython datetimeเช่น: >>> import datetime >>> today = datetime.datetime.now() >>> print today 2009-03-06 13:24:58.857946 และฉันอยากจะคำนวณวันของปีที่อ่อนไหวของปีอธิกสุรทิน เช่นในวันนี้ (6 มีนาคม 2009) เป็นวันที่ 65 ของปี 2009 web-based เครื่องคิดเลข อย่างไรก็ตามฉันเห็นสองตัวเลือก: A. สร้างอาร์เรย์ number_of_days_in_month = [31, 28, ... ] ตัดสินใจว่าเป็นปีอธิกสุรทินหรือไม่รวมวันด้วยตนเอง B. ใช้datetime.timedeltaเพื่อเดาและค้นหาไบนารีสำหรับวันที่ถูกต้องของปี: >>> import datetime >>> YEAR = 2009 >>> DAY_OF_YEAR = 62 >>> d …
127 python  datetime 

6
การแปลงชนิด In-place ของอาร์เรย์ NumPy
ด้วยอาร์เรย์ NumPy ของint32ฉันจะแปลงให้float32 เข้าที่ได้อย่างไร โดยพื้นฐานแล้วฉันอยากจะทำ a = a.astype(numpy.float32) โดยไม่ต้องคัดลอกอาร์เรย์ มันใหญ่. aเหตุผลสำหรับการทำเช่นนี้ก็คือว่าฉันมีสองขั้นตอนวิธีการในการคำนวณของ หนึ่งในนั้นส่งคืนอาร์เรย์ของint32อีกอันส่งคืนอาร์เรย์ของfloat32(และสิ่งนี้มีอยู่ในอัลกอริทึมที่แตกต่างกันสองแบบ) ทั้งหมดคำนวณต่อไปคิดว่าเป็นอาเรย์ของafloat32 ขณะนี้ฉันทำแปลงในฟังก์ชัน C ctypesเรียกว่าผ่าน มีวิธีทำใน Python หรือไม่?
127 python  numpy 

8
พิมพ์ object 'datetime.datetime' ไม่มีแอตทริบิวต์ 'datetime'
ฉันได้รับข้อผิดพลาดต่อไปนี้: พิมพ์ object 'datetime.datetime' ไม่มีแอตทริบิวต์ 'datetime' ในบรรทัดต่อไปนี้: date = datetime.datetime(int(year), int(month), 1) มีใครทราบสาเหตุของข้อผิดพลาดหรือไม่ ฉันนำเข้า datetime ด้วยfrom datetime import datetimeif that help ขอบคุณ

13
ฉันจะนับค่าที่ไม่ซ้ำกันภายในรายการได้อย่างไร
ดังนั้นฉันจึงพยายามสร้างโปรแกรมนี้ที่จะขอให้ผู้ใช้ป้อนข้อมูลและเก็บค่าในอาร์เรย์ / รายการ จากนั้นเมื่อป้อนบรรทัดว่างระบบจะแจ้งให้ผู้ใช้ทราบว่าค่าเหล่านั้นไม่ซ้ำกันกี่ค่า ฉันกำลังสร้างสิ่งนี้ด้วยเหตุผลในชีวิตจริงไม่ใช่เป็นปัญหา enter: happy enter: rofl enter: happy enter: mpg8 enter: Cpp enter: Cpp enter: There are 4 unique words! รหัสของฉันมีดังนี้: # ask for input ipta = raw_input("Word: ") # create list uniquewords = [] counter = 0 uniquewords.append(ipta) a = 0 # loop thingy # while …

8
ใช้. cor เพื่อรับความสัมพันธ์ระหว่างสองคอลัมน์
ฉันมีดาต้าเฟรมแพนด้าต่อไปนี้Top15: ฉันสร้างคอลัมน์ที่ประมาณจำนวนเอกสารอ้างอิงต่อคน: Top15['PopEst'] = Top15['Energy Supply'] / Top15['Energy Supply per Capita'] Top15['Citable docs per Capita'] = Top15['Citable documents'] / Top15['PopEst'] ฉันต้องการทราบความสัมพันธ์ระหว่างจำนวนเอกสารอ้างอิงต่อหัวกับปริมาณพลังงานต่อหัว ดังนั้นฉันจึงใช้.corr()วิธี (สหสัมพันธ์ของเพียร์สัน): data = Top15[['Citable docs per Capita','Energy Supply per Capita']] correlation = data.corr(method='pearson') ฉันต้องการส่งคืนหมายเลขเดียว แต่ผลลัพธ์คือ:

4
อะไรคือข้อเสียของ Stackless Python? [ปิด]
ตามที่กล่าวไว้ในปัจจุบันคำถามนี้ไม่เหมาะสำหรับรูปแบบถาม & ตอบของเรา เราคาดหวังว่าคำตอบจะได้รับการสนับสนุนจากข้อเท็จจริงการอ้างอิงหรือความเชี่ยวชาญ แต่คำถามนี้อาจก่อให้เกิดการถกเถียงโต้แย้งการสำรวจความคิดเห็นหรือการอภิปรายเพิ่มเติม หากคุณรู้สึกว่าคำถามนี้สามารถปรับปรุงได้และอาจเปิดใหม่ได้โปรดไปที่ศูนย์ช่วยเหลือเพื่อรับคำแนะนำ ปิดให้บริการใน8 ปีที่ผ่านมา ฉันเพิ่งอ่านเกี่ยวกับStackless Pythonและดูเหมือนว่าจะมีข้อดีมากมายเมื่อเทียบกับ vanilla cPython มันมีคุณสมบัติที่ยอดเยี่ยมเหล่านั้นเช่นการเรียกซ้ำแบบไม่สิ้นสุด, ไมโครเธรด, การต่อเนื่องและอื่น ๆ และในขณะเดียวกันก็เร็วกว่า cPython (ประมาณ 10% หากเชื่อว่าเป็นวิกิ Python ) และเข้ากันได้กับมัน (อย่างน้อยเวอร์ชัน 2.5, 2.6 และ 3.0) ทั้งหมดนี้ดูดีเกินไปที่จะเป็นจริง อย่างไรก็ตามTANSTAAFLฉันไม่เห็นความกระตือรือร้นในการ Stackless ในชุมชน Python มากนักและPEP 219ไม่เคยเกิดขึ้นจริง ทำไมถึงเป็นเช่นนั้น? อะไรคือข้อเสียของ Stackless? โครงกระดูกอะไรซ่อนอยู่ในตู้เสื้อผ้าของ Stackless? (ฉันรู้ว่า Stackless ไม่ได้เสนอการทำงานพร้อมกันจริง แต่เป็นวิธีที่ง่ายกว่าในการเขียนโปรแกรมพร้อมกันมันไม่ได้รบกวนฉันจริงๆ)

5
Python (และ Python C API): __new__ เทียบกับ __init__
คำถามที่ฉันกำลังจะถามดูเหมือนจะซ้ำกันกับการใช้ __new__ และ __init__ของPython? แต่อย่างไรก็ตามก็ยังไม่ชัดเจนสำหรับฉันว่าความแตกต่างในทางปฏิบัติระหว่าง__new__และ__init__คืออะไร ก่อนที่คุณจะรีบบอกฉันว่า__new__มีไว้สำหรับสร้างวัตถุและ__init__มีไว้สำหรับการเริ่มต้นอ็อบเจ็กต์ขอฉันพูดให้ชัดเจน: ฉันเข้าใจ ในความเป็นจริงความแตกต่างนั้นค่อนข้างเป็นธรรมชาติสำหรับฉันเนื่องจากฉันมีประสบการณ์ใน C ++ ที่เรามีการจัดวางใหม่ซึ่งแยกการจัดสรรอ็อบเจ็กต์ออกจากการเริ่มต้นในทำนองเดียวกัน หลาม C API กวดวิชาอธิบายเช่นนี้ สมาชิกใหม่มีหน้าที่สร้างอ็อบเจ็กต์ประเภท (ซึ่งตรงข้ามกับการกำหนดค่าเริ่มต้น) มันถูกเปิดเผยใน Python เป็น__new__()วิธีการ ... เหตุผลหนึ่งที่จะใช้วิธีการใหม่เพื่อให้มั่นใจค่าเริ่มต้นของตัวแปรเช่น ใช่แล้ว - ฉันได้อะไร__new__แต่ถึงอย่างนั้นฉันก็ยังไม่เข้าใจว่าทำไมมันถึงมีประโยชน์ใน Python ตัวอย่างที่ระบุบอกว่า__new__อาจมีประโยชน์หากคุณต้องการ "รับรองค่าเริ่มต้นของตัวแปรอินสแตนซ์" ก็ใช่ว่า__init__จะทำอะไร? ในบทช่วยสอน C API ตัวอย่างจะแสดงที่สร้าง Type ใหม่ (เรียกว่า "Noddy") และกำหนด__new__ฟังก์ชันของ Type ประเภท Noddy ประกอบด้วยสมาชิกสตริงที่เรียกว่าfirstและสมาชิกสตริงนี้เริ่มต้นเป็นสตริงว่างดังนี้: static PyObject * Noddy_new(PyTypeObject *type, PyObject *args, PyObject …
127 python  c  python-c-api 

24
Virtualenvwrapper.sh อยู่ที่ไหนหลังจากติดตั้ง pip
ฉันกำลังพยายามตั้งค่า Virtualenvwrapper บน OSX และคำแนะนำและแบบฝึกหัดทั้งหมดที่ฉันพบบอกให้ฉันเพิ่มคำสั่ง source เป็น. profile โดยชี้ไปที่ Virtualenvwrapper.sh ฉันได้ตรวจสอบไดเร็กทอรี python และ site-package ทั้งหมดแล้ว แต่ไม่พบ Virtualenvwrapper.sh นี่คือสิ่งที่ฉันต้องดาวน์โหลดแยกต่างหากหรือไม่? การติดตั้ง pip ไม่ถูกต้องหรือไม่? นี่คือเนื้อหาของ /Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/virtualenvwrapper: hook_loader.py hook_loader.pyc project.py project.pyc user_scripts.py user_scripts.pyc อย่างที่คุณเห็นไม่มี Virtualenvwrapper.sh มันอยู่ที่ไหน?

9
เร่งความเร็วในการแทนที่ regex หลายล้านครั้งใน Python 3
ฉันใช้ Python 3.5.2 ฉันมีสองรายการ รายการ "ประโยค" ประมาณ 750,000 รายการ (สตริงแบบยาว) รายการ "คำ" ประมาณ 20,000 คำที่ฉันต้องการจะลบออกจาก 750,000 ประโยคของฉัน ดังนั้นฉันต้องวนซ้ำ 750,000 ประโยคและทำการแทนที่ประมาณ 20,000 ครั้งแต่เฉพาะในกรณีที่คำของฉันเป็น "คำ" และไม่ได้เป็นส่วนหนึ่งของอักขระที่มีขนาดใหญ่กว่า ฉันกำลังทำสิ่งนี้โดยรวบรวมคำของฉันไว้ล่วงหน้าเพื่อให้พวกเขาถูกขนาบข้างด้วย\bอักขระเมตา compiled_words = [re.compile(r'\b' + word + r'\b') for word in my20000words] จากนั้นฉันก็วนซ้ำ "ประโยค" ของฉัน import re for sentence in sentences: for word in compiled_words: sentence …

3
WebDriver click () เทียบกับคลิก JavaScript ()
เรื่องราว: ที่นี่ใน StackOverflow ฉันเคยเห็นผู้ใช้รายงานว่าไม่สามารถคลิกองค์ประกอบผ่านคำสั่ง "click" ของ selenium WebDriver และสามารถแก้ไขได้ด้วยการคลิก JavaScript โดยเรียกใช้สคริปต์ ตัวอย่างใน Python: element = driver.find_element_by_id("myid") driver.execute_script("arguments[0].click();", element) ตัวอย่างใน WebDriverJS / Protractor: var elm = $("#myid"); browser.executeScript("arguments[0].click();", elm.getWebElement()); คำถาม: เหตุใดการคลิก "ผ่าน JavaScript" จึงทำงานเมื่อคลิก WebDriver ปกติไม่ได้ สิ่งนี้เกิดขึ้นเมื่อใดและข้อเสียของวิธีแก้ปัญหานี้คืออะไร (ถ้ามี) ฉันใช้วิธีแก้ปัญหานี้เป็นการส่วนตัวโดยไม่เข้าใจว่าทำไมฉันต้องทำและปัญหาที่อาจนำไปสู่

6
การกรองรายการตามรายการบูลีน
ฉันมีรายการของค่าที่ฉันต้องการกรองตามค่าในรายการบูลีน: list_a = [1, 2, 4, 6] filter = [True, False, True, False] ฉันสร้างรายการที่กรองใหม่ด้วยบรรทัดต่อไปนี้: filtered_list = [i for indx,i in enumerate(list_a) if filter[indx] == True] ซึ่งส่งผลให้: print filtered_list [1,4] สายใช้งานได้ แต่ดูเหมือน (สำหรับฉัน) มากเกินไปและฉันก็สงสัยว่ามีวิธีที่ง่ายกว่าในการบรรลุเป้าหมายเดียวกันหรือไม่ คำแนะนำ สรุปคำแนะนำที่ดีสองประการในคำตอบด้านล่าง: 1- อย่าตั้งชื่อรายการfilterเหมือนที่ฉันทำเพราะเป็นฟังก์ชันในตัว 2- อย่าเปรียบเทียบสิ่งต่างๆกับสิ่งที่Trueฉันทำif filter[idx]==True..เพราะมันไม่จำเป็น แค่ใช้if filter[idx]ก็เพียงพอแล้ว
127 python  list  numpy 

4
WSGI และ CGI ในภาษาอังกฤษล้วนคืออะไร?
ทุกครั้งที่ฉันอ่าน WSGI หรือ CGI ฉันประจบประแจง ฉันเคยลองอ่านมาก่อน แต่ไม่มีอะไรติดขัด มันคืออะไรในภาษาอังกฤษธรรมดา? เพียงแค่ส่งคำขอไปยังเทอร์มินัลและเปลี่ยนเส้นทางเอาต์พุตหรือไม่?
127 python  cgi  wsgi 

13
เปิดเอกสารด้วยแอปพลิเคชัน OS เริ่มต้นใน Python ทั้งใน Windows และ Mac OS
ฉันต้องสามารถเปิดเอกสารโดยใช้แอปพลิเคชันเริ่มต้นใน Windows และ Mac OS โดยพื้นฐานแล้วฉันต้องการทำสิ่งเดียวกันกับที่เกิดขึ้นเมื่อคุณดับเบิลคลิกที่ไอคอนเอกสารใน Explorer หรือ Finder วิธีที่ดีที่สุดในการทำ Python คืออะไร?
127 python  windows  macos 

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