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

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

10
วิธีที่ปลอดภัยที่สุดในการแปลง float เป็นจำนวนเต็มในไพ ธ อน?
โมดูลคณิตศาสตร์ ธ ประกอบด้วยฟังก์ชั่นที่มีประโยชน์เช่น&floor ceilฟังก์ชั่นเหล่านี้ใช้จำนวนจุดลอยตัวและส่งกลับจำนวนเต็มที่ใกล้เคียงที่สุดหรือต่ำกว่านั้น อย่างไรก็ตามฟังก์ชั่นเหล่านี้คืนคำตอบเป็นจำนวนจุดลอยตัว ตัวอย่างเช่น: import math f=math.floor(2.3) ตอนนี้fผลตอบแทน: 2.0 วิธีที่ปลอดภัยที่สุดในการดึงจำนวนเต็มออกจาก float นี้โดยไม่เสี่ยงต่อการปัดเศษข้อผิดพลาด (ตัวอย่างเช่นถ้า float เท่ากับ 1.99999) หรือบางทีฉันควรใช้ฟังก์ชันอื่นโดยสิ้นเชิง?

7
วิธีการเลือกเพียงหนึ่งรายการจากเครื่องกำเนิดไฟฟ้า?
ฉันมีฟังก์ชั่นเครื่องกำเนิดไฟฟ้าดังนี้: def myfunct(): ... yield result วิธีปกติในการเรียกใช้ฟังก์ชันนี้คือ: for r in myfunct(): dostuff(r) คำถามของฉันมีวิธีที่จะได้รับเพียงหนึ่งองค์ประกอบจากเครื่องกำเนิดไฟฟ้าเมื่อใดก็ตามที่ฉันชอบ? ตัวอย่างเช่นฉันต้องการทำสิ่งที่ชอบ: while True: ... if something: my_element = pick_just_one_element(myfunct()) dostuff(my_element) ...

4
`1 ..__ truediv__ 'คืออะไร? Python มีไวยากรณ์สัญกรณ์ .. (“ dot dot”) หรือไม่
ฉันเพิ่งเจอไวยากรณ์ที่ฉันไม่เคยเห็นมาก่อนเมื่อฉันเรียนรู้หลามหรือในบทเรียนส่วนใหญ่..สัญกรณ์มันมีลักษณะเช่นนี้: f = 1..__truediv__ # or 1..__div__ for python 2 print(f(8)) # prints 0.125 ฉันคิดว่ามันเหมือนกับ (ยกเว้นยาวกว่าแน่นอน): f = lambda x: (1).__truediv__(x) print(f(8)) # prints 0.125 or 1//8 แต่คำถามของฉันคือ: จะทำเช่นนั้นได้อย่างไร มันมีความหมายอย่างไรกับจุดสองจุด คุณจะใช้มันอย่างไรในข้อความที่ซับซ้อนมากขึ้น (ถ้าเป็นไปได้)? นี่อาจจะช่วยฉันรหัสหลายบรรทัดในอนาคต ... :)


6
ความแตกต่างระหว่างการเข้ารหัส / ถอดรหัสคืออะไร?
ฉันไม่เคยแน่ใจว่าฉันเข้าใจความแตกต่างระหว่าง str / unicode decode และ encode ฉันรู้ว่าstr().decode()สำหรับเมื่อคุณมีสตริงของไบต์ที่คุณรู้ว่ามีการเข้ารหัสตัวอักษรบางอย่างเนื่องจากชื่อการเข้ารหัสนั้นจะส่งกลับสตริง Unicode ฉันรู้ว่าunicode().encode()แปลงอักขระ Unicode เป็นสตริงไบต์ตามชื่อการเข้ารหัสที่กำหนด แต่ฉันไม่เข้าใจว่าอะไรstr().encode()และunicode().decode()มีไว้เพื่ออะไร มีใครอธิบายได้บ้างและอาจแก้ไขสิ่งอื่นที่ฉันผิดไปได้ด้วย? แก้ไข: หลายคำตอบให้ข้อมูลเกี่ยวกับสิ่งที่.encodeไม่เกี่ยวกับสตริง แต่ไม่มีใครดูเหมือนจะรู้ว่าสิ่งที่.decodeไม่สำหรับ Unicode

2
Python 2 เปรียบเทียบสตริงและ int อย่างไร เหตุใดรายการจึงเปรียบเทียบมากกว่าตัวเลขและอันดับมากกว่ารายการ
ตัวอย่างต่อไปนี้มีการเพิ่มความคิดเห็นด้วยเอาต์พุต ( ดังที่เห็นใน ideone.com ): print "100" < "2" # True print "5" > "9" # False print "100" < 2 # False print 100 < "2" # True print 5 > "9" # False print "5" > 9 # True print [] > float('inf') # True print () > …

14
หน้าจาวาสคริปต์การขูดเว็บด้วย Python
ฉันพยายามที่จะพัฒนามีดโกนเว็บอย่างง่าย ฉันต้องการแยกข้อความโดยไม่มีรหัส HTML ในความเป็นจริงฉันบรรลุเป้าหมายนี้ แต่ฉันเห็นว่าในบางหน้าเว็บที่โหลด JavaScript ฉันไม่ได้รับผลลัพธ์ที่ดี ตัวอย่างเช่นหากรหัส JavaScript บางตัวเพิ่มข้อความฉันไม่เห็นเพราะเมื่อฉันโทร response = urllib2.urlopen(request) ฉันได้รับข้อความต้นฉบับโดยไม่มีข้อความเพิ่ม (เพราะมีการใช้งาน JavaScript ในไคลเอนต์) ดังนั้นฉันกำลังมองหาแนวคิดเพื่อแก้ไขปัญหานี้

10
วิธีการตรวจสอบว่าตัวแปรเป็นสตริงที่มีความเข้ากันได้หลาม 2 และ 3
ฉันรู้ว่าฉันสามารถใช้: isinstance(x, str)ใน python-3.x แต่ฉันต้องตรวจสอบว่ามีสตริงใน python-2.x หรือไม่ จะisinstance(x, str)ทำงานได้ตามที่คาดหวังใน python-2.x หรือไม่ หรือฉันจะต้องตรวจสอบเวอร์ชั่นและใช้isinstance(x, basestr)? โดยเฉพาะใน python-2.x: >>>isinstance(u"test", str) False และ python-3.x ไม่มี u"foo"

15
วิธีการใช้งาน Python หลายรุ่นบน Windows
ฉันติดตั้ง Python สองเวอร์ชันในเครื่องของฉัน (เวอร์ชัน 2.6 และ 2.5) ฉันต้องการรัน 2.6 สำหรับโครงการหนึ่งและอีก 2.5 โครงการ ฉันจะระบุสิ่งที่ฉันต้องการใช้ได้อย่างไร ฉันกำลังทำงานบน Windows XP SP2


8
ทำไมไม่พิมพ์งานแลมบ์ดา?
ทำไมมันไม่ทำงาน lambda: print "x" นี่ไม่ใช่คำสั่งเดียวหรือเป็นอย่างอื่นใช่ไหม เอกสารดูเหมือนกระจัดกระจายเล็กน้อยในสิ่งที่ได้รับอนุญาตในแลมบ์ดา ...

3
Python: การใช้. format () บนสตริงที่มี Unicode
ฉันใช้ Python 2.6.5 รหัสของฉันต้องใช้เครื่องหมาย "มากกว่าหรือเท่ากับ" นี่มันไป: >>> s = u'\u2265' >>> print s >>> ≥ >>> print "{0}".format(s) Traceback (most recent call last): File "<input>", line 1, in <module> UnicodeEncodeError: 'ascii' codec can't encode character u'\u2265' in position 0: ordinal not in range(128)` เหตุใดฉันจึงได้รับข้อผิดพลาดนี้ มีวิธีที่ถูกต้องในการทำเช่นนี้? ฉันต้องใช้.format()ฟังก์ชั่น

6
ทำไมไพ ธ อนพิมพ์อักขระยูนิโค้ดเมื่อการเข้ารหัสเริ่มต้นคือ ASCII
จาก Python 2.6 shell: >>> import sys >>> print sys.getdefaultencoding() ascii >>> print u'\xe9' é >>> ฉันคาดว่าจะมีความพูดไม่ชัดหรือข้อผิดพลาดหลังจากคำสั่งพิมพ์เนื่องจากตัวอักษร "é" ไม่ได้เป็นส่วนหนึ่งของ ASCII และฉันไม่ได้ระบุการเข้ารหัส ฉันเดาว่าฉันไม่เข้าใจว่า ASCII หมายถึงการเข้ารหัสเริ่มต้นหมายความว่าอย่างไร แก้ไข ฉันย้ายการแก้ไขไปยังส่วนคำตอบและยอมรับตามที่แนะนำ

12
การแบ่ง Python
ฉันพยายามทำให้ชุดตัวเลขเป็นปกติจาก -100 ถึง 0 เป็นช่วง 10-100 และมีปัญหาเพียงเพื่อสังเกตว่าแม้จะไม่มีตัวแปรเลย แต่ก็ไม่ได้ประเมินวิธีที่ฉันคาดหวังไว้: >>> (20-10) / (100-10) 0 การแบ่งลอยไม่ทำงาน: >>> float((20-10) / (100-10)) 0.0 หากด้านใดด้านหนึ่งของการหารถูกเหวี่ยงให้ลอยมันจะทำงาน: >>> (20-10) / float((100-10)) 0.1111111111111111 แต่ละด้านในตัวอย่างแรกกำลังประเมินเป็น int ซึ่งหมายความว่าคำตอบสุดท้ายจะถูกส่งไปยัง int เนื่องจาก 0.111 น้อยกว่า. 5 จึงปัดเศษเป็น 0 ในความคิดของฉันไม่โปร่งใส แต่ฉันเดาว่าเป็นอย่างนั้น มีคำอธิบายอย่างไร?
134 python  math  python-2.x 


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