用戶交互,運算符
- 2021 年 1 月 29 日
- 筆記
1.交互
1.1輸入input
用戶的input輸入任何內容,都存成字符串類型,然後賦值給等號左邊的變量名
username=input(‘請輸入你的姓名:’)
1.2輸出print
默認的print功能有一個end參數,該參數的默認值為「\n」,可以將end參數的值改成任意其它字符。
1.3格式化輸出
這是一個重點內容
把一段字符串裏面的某些內容替換掉之後再輸出,就是格式化輸出
2.格式化輸出字符串的4種方式
2.1 %號
2.1.1格式的字符串(%s)與被格式化的字符串(傳入的值)必須按照位置一一對應
print('%s asked %s to do something' %('han','xiaobei')
2.1.2通過字典的方式格式化,打破了位置帶來的限制與困擾
print('我的名字是%(name)s,我的年齡是%(age)s.' %{'age':'han','age':20})
kwargs={'name':'hange','age':25}
print('我的名字是%(name)s,我的年齡是%(age)s.' %kwargs)
2.2 str.format
該format方法是在Python2.6中引入的,是字符串類型內置方法,因str.format方式在性能和使用的靈活性上都比%好,所以推薦使用
2.2.1使用位置參數
按照位置一一對應
print('{} asked {} to do something'.format('han','xiaohan'))
2.2.2使用索引
#使用索引取對應位置的值
print('{0}{0}{1}{0}'.format('x','y')) #xxyx
print('{1} ask {0} to do something'.format('han','xiaohan'))
2.2.3 使用關鍵字參數or字典
#可以通過關鍵字or字典的方式格式化,打破了位置帶來的限制與困擾
print('我的名字是{name},我的年齡是{age}.'.format(name='xiaohan',age=20)
kwargs={'name':'xiaohan','age':20}
print('我的名字是{name},我的年齡是{age}.'.format(**kwargs)) #使用**進行解包操作
2.2.4 填充與格式化
#先取值,然後在冒號後設定填充格式
print('{0:*<10}'.format('開始執行')) #*<10,左對齊,總共10個字符,不夠用*號填充
print('{0:*>10}'.format('執行完畢')) #右對齊
print('{0:*^10}'.format('正在執行')) #居中對齊
2.2.5 精度與進制
print('{salary:.3f}'.format(salary=3.1415926)
print('{0:b}'.foramt(123)) 轉為二進制
print('{0:o}'.format(9) 轉為八進制 #此處的0代表的的是後面的第1個索引的位置
2.3 f-Strings
f-string是以f或F開頭的字符串,核心在於字符串中符號{}的使用
name='xiaohan'
age=20
print(f'{name}is {age}')
print(F'{age} is {name}')
2.3.1 {}中可以是變量名
2.3.2 {}中可以是表達式
#可以在{}中放置任意合法的Python表達式,會在運行時計算
#如:數學表達式
print(f'{3*3/2}')
#如:函數的調用
def foo(n):
print('foo say hello')
return n
print(f'{foo(10)}')
#如:調用對象
name='han'
print(f'{name.lower()}')
3.基本運算符
3.1 算數運算符
如:+ – * / //(取整除) %(取余) **(冪)
3.2比較運算符
如:== != > 〉= < ≤
3.3賦值運算符
=,+=,-=,*=,/=,//=,%=,**=
3.4鏈式賦值
z=10
y=10
x=y
x,y,z
(10,10,10)
也要以寫為
x=y=z=10
print(x,y,z)
10,10,10
3.5 交叉賦值
m=10
n=20
m,n = n,m
print(m,n) 20,10
4.邏輯運算符
and or not 優先級為:not>and>or
- 原理:1.not的優先級最高,就是把緊跟其後的那個條件結果取反,所以not與緊跟其後的條件不可分割
- 2.如果語句中全部是用and連接,或者全部用or連接,那麼按照從左到右的順序依次計算即可
- 3.如果語句既有and也有or,那麼先用括號把and的左右兩個條件括起來,然後再運算
- 2.如果語句中全部是用and連接,或者全部用or連接,那麼按照從左到右的順序依次計算即可
3>4 and 4>3 or 1==3 and 'x'=='x' or 3>3 可以轉化為:
(3>4 and 4>3) or (1==3 and 'x'=='x') or 3>3
5.成員運算符
in 和not in
'han' in ['han','xiaohan']
12 not in ['han','xiaohan']
6.身份運算符
is 和is not
- is 比較的是id,兩個對象的id相同則返回True
- 在兩個對象id不同時is not 會返回True