初心大陸-----python寶典   第二章

模塊,上次在第一章中已經實現了一些功能,將原本32.9歲的人變成了32歲,當然,人家確實是沒有到33歲,這麼說也不太好,怎麼實現的。

import math  到入模塊

int(math.floor(32.9)) 將年齡爲32.9的人變成了32歲   

32

繼續往下看:

哎,小P老師,爲啥我每次要調用函數的時候都要寫上那個模塊的函數的名稱呀,真實麻煩呀,突然感覺我好懶,突然天空中有了明顯的波動,飄下了一段神祕代碼。

>>> from math import sqrt

>>> sqrt(9)

3.0

>>> 

咦真的可以,sqrt看來就是計算平方根的了。有備註,噢噢噢,原來只能是非負實數,就是不能計算爲負數的實數唄。

接着看。有提示:

>>> foo=math.sqrt

>>> foo(9)

3.0

>>> 

我靠還有這麼方便的用法,不錯。

看來真是數中自有黃金屋,書中自有顏如玉

!!!半天不說話,小P老師,真的不能計算爲負數的平方根嗎?

感覺又被人鄙視的感覺,繼續往下看,

又出來個模塊,叫cmath 、,這是啥,

試試再說

>>> import cmath

>>> cmath.sqrt(-1)

1j

>>> 

真是太奇怪了,2個模塊都調用sqrt,那我命名時,出來的該是什麼。

>>> from cmath import sqrt

>>> sqrt(9)

(3+0j)

我剛剛模塊定義的sqrt失效了被替換了,有提示:除非真的需要使用from .. import ..方式,否則應該堅持使用普通的import.

下面,我們將要接觸新的知識,擁有一個可執行的腳本,

想要使用腳本就需要在首行添加#!/usr/bin/env python即可

趕緊試驗下。

cat a.py 

#!/usr/bin/env python


print 1 + 2 * 4

想要執行腳本就必須要使腳本擁有權限,

下面小P老師給我講了個有意思的東西,在另外一個平行空間也可以操作初心大陸,

下載windows,python的2.7版本https://www.python.org/downloads/release/python-2711/

也可以操作,效果是一樣的,並且可以直接執行腳本

突然發現通過windows版python(dos)寫代碼也很爽呀

哈哈,

進入平行空間啦,

在腳本首行前面加#!叫做pound bang 或者shebang,在其後家還是那個用於解釋腳本的程序絕對路徑,

,感覺好麻煩,記不住呀,容易忘,有沒有通用一點的。

接着看吧。

咦!!!!!

只要將#!/usr/bin/env python不管python二進制文件在哪裏都能找得到路徑呀,太好了。媽媽再也不用擔心我健忘了。

在初心大陸的話執行腳本一定要賦予腳本權限chmod 777 hello.py

./hello.py就能執行了。

不扯了,接着看啦。

註釋?(#)在python中有些特殊,他右邊一切都會被忽略。

什麼情況,註釋居然是神器,我得到神器啦。屬性好牛逼。

只要在前面加個#無視後面任意東西。

在配合我寫程序時,註釋可以更加好的讓我回顧。


在初心大陸裏面有一些字符串是有特殊含義的。

例如:

>>> "let's go"

"let's go"

>>> 'let's go'

SyntaxError: invalid syntax

>>> 

很明顯可以看出let後面的撇號阻止go後面的撇號導致執行失敗,那麼怎樣才能好用呢。

接着看看了。

原來有轉義符號呀。

我要試試:

>>> 'let\'s go'

"let's go"

>>> 

哇,真的可以呦,那麼是不是所有的字符都可以轉義呢。

我試驗下吧。

>>> "let\"s go"

'let"s go'

>>> 

這樣也可以呦,不錯,

>>> 1000000L

1000000L

>>> print 10000000L

10000000

>>> 

這的不錯,我要抓緊學習啦,不過爲什麼print打印出來的和我想要的不一樣呢,初心大陸又鬧情緒了。

有備註:

>>> print repr("Hello, world!")

'Hello, world!'

>>> print repr(10000L)

10000L

>>> print str("Hello, world!")

Hello, world!

>>> print str(10000L)

10000

>>> 

str和repr是可以進行切換的,str是把值轉化爲合理形式的字符串,而repr會創建一個字符串。

>>> print "The temperature is  " + temp


Traceback (most recent call last):

  File "<pyshell#22>", line 1, in <module>

    print "The temperature is  " + temp

TypeError: cannot concatenate 'str' and 'int' objects

>>> print "The temperature is  " + `temp`

The temperature is  42

>>> 

第一個執行失敗,第二個執行成功,``反引號成功的原因是將temp的值成功轉換爲了字符串42,

>>> print "The temperature is  " + repr(temp)

The temperature is  42

使用repr也可以實現一樣的效果,

>>> print "The temperature is  " + str(temp)


The temperature is  42

str也可以實現。。多種方法都行。

在2.7版本中input和raw_input還是有區別的,我們看下例子吧:

>>> input("Enter a number: ")

Enter a number: 3

3

>>> raw_input("Enter a number: ")

Enter a number: 3

'3'

>>> 

作爲交互來使用時,如果輸入的是字符串那麼就會報錯了

>>> input("Enter a number: ")

Enter a number: fff


Traceback (most recent call last):

  File "<pyshell#34>", line 1, in <module>

    input("Enter a number: ")

  File "<string>", line 1, in <module>

NameError: name 'fff' is not defined

>>> 

但是用raw_input就不會。所以在2.7版本中使用raw_input

>>> raw_input("Enter a number: ")

Enter a number: ff

'ff'

>>> 

小P老師我能寫長一點的內容和初心大陸溝通嗎?

。。。。還是繼續看書吧:

長字符串,有多長呢,我要試試貌似和我剛剛說的那麼吻合呢

>>> '''

Hello chuxin

you are beautiful

'''

'\nHello chuxin\n\tyou are beautiful\n\t'

>>> 

>>> print "niao123\n\n\n"

niao123




>>> 

看來\n就是換行符的意思。

開會耽誤了。明天繼續吧。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章