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

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

28
UnicodeEncodeError: ตัวแปลงสัญญาณ 'ascii' ไม่สามารถเข้ารหัสอักขระ u '\ xa0' ในตำแหน่ง 20: ลำดับไม่อยู่ในช่วง (128)
ฉันมีปัญหาในการจัดการกับอักขระ Unicode จากข้อความที่ดึงมาจากหน้าเว็บต่างๆ (ในเว็บไซต์ต่าง ๆ ) ฉันใช้ BeautifulSoup ปัญหาคือข้อผิดพลาดนั้นไม่สามารถทำซ้ำได้เสมอไป บางครั้งมันก็ทำงานร่วมกับบางหน้าและบางครั้งก็ barfs UnicodeEncodeErrorโดยขว้างปา ฉันลองทุกอย่างที่ฉันสามารถคิดได้ แต่ถึงกระนั้นฉันก็ไม่พบสิ่งใดที่ทำงานได้อย่างต่อเนื่องโดยไม่ละทิ้งข้อผิดพลาดที่เกี่ยวข้องกับ Unicode ส่วนหนึ่งของรหัสที่ทำให้เกิดปัญหาแสดงอยู่ด้านล่าง: agent_telno = agent.find('div', 'agent_contact_number') agent_telno = '' if agent_telno is None else agent_telno.contents[0] p.agent_info = str(agent_contact + ' ' + agent_telno).strip() นี่คือการติดตามสแต็กที่สร้างบนสตริง SOME เมื่อรันโค้ดย่อยด้านบน: Traceback (most recent call last): File "foobar.py", line 792, in …

8
จะคืนค่าคีย์พจนานุกรมเป็นรายการใน Python ได้อย่างไร
ในPython 2.7 , ฉันจะได้รับพจนานุกรมคีย์ , ค่าหรือรายการที่เป็นรายการ: >>> newdict = {1:0, 2:0, 3:0} >>> newdict.keys() [1, 2, 3] ตอนนี้ในPython> = 3.3ฉันได้รับสิ่งนี้: >>> newdict.keys() dict_keys([1, 2, 3]) ดังนั้นฉันต้องทำสิ่งนี้เพื่อรับรายการ: newlist = list() for i in newdict.keys(): newlist.append(i) ฉันสงสัยว่ามีวิธีที่ดีกว่าในการส่งคืนรายการในPython 3หรือไม่?

9
อะไรคือความแตกต่างระหว่างโมดูล urllib, urllib2, urllib3 และคำขอ?
ในหลามสิ่งที่เป็นความแตกต่างระหว่างurllib, urllib2, urllib3และrequestsโมดูล? ทำไมถึงมีสาม? พวกเขาดูเหมือนจะทำสิ่งเดียวกัน ...

11
ฉันจะบังคับให้การหารเป็นจุดลอยตัวได้อย่างไร กองการปัดเศษลงเป็น 0?
ฉันมีค่าจำนวนเต็มสองค่าaและb, แต่ฉันต้องการอัตราส่วนในจุดลอย ฉันรู้ว่าa < bฉันและฉันต้องการที่จะคำนวณa / bดังนั้นหากผมใช้จำนวนเต็มส่วนฉันมักจะได้รับ 0 aกับส่วนที่เหลือของ ฉันcจะบังคับให้เป็นเลขทศนิยมใน Python ได้อย่างไร? c = a / b

28
ความแตกต่างระหว่างฟังก์ชั่น range และ xrange ใน Python 2.X คืออะไร?
เห็นได้ชัดว่า xrange เร็วกว่า แต่ฉันไม่รู้ว่าทำไมมันเร็วกว่า (และไม่มีข้อพิสูจน์ใด ๆ นอกเหนือจากประวัติที่ผ่านมาจนถึงเร็วกว่า) หรืออะไรที่นอกเหนือจากนั้นแตกต่างกัน for i in range(0, 20): for i in xrange(0, 20):

10
ความแตกต่างระหว่าง dict.items () และ dict.iteritems () ใน Python2 คืออะไร?
มีความแตกต่างที่เกี่ยวข้องระหว่างdict.items()และdict.iteritems()? จากPython docs : dict.items(): ส่งคืนสำเนาของรายการคู่ (คีย์, ค่า) ของพจนานุกรม dict.iteritems(): ส่งคืนตัววนซ้ำรอบคู่ (คีย์, ค่า) ของพจนานุกรม หากฉันเรียกใช้รหัสด้านล่างดูเหมือนว่าแต่ละคนจะส่งคืนการอ้างอิงไปยังวัตถุเดียวกัน มีความแตกต่างเล็กน้อยที่ฉันขาดหายไปไหม #!/usr/bin/python d={1:'one',2:'two',3:'three'} print 'd.items():' for k,v in d.items(): if d[k] is v: print '\tthey are the same object' else: print '\tthey are different' print 'd.iteritems():' for k,v in d.iteritems(): if d[k] is v: print …

8
__future__ คืออะไรใน Python ที่ใช้และวิธีการใช้งานเมื่อไรและมันทำงานอย่างไร
__future__มักปรากฏในโมดูล Python ฉันไม่เข้าใจสิ่งที่__future__เป็นและวิธีการ / เมื่อจะใช้งานได้แม้กระทั่งหลังจากที่ได้อ่านหลามของ__future__เอกสาร มีใครอธิบายได้บ้างไหม? คำตอบเล็ก ๆ น้อย ๆ เกี่ยวกับการใช้งานพื้นฐานที่__future__ฉันได้รับนั้นถูกต้อง อย่างไรก็ตามฉันต้องเข้าใจอีกสิ่งหนึ่งเกี่ยวกับวิธีการ__future__ทำงาน: แนวคิดที่สับสนมากที่สุดสำหรับฉันคือวิธีที่ไพ ธ อนรีลีสปัจจุบันมีคุณสมบัติสำหรับรีลีสในอนาคตและวิธีการที่โปรแกรมที่ใช้ฟีเจอร์จากรีลีสในอนาคตสามารถรวบรวมได้สำเร็จใน Python เวอร์ชันปัจจุบัน ฉันเดาว่ารุ่นปัจจุบันบรรจุด้วยคุณสมบัติที่เป็นไปได้สำหรับอนาคต อย่างไรก็ตามคุณสมบัตินี้มีให้ใช้งานโดยใช้เพียงอย่างเดียว__future__เพราะไม่ใช่มาตรฐานปัจจุบัน แจ้งให้เราทราบหากฉันถูก
694 python  python-2.x 

7
แฟล็กสตริง“ u” และ“ r” ทำอะไรกันแน่และสตริงตัวอักษรดิบคืออะไร
ในขณะที่ถามคำถามนี้ฉันรู้ว่าฉันไม่รู้จักเกี่ยวกับสตริงดิบมากนัก สำหรับใครบางคนที่อ้างว่าเป็นเทรนเนอร์ของ Django นี่มันแย่มาก ฉันรู้ว่าการเข้ารหัสคืออะไรและฉันรู้ว่าตัวu''เองทำอะไรคนเดียวตั้งแต่ฉันได้รับ Unicode แต่จะr''ทำอะไรกันแน่? มันส่งผลสตริงชนิดใด และเหนือสิ่งอื่นใดสิ่งที่ห่าur''ทำอะไร? ในที่สุดมีวิธีที่เชื่อถือได้เพื่อกลับไปจากสาย Unicode เพื่อสตริงดิบง่าย ๆ ? อ่าและถ้าระบบของคุณและชุดตัวแก้ไขข้อความถูกตั้งค่าเป็น UTF-8 จะu''ทำอะไรได้จริงหรือ

8
วิธีที่ดีที่สุดในการลบเครื่องหมายเน้นเสียงในสตริง Python unicode คืออะไร
ฉันมีสตริง Unicode ใน Python และฉันต้องการที่จะลบสำเนียงทั้งหมด (กำกับออกเสียง) ฉันพบบนเว็บเป็นวิธีที่ยอดเยี่ยมในการทำเช่นนี้ใน Java: แปลงสตริง Unicode เป็นรูปแบบปกติที่มีความยาว (โดยมีอักขระแยกต่างหากสำหรับตัวอักษรและกำกับเสียง) ลบอักขระทั้งหมดที่มีชนิด Unicode เป็น "diacritic" ฉันจำเป็นต้องติดตั้งไลบรารี่เช่น pyICU หรือเป็นไปได้หรือไม่กับไลบรารี่มาตรฐานของไพ ธ อน และไพ ธ อน 3 เป็นอย่างไร? หมายเหตุสำคัญ: ฉันต้องการหลีกเลี่ยงรหัสที่มีการแมปที่ชัดเจนจากอักขระที่เน้นเสียงไปยังคู่ที่ไม่ได้เน้นเสียง

24
คุณจะปัดเศษตัวเลขใน Python อย่างไร
ปัญหานี้กำลังฆ่าฉัน หนึ่งรอบหมายเลขขึ้นในงูหลามได้อย่างไร ฉันลองปัดเศษ (ตัวเลข) แต่ปัดเศษตัวเลขลง ตัวอย่าง: round(2.3) = 2.0 and not 3, what I would like ฉันลอง int (หมายเลข + .5) แต่มันปัดเศษตัวเลขลงอีกรอบ! ตัวอย่าง: int(2.3 + .5) = 2 จากนั้นฉันลองรอบ (หมายเลข + .5) แต่มันจะไม่ทำงานในกรณีขอบ ตัวอย่าง: WAIT! THIS WORKED! กรุณาแนะนำ

26
ไม่มีโมดูลชื่อ MySQLdb
ฉันใช้ Python เวอร์ชั่น 2.5.4 และติดตั้ง MySQL เวอร์ชั่น 5.0 และ Django Django ทำงานได้ดีกับ Python แต่ไม่ใช่ MySQL ฉันกำลังใช้งานอยู่ใน Windows Vista

10
การตั้งค่าการเข้ารหัสที่ถูกต้องเมื่อ piping stdout ใน Python
เมื่อไพพ์เอาท์พุทของโปรแกรม Python ล่าม Python สับสนเกี่ยวกับการเข้ารหัสและตั้งค่าเป็น None นี่หมายถึงโปรแกรมเช่นนี้: # -*- coding: utf-8 -*- print u"åäö" จะทำงานได้ดีเมื่อทำงานตามปกติ แต่ล้มเหลวด้วย: UnicodeEncodeError: ตัวแปลงสัญญาณ 'ascii' ไม่สามารถเข้ารหัสอักขระ u '\ xa0' ในตำแหน่ง 0: เลขลำดับไม่อยู่ในช่วง (128) เมื่อใช้ในลำดับท่อ เป็นวิธีที่ดีที่สุดในการทำให้งานนี้เมื่อท่อได้อย่างไร ฉันสามารถบอกให้ใช้การเข้ารหัสเชลล์ / ระบบไฟล์ / อะไรก็ได้ที่กำลังใช้อยู่ คำแนะนำที่ฉันได้เห็นในตอนนี้คือการแก้ไข site.py ของคุณโดยตรงหรือการเข้ารหัสฮาร์ดโค้ดเริ่มต้นโดยใช้แฮ็คนี้: # -*- coding: utf-8 -*- import sys reload(sys) sys.setdefaultencoding('utf-8') print u"åäö" มีวิธีที่ดีกว่าในการทำให้ท่อทำงานหรือไม่

14
วิธีการพิมพ์ numpy.array โดยไม่ต้องใช้สัญลักษณ์ทางวิทยาศาสตร์และด้วยความแม่นยำที่ได้รับ?
ฉันอยากรู้ว่ามีวิธีการจัดรูปแบบการพิมพ์numpy.arraysเช่นในลักษณะที่คล้ายกับนี้หรือไม่: x = 1.23456 print '%.3f' % x ถ้าฉันต้องการที่จะพิมพ์numpy.arrayของลอยมันพิมพ์ทศนิยมหลายครั้งมักจะอยู่ในรูปแบบ 'ทางวิทยาศาสตร์' ซึ่งค่อนข้างยากที่จะอ่านแม้สำหรับอาร์เรย์มิติต่ำ แต่เห็นได้ชัดว่าจะต้องมีการพิมพ์เป็นสตริงคือมีnumpy.array %sมีวิธีแก้ปัญหาสำหรับเรื่องนี้หรือไม่?

21
วิธีรับวัตถุสตริงแทน Unicode จาก JSON
ฉันใช้Python 2เพื่อแยก JSON จากไฟล์ข้อความที่เข้ารหัส ASCII เมื่อโหลดไฟล์เหล่านี้ด้วยjsonหรือ simplejsonค่าสตริงของฉันทั้งหมดจะถูกส่งไปยังวัตถุ Unicode แทนที่จะเป็นวัตถุสตริง ปัญหาคือฉันต้องใช้ข้อมูลกับบางไลบรารีที่ยอมรับเฉพาะวัตถุสตริงเท่านั้น ฉันไม่สามารถเปลี่ยนห้องสมุดหรืออัพเดทได้ เป็นไปได้ที่จะรับวัตถุสตริงแทน Unicode หรือไม่ ตัวอย่าง >>> import json >>> original_list = ['a', 'b'] >>> json_list = json.dumps(original_list) >>> json_list '["a", "b"]' >>> new_list = json.loads(json_list) >>> new_list [u'a', u'b'] # I want these to be of type `str`, not `unicode` …

8
กำลังเขียนข้อความ Unicode ไปยังไฟล์ข้อความ?
ฉันดึงข้อมูลออกจาก Google doc ประมวลผลแล้วเขียนลงในไฟล์ (ในที่สุดฉันก็จะวางลงในหน้า Wordpress) มันมีสัญลักษณ์ที่ไม่ใช่ ASCII ฉันจะแปลงสิ่งเหล่านี้อย่างปลอดภัยเป็นสัญลักษณ์ที่สามารถใช้ในซอร์ส HTML ได้อย่างไร ขณะนี้ฉันกำลังแปลงทุกอย่างเป็น Unicode ระหว่างทางรวมเข้าด้วยกันในสตริง Python จากนั้นทำ: import codecs f = codecs.open('out.txt', mode="w", encoding="iso-8859-1") f.write(all_html.encode("iso-8859-1", "replace")) มีข้อผิดพลาดในการเข้ารหัสในบรรทัดสุดท้าย: UnicodeDecodeError: ตัวแปลงสัญญาณ 'ascii' ไม่สามารถถอดรหัสไบต์ 0xa0 ในตำแหน่ง 12286: ลำดับไม่อยู่ในช่วง (128) โซลูชันบางส่วน: Python นี้ทำงานโดยไม่มีข้อผิดพลาด: row = [unicode(x.strip()) if x is not None else u'' for x …

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