❶ 您好,有關於python的問題,想要請教你,方便加您的可以直接溝通的方式嗎

可以呀
Common Stumbling Blocks
本段簡單的列出容易使人出錯的變動(初學者應該注意)。
· print語句被print()函數取代了,可以使用關鍵字參數來替代老的print特殊語法。例如:
Old: print "The answer is", 2*2
New: print("The answer is", 2*2)

Old: print x, # 使用逗號結尾禁止換行
New: print(x, end=" ") # 使用空格代替換行

Old: print # 輸出新行
New: print() # 輸出新行

Old: print >>sys.stderr, "fatal error"
New: print("fatal error", file=sys.stderr)

Old: print (x, y) # 輸出repr((x, y))
New: print((x, y)) # 不同於print(x,y)!

你可以自定義輸出項之間的分隔符:
print("There are <", 2**32, ">possibilities!", sep="")
輸出結果是:
There are <4294967296> possibilities!

注意:

print()函數不支持老print語句的"軟空格"特性,例如,在python2.x中,print "A\n", "B"會輸出"A\nB\n",而python3.0中,print("A\n","B")會輸出"A\n B\n"

使用 2to3 源碼轉換工具時,所有的print語句被自動轉換成print()函數調用,對大項目,這是無需爭論的。
· python3.0使用字元串(strings)和bytes代替Unicode字元串和8位字元串,這意味著幾乎所有使用Unicode編碼和二進制數據的代碼都要改動。這個改動很不錯,在2.x的世界裡,無數的bug都是因為編碼問題。
· map()和filter()返回迭代器(iterators)
· dict方法keys(),items(),values()返回視圖(同樣是迭代器)而不是列表(list)
· 內建的sorted()方法和list.sort()方法不再接受表示比較函數的cmp參數,使用key參數代替。
· 1/2返回浮點數,使用1//2能得到整數。
· repr()函數對於long整數不再包含拖尾的L,所以不加判斷的去除最後一個字元會導致去掉一個有用的數字。
String and Bytes
· 現在只有一種字元串:str,它的行為和實現都很像2.x的unicode串。
· basestring超類已經去掉了,2to3 工具會把每個出現的basestring替換成str。
· PEP3137:新類型bytes,用來表示二進制數據和編碼文本,str和bytes不能混合,需要時,必須進行顯示的轉換,轉換方法是str.encode()(str->bytes)和bytes.decode()(bytes->str).
· 在原始字元串(raw strings)中所有反斜線都按字面量解釋,不再特殊處理Unicode轉義字元。
· PEP3112:bytes字面量,例如b"abc",創建bytes實例。
· PEP3120:默認源文件編碼為UTF-8
· PEP3131:可以使用非ASCII標識符(然而,除了注釋中貢獻者的名字之外,標准庫仍然只包含ASCII)
· PEP3116:新的IO實現,API幾乎100%向後兼容,二進制文件使用bytes代替strings
· 去除了StringIO和cStringIO模塊,取而代之的是io.StringIO或者io.BytesIO
PEP3101:字元串格式化的新方法
· str.format方法(原文提到替代了%操作符,實際上,format方法和%的用法差別很大,各有所長)。
PEP3106:修補了dict的keys(),items(),values()方法
· 刪除了dict.iterkeys(),dict.itervalues()和dict.iteritems()
· dict.keys(),dict.values()和dict.items()返回dict相關數據的引用
PEP3107:函數註解(FunctionAnnotations)
· 註解函數參數和返回值的標准化方法
Exception Stuff
· PEP352:異常類必須繼承自BaseException,它異常結構的基類。
· 移除了StandardError
· Dropping sequence behavior (slicing!)and message attribute of exception instances.
· PEP3109:拋出異常:現在必須使用raiseException(args)而不是原來的raise Exception, args
· PEP3110:捕獲異常,現在必須使用exceptException as identifier而不是原來的except Exception,identifier
· PEP3134:異常鏈(Exceptionchain)。
· 改良了一些windows不能載入模式時的異常信息,具有本地化處理。
New Class and Metaclass Stuff
· 移除了classic class
· PEP3115:新的metaclass語法
· PEP3119:抽象基類。
· PEP3129:類包裝。
· PEP3141:數字抽象基類
其他的語言變化

這里列出大多數的Python語言核心和內建函數的變化。
· 移除了backticks(使用repr()代替)
· 移除了<>(不等號,使用!=代替)
· as和with變成了關鍵字
· True,False和None變成了關鍵字
· PEP237:long不存在了,只有int,它和原來的long一樣。不再支持以L結尾的數字字面量。移除sys.maxint,因為int現在已經是無限大了
· PEP238:int相除,返回float
· 改變了順序操作符的行為,例如x<y,當x和y類型不匹配時拋出TypeError而不是返回隨即的bool值
· 移除了__getslice__,語法a[i:j]被解釋成a.__getitem__(slice(i,j))
· PEP3102:keyword-only arguments.在函數參數列表中,出現在*args之後的命名參數只能使用"關鍵字參數"的形式調用
· PEP3104:nonlocal聲明。使用nonlocal可以聲明一個外部變數(不是global變數)
· PEP3111:raw_input() 改名為input(),也就是說,新的input()函數從標准輸入設備(sys.stdin)讀取一行並返回(不包括行結束符),如果輸入過早終止,該函數拋出EOFError,如果想使用老的input(),可以使用(input())代替。
· xrange()改名為range(),range()現在不是產生一個列表(list),而是一個迭代器。
· PEP3113:移除了"元組參數拆包(tuple parameter unpacking)"。這種寫法已經不行了:
1. deffoo(a, (b, c)):…
2.
3. 現在要這樣寫:
4.
5. deffoo(a, b_c):
6. b,c = b_c
· PEP3114:next()重命名為__next__(),新的內建函數next()可以調用一個對象的__next__()方法。
· PEP3127:新的八進制字面量,二進制字面量和bin()函數。你應該寫0o666而不是0666,oct()函數也做了響應的改動。同樣,0b1010等價於10,bin(10)返回"0b1010″。0666這種寫法現在是錯誤的。
· PEP3132:支持迭代器拆包。現在你可以這樣寫:
1 a,b, *rest = some_seqence
2
3 甚至象這樣:
4
5 *rest,a = stuff
6 一般情況下,rest對象是list,而等號右邊的對象是可迭代的
· PEP3135:新的super()。你可以不適用任何參數調用super(),正確的參數和實例會被正確選擇。如果使用參數,它的行為不變,和以前一樣。
· zip(),map(),filter()返回迭代器。
· 移除了string.letters和它的小夥伴們(string.lowcase和string.uppercase),現在上場的是string.ascii_letters等
· 移除了apply(),callable(),exefile(),file(),rece(),reload()
· 移除了dict.has_key()。使用in操作符進行測試
· exec語句沒有了,現在是exec()函數
· 移除了__oct__()和__hex__()特殊方法。oct()和hex()方法使用__index__()
· 移除了對__members__和__methods__的支持
· nb_nonzero重命名為nb_bool,__nonzero__()重命名為__bool__()
Optimizations
· 一般情況下,python 3.0比python 2.5慢33%左右。不過仍有提升空間。
模塊變動(新的,改進的和廢棄的)
· 移除了cPickle模塊,可以使用pickle模塊代替。最終我們將會有一個透明高效的模塊。
· 移除了imageop模塊
· 移除了audiodev, Bastion, bsddb185,exceptions, linuxaudiodev, md5, MimeWriter, mimify, popen2, rexec, sets, sha,stringold, strop, sunaudiodev, timing和xmllib模塊
· 移除了bsddb模塊(單獨發布,可以從獲取)
· 移除了new模塊
· os.tmpnam()和os.tmpfile()函數被移動到tmpfile模塊下
· tokenize模塊現在使用bytes工作。主要的入口點不再是generate_tokens,而是tokenize.tokenize()
Build and C API Changes

Python's build process和C API的改動包括:
· PEP3118:新的Buffer API
PEP3121:擴展模塊的的Initialization& Finalization
· PEP3123:使PyObject_HEAD符合標准C
其他的改動和修復

❷ python3.41 的UnicodeDecodeError:'gbk' codec can't decode byte 0xd3

ISO 8859-15,正式編號為ISO/IEC 8859-15:1999,又稱Latin-9,俗稱Latin-0,是國際標准化組織內ISO/IEC 8859的其中一個位字元集。
這個字元集於1998年制定,藉以加入在ISO/IEC 8859-1字元集缺少的法語 Œ œ 字母和 Ÿ 字母,及芬蘭語 Š š, Ž ž 字母。同時,它亦把 ¤(通用貨幣符號)換成 €(歐元符號)。

位置
0xA4 0xA6 0xA8 0xB4 0xB8 0xBC 0xBD 0xBE

8859-15
€ Š š Ž ž Œ œ Ÿ

8859-1
¤ ¦ ¨ ´ ¸ ¼ ½ ¾

此字元集同時能支援以下文字:阿爾巴尼亞語、巴斯克語、布列塔尼語、加泰羅尼亞語、丹麥語、荷蘭語、英語、愛沙尼亞語、法羅語、芬蘭語、法語、弗里斯語、加利西亞語、德語、格陵蘭語、冰島語、愛爾蘭蓋爾語(新拼字法)、義大利語、拉丁語、盧森堡語、挪威語、葡萄牙語、里托羅曼斯語、蘇格蘭蓋爾語、西班牙語、瑞典語。

Python2.x里的str和unicode有區別,從字面意義上看容易混淆,實際上,你可以把它理解成str是「位元組串」,unicode是「字元串」(string總是翻譯成「字元串」,在這里就很容易把人繞暈),看下面的例子:

# -*- coding: gb2312 -*-

s = "張三李四"
print len(s) #=> 8
u = s.decode('gbk')
print len(u) #=> 4

我的腳本編碼用的是GBK,而不是UTF-8,你會看到len(s)是8,這是這四個漢字所用的實際8個「位元組」,而len(u)是4,這就表示這里有4個「字元」

encode和decode是什麼意思呢?所謂編碼,就是把意義轉換成符號;而解碼,就是把符號還原成意義。在這里,encode應該理解成把抽象的字元轉換成具體的位元組,而decode是把具體的位元組還原成抽象的字元

❸ 在python中條件表達式中可以使用賦值運算符「

可以
從3.8開始 Python支持賦值表達式,也叫海象表達式

❹ 如何用Python解決OJ中的A+B problem。

描述
Calculate a + b
輸入制
Two integer a,,b (0 ≤ a,b ≤ 10)
輸出
Output a + b
樣例輸入
1 2

樣例輸出
3

在python3 中,以這樣的格式輸入兩個數要把這兩個數當作一個字元串來處理,找到空格字元,讓後兩個數相加即可。錯誤解題方法是

❺ 用python如何將txt文件每一行的第2,3項提取出來(C:\Users\Administrator\Desktop\EXT1-2009-Snyder.txt

line = "Acebutolol 37517-30-9 N N/N D-352/N ooc"
words_of_line = line.split(' ') #按空格分開

print words_of_line # ['Acebutolol', '37517-30-9', 'N', 'N/N', 'D-352/N', 'ooc']

❻ python中str='23.209999,352,-999'我想把這個數據寫到excel裡面去而且是分成三列,請問怎麼寫

pytion可以讀寫excel文件,但需安裝插件。
你只需把數據以,號拆分,然後逐一寫入excel的單元格中。

❼ python中說的數據series類是什麼意思,是向量,數組還是什麼

Pandas–「大熊貓」基礎
Series
Series: pandas的長槍(數據表中的一列或一行,觀測向量,一維數組…)

Series1 = pd.Series(np.random.randn(4))

print Series1,type(Series1)

print Series1.index

print Series1.values

輸出結果:

0 -0.676256

1 0.533014

2 -0.935212

3 -0.940822

dtype: float64 <class 'pandas.core.series.Series'>

Int64Index([0, 1, 2, 3], dtype='int64')

[-0.67625578 0.53301431 -0.93521212 -0.94082195]

np.random.randn() 正態分布相關。 函數說明
Series⽀持過濾的原理就如同NumPy

print Series1>0

print Series1[Series1>0]

輸出結果如下:

0 0.030480

1 0.072746

2 -0.186607

3 -1.412244

dtype: float64 <class 'pandas.core.series.Series'>

Int64Index([0, 1, 2, 3], dtype='int64')

[ 0.03048042 0.07274621 -0.18660749 -1.41224432]

我發現,邏輯表達式,獲得的值就是True或者False。要先取得值,還是要X[y]的形式。

❽ 怎樣用Python將下面的數據讀取到入數組中.並且對倒數後三列的值進行升序排序,第二三四五列數據可以不要

對倒數後三列的值進行升序排序---怎麼個排法

❾ 如何搭建python+selenium自動化測試框架

selenium是一個web的自動化測試工具,不少學習功能自動化的同學開始首選selenium,相因為它相比QTP有諸多有點:

*免費,也不用再為破解QTP而大傷腦筋

*小巧,對於不同的語言它只是一個包而已,而QTP需要下載安裝1個多G的程序。

*這也是最重要的一點,不管你以前更熟悉C、java、ruby、python、或都是C#,你都可以通過selenium完成自動化測試,而QTP只支持VBS

*支持多平台:windows、linux、MAC,支持多瀏覽器:ie、ff、safari、opera、chrome

*支持分布式測試用例的執行,可以把測試用例分布到不同的測試機器的執行,相當於分發機的功能。

關於selenium的基礎知識與java平台的結合,我之前寫過一個《菜鳥學習自動化測試》系列,最近學python,所以想嘗試一下selenium的在python平台如何搭建;還好這方法的文章很容易,在此將搭建步驟整理分享。

搭建平台windows

准備工具如下:

-------------------------------------------------------------

下載python

-------------------------------------------------------------

如果你是新學python,哪果你沒有要用的包是必須依賴於pyhton2.x 的,那麼請毫不猶豫的選擇python3.5吧!

window安裝步驟:

1、下載python安裝。

又報了個錯:

Chromeversionmustbe>=27.0.1453.0 (Driverinfo:chromedriver=2.0,platform=WindowsNT5.1SP3x86)

說我chrome的版本沒有大於27.0.1453.0,這個好辦,更新到最新版本即可。

安裝IEdriver

在新版本的webdriver中,只有安裝了iedriver使用ie進行測試工作。

iedriver的下載地址在這里,記得根據自己機器的操作系統版本來下載相應的driver。

暫時還沒嘗試,應該和chrome的安裝方式類似。

記得配置IE的保護模式

如果要使用webdriver啟動IE的話,那麼就需要配置IE的保護模式了。

把IE里的保護模式都選上或都勾掉就可以了。

❿ 關於python隨機頻率的問題。

http://..com/link?url=lqTp-AmKPbG95__5giK5Jry4dpZ_3tdGKip8UG9smDUGLNVlTfLBF5i 自己網路哈 有大神給了解決內方案容