python資料型別--數字,布林值,字串
數字:
int整型
long長整型:無限大小的整數,整數最後一位是大寫的或小寫的L
在py3中整數如果過長溢位會自動轉換為long型
浮點型:(floating point real values) - 浮點型由整數部分與小數部分組成,
浮點型也可以使用科學計數法表示(2.5e2 = 2.5 x 102 = 250)
複數(complex numbers): - 複數由實數部分和虛數部分構成,
可以用a + bj,或者complex(a,b)表示, 複數的實部a和虛部b都是浮點型。
方法:.bit_length() 表示十進位制數轉換為二進位制數時最少使用的位數。 n = 1 n1 = 3 n2 = 5 n3 = 8 print(n.bit_length()) print(n1.bit_length()) print(n2.bit_length()) print(n3.bit_length())
布林值:
字串和布林值的轉換
str—>bool:非空字串轉換為布林值為True,空字串為False
s = bool(”)
s1 = bool(‘sdsdsdds’)
print(s, s1)
bool—> str
直接將bool值數字符串化
ps:print(str(1 < 2)) 返回值是字串:’False’
說明會先進行運算。
布林值和數字之間的轉換
bool—->int
int(True) -> 1
int(bool) -> 0
int—->bool
bool(0) -> False
bool(1) -> True
bool(-1)-> True
bool(1.2) -> True
空列表,空元祖,空字典 -> False
應用:做邏輯判斷
字串:
索引:s[i] 起始為0,顧頭不顧尾 i > 0 從左至右;i < 0 從右至左
切片:s[start:end:步長] 步長 > 0 從左至右切;步長 < 0 :從右至左切。
如果沒有規定步長,預設從左至右 print(s[::-1]) #逆序字串
常用方法;終於明白()裡是寫的是方法的引數,另外學會看原始碼
*.capitalize() 將首字母大寫剩餘的小寫
.swapcase() 大小寫翻轉
*.upper()
.lower()
.title() 每個單詞的首字母大寫,中間需用特殊字元(例如空格)隔開 *.center()----> .center(width, fillchar) fillchar填充字元得是字串的格式 返回一個指定寬度 width 居中的字串,如果 width 小於字串寬度直接返回字串,否則使用 fillchar 去填充。 ***.count()--->.count(子字串,start引數,end引數) 計運算元字串在字串中出現的次數. ***.find() 檢測字串是否包含子字串,包含,返回匹配的*第一個子字串*的*索引值*,不包含返回-1 ----> .find(substring, start引數 ,end引數) ***.index()和.find() 方法一樣,不過如果string不包含substring,丟擲異常 “substring not found” *.endswith() 檢測字串中是否以指定字尾結尾 ----> .endswith(指定字尾,start引數,end引數) Str='Runoob example....wow!!!' print (Str.endswith(suffix,20)) .startswith() 檢測字串中是否以指定內容開頭 ----> .endswith(指定開頭,start引數,end引數) #引數實際是切片,注意位數 .expandtabs() 將字串中的tab符號(\t)補全成空格 將tab符號前面的字串位數補全為8,超8的話補全為16,依次類推 ----> .expandtabs(tabsize) tabsize 是空格數 **is系列 isalnum()檢測字串是否由數字或字母組成 isalpha()檢測字串是否由字母組成 isdigit()檢測字串是否由數字組成 可作判斷條件 ****replace()替換字串中的子字串 ---->.replace(old ,new , max) *max最大替換次數 *****.split() 以指定子字串分割字串,返回不含有指 定子字串的*列表*,預設按空格分割。 ----> .split(sub, num) *num是分割次數。 .rsplit() 從右往左。 a = 'I can do it. Yes, I can ' print(a.split()) # 不設定引數,預設是按空格分割 print(a.split('a')) print(a.split('I')) #### 以開頭物件分割返回空字串 *****.join() -->S.join(iterable) 以指定字元S連線一個可迭代物件,其元素必須 是字串 可以將列表轉換為*字串* 同樣也可以將元組轉換為字串 連線字典時連線的是鍵值 L = ['s', 'a', 'hello', 'world'] print('_'.join(L)) print('*'.join(L)) print(''.join(L), type(''.join(L))) *****.strip()消除字串*前後*空格 () 函式引數預設是空格,除此還可以設定引數 lstrip()消除字串前面(左面)空格 rstrip()消除字串後面(右面)空格 *****.format() 根據不同的需求進行操作 print('name:{}, age:{} ,length:{}'.format('muyi', 11, 180)) print('name:{0}, age:{1} ,length:{2}'.format('muyi', 11, 180)) print('name:{姓名}, age:{年齡},length:{身高}'.format(姓名='muyi', 年齡=18, 身高=180)) for迴圈是有限迴圈
例題:
實現一個整數加法計算器:
如:content = input(‘請輸入內容:’) #
如使用者輸入:5+9或5+ 9或5 + 9,然後進行分割再進行計算。
sum = 0
L = content.split('+')
for i in L:
sum = sum + int(i)
print(sum)
content = input('請輸入表示式:')
index = content.find('+')
sum = int(content[0:index]) + int(content[index+1:]) #空格問題,int()函式可以自動去空格
print(sum)
計算使用者輸入的內容中有幾個整數。
如:content = input(‘請輸入內容:’) # 如fhdal234slfh98769fjdla
content = input(‘請輸入表示式:’)
sum = 0
#兩種角度
content = input('請輸入:')
count = 0
for i in content:
if i.isdigit():
count += 1
print(count)
s = input('請輸入:')
count = 0
while s:
s = s.lstrip('abcdefghijklmnopqrstuvwxyz')
s = s.lstrip('0123456789')
count += 1
print(count)