Python核心教程 第二章

2021-07-10 07:21:00 字數 4006 閱讀 9851

----------------輸出hello world--------------

核心筆記一:

在互動式直譯器中顯示變數的值

通常當你想看變數內容時,你會在**中使用print 語句輸出。不過在互動式直譯器中,

你可以用 print 語句顯示變數的字串表示,或者僅使用變數名檢視該變數的原始值。

在下面的例子中,我們把乙個字串賦值給變數mystring,先用print 來顯示變數的內容,

之後用變數名稱來顯示。

>>> mystring = 'hello world!'

>>> print mystring

hello world!

>>> mystring

'hell world!'

注意:在僅用變數名時,輸出的字串是被用單引號括起來了的。這是為了讓非字串對

象也能以字串的方式顯示在螢幕上--即它顯示的是該物件的字串表示,而不僅僅是字元

串本身。引號表示你剛剛輸入的變數的值是乙個字串

有單引號代表輸出的是字串,而print函式處理的本來就是字串。這類似於str()和repr()兩個函式:

>>> str('hello world!')

'hello world!'

>>> repr('hello world!')

"'hello world!'"

python 的print 語句,與字串格式運算子( % )結合使用,可實現字串替換功能

>>> print '%s is number %d!' % ('python', 1)

python is number 1!

%s 表示由乙個字串來替換,而%d 表示由乙個整數來替換,另外乙個很常用的就是%f, 它

表示由乙個浮點數來替換

---------------input和raw_input函式-------------

input和raw_input的區別:

input()函式支援使用者輸入數字或者表示式,不支援輸入字串.返回的是數字型別的數值.

raw_input()函式捕獲的是使用者的原始輸入,返回為字串.如果需要用輸入的數字計算,則需要使用int()函式轉換一下.如果我們直接用輸入的數值與某數想加,那麼直譯器就會報錯:

a = input("a: ")

print 'a = ', a

b = raw_input("b: ")

print 'b = ', b

輸出結果是:

a: 1+1

a = 2

b: 1+1

b = 1+1

從結果中我們可以看出:

input()函式輸入表示式1+1後返回數值2

raw_input()函式輸入表示式1+1後返回字串"1+1"

>>> user = raw_input('enter login name:')

enter login name:fzyz.abc

>>> print 'your login is:', user

your login is: fzyz.abc

>>> num = raw_input('now enter a number:')

now enter a number:1024

>>> print 'doubling your number: %d' % (int(num) * 2)

doubling your number: 2048

內建函式int()將數值字串轉換成整數值,這樣才可以對它進行數**算

核心筆記二:從互動式直譯器中獲得幫助

在學習 python 的過程中,如果需要得到乙個生疏函式的幫助,只需要對它呼叫內建函式

help()。通過用函式名作為 help()的引數就能得到相應的幫助資訊:

---------------python中文編碼-------------

用 python 輸出 "hello, world!",英文沒有問題,但是如果你輸出中文字元"你好,世界"就有可能會碰到中文編碼問題。

python 檔案中如果未指定編碼,在執行過程會出現報錯:

需要在檔案開頭加入 # _*_ coding: utf-8 _*_

python 不支援c 語言中的自增1 和自減1 運算子, 這是因為 + 和 - 也是單目運算子,

python 會將 --n 解釋為-(-n) 從而得到 n , 同樣 ++n 的結果也是 n.

---------------列表和元組------------

列表和元組有幾處重要的區別。列表元素用中括號( [ ])包裹,元素的個數及元素的值可

以改變。元組元素用小括號(( ))包裹,不可以更改(儘管他們的內容可以)。元組可以看成是

唯讀的列表。通過切片運算( [ ] 和 [ : ] )可以得到子集

迴圈索引和迴圈元素,利用enumerate()函式

foo = 'abc'

for i, ch in enumerate(foo):

print ch, '(%d)' % i

結果輸出為:

a (0)

b (1)

c (2)

---------------------------檔案讀取open---------------------------------------

filename = raw_input('enter file name: ')

fobj = open(filename, 'r')

for eachline in fobj:

print eachline,

fobj.close()

輸出結果:

enter file name: e:\hjh.txt

hjhhjp

hlzzee

在print 語句中使用逗號來抑制自動生成的換行符號。 為什麼要這樣做?因為檔案中的每行文字已經自帶了換行字元, 如果我們不抑

制print 語句產生的換行符號, 文字在顯示時就會有額外的空行產生。

2-15元素排序

(a)讓使用者輸入三個數值並將分別將它們儲存到3個不同的變數中。不使用列表或排序演算法,自己寫**來對這三個數由小到大排序。(b)修改(a)的解決方案,使之從大到小排序

num1 = int(raw_input("enter number1:"))

num2 = int(raw_input("enter number2:"))

num3 = int(raw_input("enter number3:"))

minnum = min([num1, num2, num3])

maxnum = max([num1, num2, num3])

mid = [x for x in [num1, num2, num3] if x != minnum and x != maxnum]

print minnum, mid[0], maxnum

python核心程式設計第二章練習

2.5 分別使用while和for建立乙個迴圈 a 寫乙個while迴圈,輸出整數從0到10。要確保是從0到10,而不是從0到9或從1到10 b 做同 a 一樣的事,不過這次使用range 內建函式。a a 0while a 11 print a,end a 1 搞一搞 輸入任意整數,始終得到0到1...

第二章 核心C

如果在一條語句中宣告和初始化了多個變數,那麼所有的變數都具有相同的資料型別 int x 10,y 20 變數使用前需要賦初始值 宣告不同型別的變數需要單獨的語句。變數的初始化 變數時類或者結構中的字段,如果沒有顯式的初始化,建立這些變數時,其預設值就是0.方法的區域性變數必須在 中顯示的初始化,之後...

python核心程式設計第二章練習答案

迴圈和操作符 自己定義乙個列表的較簡單,下面的答案是使用者自己輸入列表 方法一sb 後來發現這種方法只能處理0 9的數字 方法二 但是這種只能每次輸入乙個數字 1 print 1 取五個數的和 n2 取五個數的平均值 nx 退出 option input please input your opti...