一、與用戶交互 1、接收用戶的輸入 在Python3中,input會將用戶的所有輸入內容都存為字元串類型 在Python2中,用戶輸入什麼類型,就保存為什麼類型 # raw_input():用法與python3的input一模一樣# input(): 要求用戶必須輸入一個明確的數據類型,輸入的是什麼 ...
一、與用戶交互
1、接收用戶的輸入
在Python3中,input會將用戶的所有輸入內容都存為字元串類型
>>> >>> username = input("請輸入您的賬號:") 請輸入您的賬號:CC >>> print(username, type(username)) CC <class 'str'> >>>
>>> age = input("請輸入的你的年齡: ") 請輸入的你的年齡: 18 >>> >>> print(age, type(age)) 18 <class 'str'> >>> age=int(age) >>> print(age > 16) True >>>
>>> int("12345") # int只能將純數字的字元串轉成整型 12345 >>> >>> int("1234.5") Traceback (most recent call last): File "<pyshell#177>", line 1, in <module> int("1234.5") ValueError: invalid literal for int() with base 10: '1234.5' >>> int("1234abc5") Traceback (most recent call last): File "<pyshell#178>", line 1, in <module> int("1234abc5") ValueError: invalid literal for int() with base 10: '1234abc5' >>>
在Python2中,用戶輸入什麼類型,就保存為什麼類型
# raw_input():用法與python3的input一模一樣
# input(): 要求用戶必須輸入一個明確的數據類型,輸入的是什麼類型,就存成什麼類型
>>> age=input(">>>>>>>>>>>>>>>>>>>>>: ") >>>>>>>>>>>>>>>>>>>>>: 18 >>> age,type(age) (18, <type 'int'>) >>> >>> x=input(">>>>>>>>>>>>>>>>>>>>>: ") >>>>>>>>>>>>>>>>>>>>>: 1.3 >>> x,type(x) (1.3, <type 'float'>) >>> >>> x=input(">>>>>>>>>>>>>>>>>>>>>: ") >>>>>>>>>>>>>>>>>>>>>: [1,2,3] >>> x,type(x) ([1, 2, 3], <type 'list'>) >>>
2、格式化輸出
2.1—— %
值按照位置與%s一 一對應,少一個不行,多一個也不行
>>> res="my name is %s my age is %s" %('egon',"18") >>> print(res) my name is egon my age is 18 >>> res="my name is %s my age is %s" %("18",'egon') >>> print(res) my name is 18 my age is egon >>> res="my name is %s" %"egon" >>> print(res) my name is egon
以字典的形式傳值,打破位置的限制
>>> >>> res="我的名字是 %(name)s 我的年齡是 %(age)s" %{"age":"18","name":'egon'} >>> print(res) 我的名字是 egon 我的年齡是 18 >>>
%s可以接收任意類型,%d只能接收int
>>> >>> print('my age is %s' %18) my age is 18 >>> >>> print('my age is %s' %[1,23]) my age is [1, 23] >>> >>> print('my age is %s' %{'a':333}) my age is {'a': 333} >>> print('my age is %d' %18) # %d只能接收int my age is 18 >>> >>> print('my age is %d' %"18") Traceback (most recent call last): File "<pyshell#202>", line 1, in <module> print('my age is %d' %"18") TypeError: %d format: a number is required, not str >>>
2.2 ——str.format:相容性好
按照位置傳值
>>> >>> res='我的名字是 {} 我的年齡是 {}'.format('egon',18) >>> print(res) 我的名字是 egon 我的年齡是 18 >>> >>> res='我的名字是 {0}{0}{0} 我的年齡是 {1}{1}'.format('egon',18) >>> print(res) 我的名字是 egonegonegon 我的年齡是 1818 >>>
打破位置的限制,按照key=value傳值
>>> >>> res="我的名字是 {name} 我的年齡是 {age}".format(age=18,name='egon') >>> print(res) 我的名字是 egon 我的年齡是 18 >>>
瞭解知識——
【填充與格式化】
# 先取到值,然後在冒號後設定填充格式:[填充字元][對齊方式][寬度]
# *<10:左對齊,總共10個字元,不夠的用*號填充
print('{0:*<10}'.format('開始執行')) # 開始執行******
# *>10:右對齊,總共10個字元,不夠的用*號填充
print('{0:*>10}'.format('開始執行')) # ******開始執行
# *^10:居中顯示,總共10個字元,不夠的用*號填充
print('{0:*^10}'.format('開始執行')) # ***開始執行***
【精度與進位】
print('{salary:.3f}'.format(salary=1232132.12351)) #精確到小數點後3位,四捨五入,結果為:1232132.124
print('{0:b}'.format(123)) # 轉成二進位,結果為:1111011
print('{0:o}'.format(9)) # 轉成八進位,結果為:11
print('{0:x}'.format(15)) # 轉成十六進位,結果為:f
print('{0:,}'.format(99812939393931)) # 千分位格式化,結果為:99,812,939,393,931
2.3—— f:python3.5以後才推出
>>> >>> x = input('your name: ') your name: CC >>> y = input('your age: ') your age: 18 >>> res = f'我的名字是{x} 我的年齡是{y}' >>> print(res) 我的名字是CC 我的年齡是18 >>>
二、運算符
1、算數運算符
>>> print(10 + 3.1) 13.1 >>> print(10 + 3) 13 >>> print(10 / 3) # 結果帶小數 3.3333333333333335 >>> >>> print(10 // 3) # 只保留整數部分 3 >>> print(10 % 3) # 取模、取餘數 1 >>> print(10 ** 3) # 10的三次方 1000 >>>
2、比較運算符: >、>=、<、<=、==、!=
>>> >>> print(10 > 3) True >>> print(10 == 10) True >>> >>> print(10 >= 10) True >>> print(10 >= 3) True >>> >>> >>> name=input('your name: ') your name: cc >>> print(name == 'egon') False >>>
3、賦值運算符
# 3.1 =:變數的賦值
# 3.2 增量賦值:
>>> >>> egonAge=18 >>> egonAge+=3 >>> print(egonAge) 21 >>>
#3.3 鏈式賦值
# x=10 # y=x # z=y # z = y = x = 10 # 鏈式賦值 # print(x, y, z) # print(id(x), id(y), id(z))
# 3.4 交叉賦值
m=10 n=20 # print(m,n) # 交換值 # temp=m # m=n # n=temp # print(m,n) # m,n=n,m # 交叉賦值 # print(m,n)
# 3.5 解壓賦值
salaries=[111,222,333,444,555]
# 把五個月的工資取出來分別賦值給不同的變數名
# mon0=salaries[0] # mon1=salaries[1] # mon2=salaries[2] # mon3=salaries[3] # mon4=salaries[4]
# 解壓賦值
# mon0,mon1,mon2,mon3,mon4=salaries # print(mon0) # print(mon1) # print(mon2) # print(mon3) # print(mon4)
# 引入*,可以幫助我們取兩頭的值,無法取中間的值
# 取前三個值
# x,y,z,*_=salaries=[111,222,333,444,555] # *會將沒有對應關係的值存成列表然後賦值給緊跟其後的那個變數名,此處為_ # print(x,y,z) # print(_)
# 取後三個值
# *_,x,y,z=salaries=[111,222,333,444,555] # print(x,y,z) # x,*_,y,z=salaries=[111,222,333,444,555] # print(x,y,z) # salaries=[111,222,333,444,555] # _,*middle,_=salaries # print(middle)
# 解壓字典預設解壓出來的是字典的key
x,y,z=dic={'a':1,'b':2,'c':3} print(x,y,z)