Python的第二堂課(2)
一、初探python
print('Hello,靚仔!')
不得不說,這句話還是so real的(逃
二、Python中的變數
1.什麼是變數?(what)
量:記錄某種現實世界中事物的某種狀態;
變:事物的某種狀態是可以發生變化的。
2.為何要用變數?(why)
為了讓計算機能夠像人一樣記錄下來事物的某種狀態
3.如何用變數?(how)
原則:先定義,後引用。
- 那麼如何先定義變數呢?
eg:age=18
從上面的例子中可以看出,定義變數主要由三部分組成:
①變數名:是訪問到值的唯一方式; ②賦值符號=:將變數值的記憶體地址繫結給變數名; ③變數的值:用來表示事物的某種狀態,使我們要儲存的資料。
- 後引用:只有在變數定義後,我們才可以引用變數,否則一切都是鏡花水月---空。
4.變數名的命名:
大前提:變數名應該對值具有描述性的效果。
- 變數名只能是字母、數字或者下劃線的任意組合;
- 變數名的第一個字元不能是數字;
- 關鍵字不能作為變數名
Python3中共有33個關鍵字,不能作為變數名使用:False,None,True,
class,finally,nonlocal,return,continue,for,lambda,try,def,from,is,while,and,
del,global,not,with,as,elif,if,or,yield,assert,else,import,pass,break,except,in,raise。
(注意前三個首字母為大寫!)
- 命名風格主要有兩種:
①駝峰體:OldboyOfAge=66
②純小寫字母+下劃線:oldboy_of_age=66
推薦用第二種命名方式。
三、與使用者互動
與使用者互動,無非兩點:使用者輸入與程式輸出。
使用者輸入:
name=input('請輸入使用者名稱:')
程式輸出:
print(name) # 輸出上面的使用者名稱
四、今天作業的程式碼(格式化輸出)
# !/usr/bin/python3 # -*-coding:UTF-8-*- # 格式化輸出練習 name=input('請輸入您的名字:') while True: age = input('請輸入您的年齡:') if age.isdigit(): break else: print('輸入錯誤!請重新輸入!') sex=input('請輸入您的性別:') job=input('請輸入您的工作:') hobby=input('請輸入你的一項愛好:') info=""" ------------info of %s--------- Name: %s Age: %s Sex: %s Job: %s Hobby: %s --------------end-------------- """%(name,name,age,sex,job,hobby) print(info)
One more thing:
字串的格式化:
① 字串的格式化使用百分號(%)實現。(%也可以用作模(求餘數)操作符)。
>>> print('hello,%s'%'world')
hello,world
>>> print('小夥今年%s歲了'%18)
小夥今年18歲了
%左邊放置了一個待格式化的字串,右邊放置的是希望格式化的值,格式化的值可以是一個字串或者數字。
格式化字串的%s部分稱為轉換說明符,標記了需要放置轉換值的位置,通用術語為佔位符。
字串格式化符號:
符號 |
描述 |
%c |
格式化字元及其ASCII碼 |
%s |
格式化字串 |
%d |
格式化整數 |
%u |
格式化無符號整數 |
%o |
格式化無符號八進位制數 |
%x |
格式化無符號十六進位制數 |
%X |
格式化無符號十六進位制數(大寫) |
%f |
格式化浮點數字,可指定精確度 |
%e |
用科學記數法格式化浮點數 |
%E |
作用同%e,用科學記數法格式化浮點數 |
%g |
%f和%e的簡寫 |
%G |
%f和%E的簡寫 |
%p |
用十六進位制數格式化變數的地址 |
使用%f時,若不指定精度,則預設輸出6位小數。
>>> print('圓周率的值為:%f'%3.14)
圓周率的值為:3.140000
>>> print('圓周率的值為:%.2f'%3.14)
圓周率的值為:3.14
指定2位小數的格式為%.2f。即為英文格式下的點加上希望保留的小數位數。
在python中,字串中的%是轉換說明符,如果要輸出%,就需要格式化字串%,從而需要使用%%。如:
>>> print('經濟增長為%.2f%%'%1.23)
經濟增長為1.23%
功能類似於下例:
>>> print('輸出百分號%s'%'%')
輸出百分號%
② 字串格式化元組:
格式化操作符的右運算元可以是任何元素。
如果右運算元是元組,其中每一個元素都會被單獨格式化,每個值都需要一個對應的轉換說明符。例如:
>>> print('今年是%s年,我%d歲了,又變%s了。'%(2018,18,'帥'))
今年是2018年,我18歲了,又變帥了。
由上例可知,在有多個佔位符的字串中,可以使用元組傳入多個格式化值。如果需要轉換的元組作為轉換表示式的一部分存在,就必須將他們用圓括號括起來,否則會出錯。
注意:如果使用列表或其他序列代替元組,序列就會被解釋為一個值。只有元組和字典可以格式化一個以上的值。
基本轉換說明符:
(1)%字元:標記轉換說明符開始;
(2)轉換標誌(可選):-表對齊;+表示在轉換值之前要加上正負號;“”(空白字元)表示正數之前保留空格;0表示轉換值位數不夠時用0填充。
(3)最小欄位寬度(可選):轉換後的字串至少應該具有該值指定的寬度。如果是*,寬度就會從值元組中讀出。
(4)點(.)後跟精度值(可選):如果轉換的是實數,精度值表示出現在小數點後的位數;如果轉換的是字串,該數字就表示最大欄位寬度;如果是*,精度就會從元組中讀出。
(5)轉換型別:參見表:字串格式化符號。
1.簡單轉換:
>>> print('圓周率π的值:%.2f'%3.14)
圓周率π的值:3.14
>>> print('石油價格為:$%d'%96)
石油價格為:$96
2.欄位寬度和精度:
欄位寬度是轉換後的值所保留的最小字元個數,精度是數字轉換結果中應該包含的小數位數或字串轉換後的值所能包含的最大字元個數。
>>> print('圓周率的值為:%10f'%3.141593) #欄位寬度為10
圓周率的值為: 3.141593 #字串寬度為10,被字串佔據八個位置,剩餘兩個空格
>>> print('保留2位小數,圓周率的值位:%10.2f'%3.1415923)
保留2位小數,圓周率的值位: 3.14
>>> print('保留2位小數,圓周率的值位:%.2f'%3.1415923)
保留2位小數,圓周率的值位:3.14
>>> print('字串精度獲取:%.5s'%('hello world')) #列印字串前五個字元
字串精度獲取:hello
欄位寬度和精度都是整數,並通過點號(.)分隔。兩個都是可選引數,如果給出精度,就必須包括點號(.)。
可以使用*作為欄位寬度或精度(或兩者都用*),數值會從元組中讀出
>>> print('從元組中獲取字串精度:%*.*s'%(10,5,'hello world'))
從元組中獲取字串精度: hello #輸出字串寬度為10,精度為5
>>> print('從元組中獲取字串精度:%.*s'%(5,'hello world'))
從元組中獲取字串精度:hello #輸出精度為5
3.符號、對齊和0填充
標表,在欄位寬度和精度之前可以放置一個標表,可以是零、加號、減號或空格。
零表示用0進行填充:
>>> print('圓周率為:%010.2f'%3.141593)
圓周率為:0000003.14
減號(-)用來左對齊數值(下例中數字右側多出了額外的空格,字串寬度還是10個):
>>> print('圓周率為:%10.2f'%3.141593)
圓周率為: 3.14
>>> print('圓周率為:%-10.2f'%3.141593)
圓周率為:3.14
空格(“ ”)表示在正數前加上空格,可以用於對齊正負數。下例中第一個-5前面有空格。
>>> print(('% -5d'%10)+'\n'+('%-5d'%-10))
10
-10
>>>
加號(+)表示無論是正數還是負數都表示出符號:
>>> print(('寬度前加加號:%+5d'%10)+'\n'+('寬度前加加號:%+5d'%-10))
寬度前加加號: +10
寬度前加加號: -10