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

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

5
เมื่อใดฉันจึงควรใช้คลาสใน Python
ฉันเขียนโปรแกรมด้วยภาษาไพ ธ อนมาประมาณสองปี ข้อมูลส่วนใหญ่ (pandas, mpl, numpy) แต่ยังเป็นสคริปต์อัตโนมัติและเว็บแอปขนาดเล็ก ฉันพยายามเป็นโปรแกรมเมอร์ที่ดีขึ้นและเพิ่มความรู้ของหลามและหนึ่งในสิ่งที่รบกวนจิตใจฉันคือฉันไม่เคยใช้ชั้นเรียน (นอกการคัดลอกรหัสขวดแบบสุ่มสำหรับเว็บแอปขนาดเล็ก) โดยทั่วไปฉันเข้าใจว่าพวกเขาคืออะไร แต่ฉันไม่สามารถคาดศีรษะได้ว่าทำไมฉันถึงต้องการให้พวกเขาทำหน้าที่ง่ายๆ ในการเพิ่มความเฉพาะเจาะจงให้กับคำถามของฉัน: ฉันเขียนรายงานอัตโนมัติเป็นตันซึ่งเกี่ยวข้องกับการดึงข้อมูลจากแหล่งข้อมูลหลายแห่ง (mongo, sql, postgres, apis), ทำการแสดงข้อมูลและการจัดรูปแบบจำนวนมากหรือเล็กน้อยเขียนข้อมูลไปยัง csv / excel / html ส่งออกมาทางอีเมล สคริปต์มีตั้งแต่ ~ 250 บรรทัดถึง ~ 600 บรรทัด มีเหตุผลใดที่ฉันจะใช้คลาสเพื่อทำสิ่งนี้และทำไม?
177 python  oop 

14
จะดึงบันทึกแบบสุ่มโดยใช้ ORM ของ Django ได้อย่างไร
ฉันมีแบบจำลองที่แสดงภาพวาดที่ฉันนำเสนอบนเว็บไซต์ของฉัน ในหน้าเว็บหลักฉันต้องการแสดงบางส่วน: ใหม่ที่สุดหน้าหนึ่งที่ไม่ได้เข้าชมบ่อยครั้งหน้ายอดนิยมและหน้าจอสุ่ม ฉันใช้ Django 1.0.2 ในขณะที่ 3 คนแรกของพวกเขานั้นง่ายต่อการดึงโดยใช้โมเดล django แบบสุดท้าย (แบบสุ่ม) ทำให้ฉันมีปัญหา ฉันสามารถ ofc รหัสในมุมมองของฉันเพื่อสิ่งนี้: number_of_records = models.Painting.objects.count() random_index = int(random.random()*number_of_records)+1 random_paint = models.Painting.get(pk = random_index) มันไม่เหมือนสิ่งที่ฉันต้องการในมุมมองของฉัน - นี่เป็นส่วนหนึ่งของสิ่งที่เป็นนามธรรมและควรจะอยู่ในรูปแบบ นอกจากนี้ที่นี่ฉันต้องดูแลบันทึกที่ถูกลบ (จำนวนระเบียนทั้งหมดจะไม่ครอบคลุมค่าคีย์ที่เป็นไปได้ทั้งหมด) และอาจมีสิ่งอื่น ๆ อีกมากมาย ตัวเลือกอื่น ๆ ที่ฉันสามารถทำได้โดยเฉพาะอย่างยิ่งในสิ่งที่เป็นนามธรรมรุ่น?

7
Python SciPy ต้องการ BLAS หรือไม่
numpy.distutils.system_info.BlasNotFoundError: Blas (http://www.netlib.org/blas/) libraries not found. Directories to search for the libraries can be specified in the numpy/distutils/site.cfg file (section [blas]) or by setting the BLAS environment variable. ฉันต้องดาวน์โหลด tar ตัวไหนจากเว็บไซต์นี้? ฉันลอง fortrans แล้ว แต่ฉันได้รับข้อผิดพลาดนี้ (หลังจากตั้งค่าตัวแปรสภาพแวดล้อมอย่างชัดเจน)
176 python  scipy 

8
วิธีเข้าถึงเว็บเซิร์ฟเวอร์ Django ในพื้นที่จากโลกภายนอก
ผมทำตามคำแนะนำของที่นี่จะเรียกใช้ Django python manage.py runserverใช้ในตัวเว็บเซิร์ฟเวอร์และก็สามารถที่จะประสบความสำเร็จใช้โดยใช้ ถ้าฉันเข้าถึง 127.0.0.1: พอร์ตภายในเครื่องจากเว็บเซิร์ฟเวอร์ฉันจะได้หน้า Django ที่ระบุว่าใช้งานได้ ฉันรู้ว่า Django webserver ไม่ใช่เซิร์ฟเวอร์ที่ใช้งานจริง แต่เป็นสิ่งสำคัญสำหรับฉันในการทดสอบเพื่อให้สามารถเข้าถึงได้จากโลกภายนอก - ไม่ใช่จากเว็บเบราว์เซอร์บนเซิร์ฟเวอร์ แต่มาจากคอมพิวเตอร์เครื่องอื่น ฉันเหนื่อย: http://mywebserver:port_django_runs_on แต่มันไม่ทำงาน ฉันพยายามใช้ IP แทน (อ้างอิงจาก ifconfig) เพื่อเข้าถึง: http://myipaddress:port_django_runs_on ซึ่งไม่ได้ผลเช่นกัน เว็บเซิร์ฟเวอร์กำลังทำงานอยู่ดังนั้นจึงต้องสามารถเข้าถึงได้จากภายนอกฉันไม่แน่ใจ ฉันใช้ Linux กับ Apache อยู่แล้ว แต่ฉันยังไม่ได้ปรับแต่ง Django ด้วย Apache ความคิดเห็นใด ๆ เกี่ยวกับวิธีการทำเช่นนี้?
176 python  django 

11
อ่านคอลัมน์เฉพาะจากไฟล์ csv ด้วยโมดูล csv?
ฉันพยายามแยกวิเคราะห์ไฟล์ csv และดึงข้อมูลจากคอลัมน์เฉพาะเท่านั้น ตัวอย่าง csv: ID | Name | Address | City | State | Zip | Phone | OPEID | IPEDS | 10 | C... | 130 W.. | Mo.. | AL... | 3.. | 334.. | 01023 | 10063 | ฉันพยายามที่จะจับภาพเฉพาะคอลัมน์เฉพาะการพูดID, Name, และZipPhone รหัสที่ฉันได้ดูทำให้ฉันเชื่อว่าฉันสามารถเรียกคอลัมน์ที่ระบุตามหมายเลขที่สอดคล้องกันได้เช่น: Nameจะสอดคล้อง2และวนซ้ำในแต่ละแถวโดยใช้row[2]จะสร้างรายการทั้งหมดในคอลัมน์ 2 แต่ไม่ได้ นี่คือสิ่งที่ฉันทำไปแล้ว: …
176 python  csv 


5
ฉันจะแบ่งสายยาว ๆ ใน Python ได้อย่างไร?
คุณจะจัดรูปแบบเส้นยาวเช่นนี้อย่างไร ฉันต้องการให้กว้างไม่เกิน 80 อักขระ: logger.info("Skipping {0} because its thumbnail was already in our system as {1}.".format(line[indexes['url']], video.title)) นี่คือตัวเลือกที่ดีที่สุดของฉันหรือไม่ url = "Skipping {0} because its thumbnail was already in our system as {1}." logger.info(url.format(line[indexes['url']], video.title))

6
หลายระดับของ 'collection.defaultdict' ใน Python
ขอบคุณกลุ่มผู้ใช้ที่ยอดเยี่ยมใน SO ฉันได้ค้นพบความเป็นไปได้ที่มีให้โดยcollections.defaultdictเฉพาะอย่างยิ่งในการอ่านและความเร็ว ฉันทำให้พวกเขาใช้กับความสำเร็จ ตอนนี้ฉันต้องการที่จะใช้สามระดับของพจนานุกรมสองคนด้านบนถูกและต่ำสุดเป็นหนึ่งdefaultdict intฉันไม่พบวิธีที่เหมาะสมในการทำเช่นนี้ นี่คือความพยายามของฉัน: from collections import defaultdict d = defaultdict(defaultdict) a = [("key1", {"a1":22, "a2":33}), ("key2", {"a1":32, "a2":55}), ("key3", {"a1":43, "a2":44})] for i in a: d[i[0]] = i[1] ตอนนี้ใช้งานได้ แต่สิ่งต่อไปนี้ซึ่งเป็นพฤติกรรมที่ต้องการไม่ได้: d["key4"]["a1"] + 1 ฉันสงสัยว่าฉันควรจะประกาศที่ไหนสักแห่งว่าระดับที่สองdefaultdictเป็นประเภทintแต่ฉันไม่พบว่าจะทำที่ไหนหรืออย่างไร เหตุผลที่ฉันใช้defaultdictในตอนแรกคือการหลีกเลี่ยงการเริ่มต้นพจนานุกรมสำหรับแต่ละคีย์ใหม่ ข้อเสนอแนะใด ๆ ที่สง่างามมากขึ้น? ขอบคุณ pythoneers!

11
Python 3.x พฤติกรรมการปัดเศษ
ฉันเพิ่งอ่านใหม่มีอะไรใหม่ใน Python 3.0และระบุว่า: กลยุทธ์การปัดเศษฟังก์ชัน round () และประเภทส่งคืนได้เปลี่ยนไป กรณีครึ่งทางที่แน่นอนจะถูกปัดเศษเป็นผลลัพธ์คู่ที่ใกล้เคียงที่สุดแทนที่จะอยู่ห่างจากศูนย์ (ตัวอย่างเช่น round (2.5) ส่งคืน 2 แทน 3) และเอกสารสำหรับรอบ : สำหรับประเภทในตัวที่สนับสนุนรอบ () ค่าจะถูกปัดเศษเป็นพหุคูณที่ใกล้เคียงที่สุดของ 10 ถึงกำลังไฟฟ้าลบ n; หากสองทวีคูณใกล้กันเท่ากันการปัดเศษจะไปทางเลือกคู่ ดังนั้นภายใต้v2.7.3 : In [85]: round(2.5) Out[85]: 3.0 In [86]: round(3.5) Out[86]: 4.0 อย่างที่ฉันคาดไว้ อย่างไรก็ตามตอนนี้ภายใต้v3.2.3 : In [32]: round(2.5) Out[32]: 2 In [33]: round(3.5) Out[33]: 4 ดูเหมือนว่าจะเป็นสิ่งที่ตรงกันข้ามกับสิ่งที่ฉันเข้าใจเกี่ยวกับการปัดเศษ …

2
วิธีการดึง id ที่ใส่เข้าไปหลังจากแทรกแถวใน SQLite โดยใช้ Python
วิธีการดึง id ที่ใส่เข้าไปหลังจากแทรกแถวใน SQLite โดยใช้ Python ฉันมีโต๊ะแบบนี้: id INT AUTOINCREMENT PRIMARY KEY, username VARCHAR(50), password VARCHAR(50) ผมแทรกแถวใหม่ที่มีข้อมูลตัวอย่างและusername="test" password="test"ฉันจะดึงข้อมูลรหัสที่สร้างขึ้นในวิธีการทำธุรกรรมได้อย่างปลอดภัย นี่เป็นวิธีการแก้ปัญหาเว็บไซต์โดยที่คนสองคนอาจแทรกข้อมูลในเวลาเดียวกัน ฉันรู้ว่าฉันสามารถอ่านแถวสุดท้ายได้ แต่ฉันไม่คิดว่าธุรกรรมนั้นปลอดภัย ใครสามารถให้คำแนะนำได้บ้าง
176 python  sqlite 

7
Python Flask วิธีกำหนดประเภทเนื้อหา
ฉันกำลังใช้ Flask และฉันส่งคืนไฟล์ XML จากคำขอรับ ฉันจะตั้งค่าประเภทเนื้อหาเป็น xml ได้อย่างไร เช่น @app.route('/ajax_ddl') def ajax_ddl(): xml = 'foo' header("Content-type: text/xml") return xml
176 python  flask 

17
ฉันจะพิมพ์ตัวแปรและสตริงในบรรทัดเดียวกันใน Python ได้อย่างไร
ฉันใช้หลามเพื่อกำหนดจำนวนเด็กที่จะเกิดใน 5 ปีถ้าเด็กเกิดทุก 7 วินาที ปัญหาอยู่ในบรรทัดสุดท้ายของฉัน ฉันจะทำให้ตัวแปรทำงานได้อย่างไรเมื่อฉันพิมพ์ข้อความทั้งสองข้าง นี่คือรหัสของฉัน: currentPop = 312032486 oneYear = 365 hours = 24 minutes = 60 seconds = 60 # seconds in a single day secondsInDay = hours * minutes * seconds # seconds in a year secondsInYear = secondsInDay * oneYear fiveYears = secondsInYear * …

6
ใช้ eval python () กับ ast.literal_eval () หรือไม่
ฉันมีสถานการณ์ที่มีรหัสบางอย่างที่eval()เกิดขึ้นเป็นวิธีแก้ปัญหาที่เป็นไปได้ ตอนนี้ฉันไม่เคยใช้eval()มาก่อน แต่ฉันได้เจอข้อมูลมากมายเกี่ยวกับอันตรายที่อาจเกิดขึ้นได้ ที่กล่าวว่าฉันระมัดระวังมากเกี่ยวกับการใช้มัน สถานการณ์ของฉันคือฉันมีอินพุตที่ได้รับจากผู้ใช้: datamap = raw_input('Provide some data here: ') ในกรณีที่datamapความต้องการที่จะเป็นพจนานุกรม ฉันค้นหาไปรอบ ๆ และพบว่าeval()สามารถแก้ไขปัญหานี้ได้ ฉันคิดว่าฉันอาจสามารถตรวจสอบชนิดของอินพุตก่อนที่จะพยายามใช้ข้อมูลและนั่นจะเป็นการป้องกันความปลอดภัยที่ทำงานได้ datamap = eval(raw_input('Provide some data here: ') if not isinstance(datamap, dict): return ฉันอ่านเอกสารและฉันยังไม่ชัดเจนว่าจะปลอดภัยหรือไม่ Eval ประเมินข้อมูลทันทีที่ป้อนหรือหลังจากdatamapเรียกตัวแปรหรือไม่ เป็นastโมดูล.literal_eval()ตัวเลือกที่ปลอดภัยเท่านั้น?

4
วิธีอ่านไฟล์ข้อความในรายการหรืออาเรย์ด้วย Python
ฉันพยายามอ่านบรรทัดของไฟล์ข้อความในรายการหรืออาเรย์ในหลาม ฉันแค่ต้องสามารถเข้าถึงไอเท็มใดก็ได้ในรายการหรืออาเรย์หลังจากสร้างแล้ว ไฟล์ข้อความถูกจัดรูปแบบดังนี้: 0,0,200,0,53,1,0,255,...,0. ที่...ด้านบนมีไฟล์ข้อความจริงมีหลายร้อยหรือหลายพันรายการ ฉันใช้รหัสต่อไปนี้เพื่อพยายามอ่านไฟล์ในรายการ: text_file = open("filename.dat", "r") lines = text_file.readlines() print lines print len(lines) text_file.close() ผลลัพธ์ที่ฉันได้รับคือ: ['0,0,200,0,53,1,0,255,...,0.'] 1 เห็นได้ชัดว่ามันกำลังอ่านไฟล์ทั้งหมดลงในรายการของรายการเดียวมากกว่ารายการของแต่ละรายการ ผมทำอะไรผิดหรือเปล่า?
176 python  arrays  list  text 

3
วิธีผนวกหลายค่าเข้ากับรายการใน Python
ฉันพยายามหาวิธีผนวกหลายค่ากับรายการใน Python ฉันรู้ว่ามีไม่กี่วิธีที่จะทำเช่นการป้อนข้อมูลด้วยตนเองค่าหรือ Pur การดำเนินการผนวกในforวงหรือappendและextendฟังก์ชั่น อย่างไรก็ตามฉันสงสัยว่ามีวิธีที่ประณีตกว่านี้หรือไม่? อาจเป็นแพคเกจหรือฟังก์ชั่นบางอย่าง?
176 python  list 

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