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

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


21
ทำไมไพ ธ อนจึงใช้ 'else' หลังจากและขณะลูป
ฉันเข้าใจว่าโครงสร้างนี้ทำงานอย่างไร: for i in range(10): print(i) if i == 9: print("Too big - I'm giving up!") break; else: print("Completed successfully") แต่ฉันไม่เข้าใจว่าเพราะเหตุใดจึงelseใช้เป็นคำหลักที่นี่เนื่องจากจะแนะนำรหัสที่เป็นปัญหาจะทำงานก็ต่อเมื่อforบล็อกนั้นไม่เสร็จซึ่งตรงข้ามกับที่ทำ! ไม่ว่าฉันจะคิดอย่างไรสมองของฉันก็ไม่สามารถก้าวหน้าได้อย่างราบรื่นจากforข้อความถึงelseบล็อก สำหรับฉันcontinueหรือcontinuewithจะทำให้รู้สึกมากกว่า (และฉันพยายามที่จะฝึกตัวเองให้อ่านมันเช่นนี้) ฉันสงสัยว่า Python coders อ่านโครงสร้างนี้ในหัวของพวกเขาอย่างไร (หรือออกเสียงถ้าคุณชอบ) บางทีฉันขาดบางสิ่งบางอย่างที่จะทำให้บล็อกรหัสดังกล่าวถอดรหัสได้ง่ายขึ้น?

18
ฉันจะค้นหาที่ตั้งของแหล่งโมดูล Python ได้อย่างไร
ฉันจะเรียนรู้ได้อย่างไรว่ามีการติดตั้งไฟล์ต้นฉบับสำหรับโมดูล Python ที่กำหนดไว้อย่างไร วิธีการนี้แตกต่างจาก Windows มากกว่าบน Linux หรือไม่? ฉันพยายามมองหาแหล่งที่มาของdatetimeโมดูลโดยเฉพาะ แต่ฉันสนใจคำตอบทั่วไปเช่นกัน
480 python  module 

30
วิธีการแบ่งออกเป็นหลายลูป
รับรหัสต่อไปนี้ (ที่ใช้งานไม่ได้): while True: #snip: print out current state while True: ok = get_input("Is this ok? (y/n)") if ok.lower() == "y": break 2 #this doesn't work :( if ok.lower() == "n": break #do more processing with menus and stuff มีวิธีที่จะทำให้งานนี้หรือไม่? หรือฉันจะตรวจสอบหนึ่งครั้งเพื่อแยกออกจากลูปอินพุทจากนั้นอีก จำกัด มากขึ้นตรวจสอบในลูปภายนอกเพื่อแยกออกทั้งหมดด้วยกันถ้าผู้ใช้พอใจ?

19
กำหนดชื่อฟังก์ชั่นจากภายในฟังก์ชั่นนั้น (โดยไม่ต้องใช้การย้อนกลับ)
ใน Python โดยไม่ต้องใช้tracebackโมดูลมีวิธีกำหนดชื่อของฟังก์ชันจากภายในฟังก์ชันนั้นหรือไม่? บอกว่าฉันมีโมดูลฟูด้วยแถบฟังก์ชั่น เมื่อดำเนินการfoo.bar()มีวิธีที่บาร์จะรู้ชื่อของแถบหรือไม่ หรือดีกว่ายังfoo.barชื่อ? #foo.py def bar(): print "my name is", __myname__ # <== how do I calculate this at runtime?

30
ไม่พบ mysql_config เมื่อทำการติดตั้งอินเตอร์เฟสของ mysqldb python
ฉันพยายามรับสคริปต์ Python เพื่อให้ทำงานบนเซิร์ฟเวอร์ linux ที่ฉันเชื่อมต่อผ่านทาง ssh สคริปต์ใช้ mysqldb ฉันมีส่วนประกอบอื่น ๆ ทั้งหมดที่ฉันต้องการ แต่เมื่อฉันพยายามติดตั้ง mySQLdb ผ่าน setuptools อย่างเช่น: python setup.py install ฉันได้รับรายงานข้อผิดพลาดต่อไปนี้ที่เกี่ยวข้องกับmysql_configคำสั่ง sh: mysql_config: command not found Traceback (most recent call last): File "setup.py", line 15, in <module> metadata, options = get_config() File "/usr/lib/python2.5/MySQL-python-1.2.3/setup_posix.py", line 43, in get_config libs = mysql_config("libs_r") File …

20
กำหนดค่าสำหรับเซลล์เฉพาะใน pandas DataFrame โดยใช้ดัชนี
ฉันสร้าง Panda DataFrame แล้ว df = DataFrame(index=['A','B','C'], columns=['x','y']) และได้สิ่งนี้ เซ็กซี่ A NaN NaN B NaN NaN C NaN NaN จากนั้นฉันต้องการกำหนดค่าให้กับเซลล์เฉพาะเช่นแถว 'C' และคอลัมน์ 'x' ฉันคาดว่าจะได้รับผลลัพธ์เช่นนี้: เซ็กซี่ A NaN NaN B NaN NaN C 10 น่าน ด้วยรหัสนี้: df.xs('C')['x'] = 10 แต่เนื้อหาของdfยังไม่ได้เปลี่ยน มันเป็นเพียงNaNใน DataFrame เท่านั้น ข้อเสนอแนะใด ๆ
478 python  pandas  dataframe 

17
มีวิธี pythonic เพื่อรวมสอง dicts (เพิ่มค่าสำหรับคีย์ที่ปรากฏในทั้งสอง)?
ตัวอย่างเช่นฉันมีสอง dicts: Dict A: {'a': 1, 'b': 2, 'c': 3} Dict B: {'b': 3, 'c': 4, 'd': 5} ฉันต้องการวิธี pythonic ของ 'การรวม' สอง dicts ที่ผลคือ: {'a': 1, 'b': 5, 'c': 7, 'd': 5} กล่าวคือหากคีย์ปรากฏในทั้งสอง dicts ให้เพิ่มค่าของมันหากปรากฏในเพียงหนึ่ง dict ให้เก็บค่าไว้
477 python  dictionary 

10
การเปลี่ยน“ ความถี่ติ๊ก” บนแกน x หรือ y ใน matplotlib?
ฉันพยายามที่จะแก้ไขวิธีที่หลามวางแผนข้อมูลของฉัน พูด x = [0,5,9,10,15] และ y = [0,1,2,3,4] จากนั้นฉันจะทำ: matplotlib.pyplot.plot(x,y) matplotlib.pyplot.show() และเครื่องหมายแกนของแกน x ถูกพล็อตเป็นช่วง ๆ 5 มีวิธีที่จะทำให้มันแสดงช่วงเวลา 1 หรือไม่?
477 python  matplotlib 


14
รับแหล่ง HTML ของ WebElement ใน Selenium WebDriver โดยใช้ Python
ฉันกำลังใช้การผูก Python เพื่อเรียกใช้ Selenium WebDriver: from selenium import webdriver wd = webdriver.Firefox() ฉันรู้ว่าฉันสามารถคว้าองค์ประกอบเว็บได้เช่นนี้: elem = wd.find_element_by_css_selector('#my-id') และฉันรู้ว่าฉันสามารถรับซอร์สเต็มหน้าด้วย ... wd.page_source แต่มีเพื่อรับ "แหล่งองค์ประกอบ" หรือไม่ elem.source # <-- returns the HTML as a string ซีเลเนี่ยม webdriver docs สำหรับ Python นั้นไม่มีอยู่จริงและฉันไม่เห็นอะไรเลยในรหัสที่ดูเหมือนว่าจะเปิดใช้งานการทำงานนั้น มีความคิดเกี่ยวกับวิธีที่ดีที่สุดในการเข้าถึง HTML ขององค์ประกอบ (และลูก ๆ ) หรือไม่

7
-> หมายถึงอะไรในนิยามฟังก์ชันของ Python
ฉันเพิ่งสังเกตเห็นสิ่งที่น่าสนใจเมื่อดูข้อมูลจำเพาะของไวยากรณ์ Python 3.3 : funcdef: 'def' NAME parameters ['->' test] ':' suite บล็อก 'ลูกศร' ไม่ปรากฏใน Python 2 และฉันไม่พบข้อมูลใด ๆ เกี่ยวกับความหมายของมันใน Python 3 ปรากฎว่านี่เป็น Python ที่ถูกต้องและเป็นที่ยอมรับโดยล่าม: def f(x) -> 123: return x ฉันคิดว่านี่อาจเป็นรูปแบบของเงื่อนไขเบื้องต้น แต่: ฉันไม่สามารถทดสอบได้xที่นี่เพราะมันยังไม่ได้กำหนด ไม่ว่าฉันจะวางลูกศรไว้ที่ใด (เช่น2 < 1) มันไม่ส่งผลกระทบต่อการทำงานของฟังก์ชัน ใครบ้างที่คุ้นเคยกับไวยากรณ์นี้จะอธิบายหรือไม่

12
การบันทึกข้อความ utf-8 ใน json.dumps เป็น UTF8 ไม่ใช่เป็น \ u escape sequence
รหัสตัวอย่าง: >>> import json >>> json_string = json.dumps("ברי צקלה") >>> print json_string "\u05d1\u05e8\u05d9 \u05e6\u05e7\u05dc\u05d4" ปัญหา: มันไม่ใช่มนุษย์ที่อ่านได้ ผู้ใช้ (สมาร์ท) ของฉันต้องการยืนยันหรือแก้ไขไฟล์ข้อความด้วยการทิ้ง JSON (และฉันไม่ต้องการใช้ XML) มีวิธีการทำให้เป็นอันดับวัตถุในสตริง UTF-8 JSON (แทน \uXXXX)?
474 python  json  unicode  utf-8  escaping 

8
StringIO ใน Python3
ฉันใช้ Python 3.2.1 และฉันไม่สามารถนำเข้าStringIOโมดูล ผมใช้ io.StringIOและการทำงาน แต่ฉันไม่สามารถใช้กับnumpy's genfromtxtเช่นนี้ x="1 3\n 4.5 8" numpy.genfromtxt(io.StringIO(x)) ฉันได้รับข้อผิดพลาดต่อไปนี้: TypeError: Can't convert 'bytes' object to str implicitly และเมื่อฉันเขียนimport StringIOมันบอกว่า ImportError: No module named 'StringIO'
474 python  python-3.x  io 

13
อะไรคือความแตกต่างระหว่าง '/' และ '//' เมื่อใช้สำหรับการหาร?
มีประโยชน์ในการใช้อย่างใดอย่างหนึ่งมากกว่าที่อื่น ๆ ? ใน Python 2 พวกเขาทั้งคู่ดูเหมือนจะให้ผลลัพธ์ที่เหมือนกัน: >>> 6/3 2 >>> 6//3 2

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