第三天學習內容 今日內容 1、整型(int) 2、布爾類型(bool) 3、字元串(str) 內容詳細 1、整型 Python中的整型用int表示。 1.python2中: 在32位機器上,整數的位數為32位,取值範圍為 2 31~2 31 1,即 2147483648~2147483647 在64 ...
第三天學習內容
今日內容
1、整型(int)
2、布爾類型(bool)
3、字元串(str)
內容詳細
1、整型
Python中的整型用int表示。
1.python2中:
在32位機器上,整數的位數為32位,取值範圍為-231~231-1,即-2147483648~2147483647
在64位系統上,整數的位數為64位,取值範圍為-263~263-1,即-9223372036854775808~9223372036854775807
超出長度之後就會變為long類型。
2.python3中:
- 只有int,所有數字都是int類型。
註意:在python2中使用除法時,只能保留整數位,如果想要保留小數位,可以先導入一個模塊。
from __future__ import division
value = 3/2
print(value)
2、布爾值(bool)
- 只有兩個值:True/False
- 轉換
- 數字轉布爾:0是False,其他都是True
- 字元串轉布爾:“”是False,其他都是True
3、 字元串(str/string)
1.字元串特有功能
1.upper() #全部大寫
.lower()#全部小寫
# 示例一 a = "ascd" b = a.upper() print(a,b) # ascd ASCD # 示例二 a = "ABCD" b = a.lower() print(a,b) # ABCD abcd
2.isdigit() #字元串是否數字組成
# 示例一 a = "ABCD" b = a.isdigit() print(a,b) # ABCD False # 示例二 a = "123" b = a.isdigit() print(a,b) # 123 True
3.strip() #去除兩邊空格
.lstrip() #去除左邊空格
.rstrip()#去除左邊空格
# 示例一 a = " 123 " b = a.strip() print(">>%s<<,"%(a),">>%s<<,"%(b)) # >> 123 <<, >>123<<, # 示例二 a = " 123 " b = a.lstrip() print(">>%s<<,"%(a),">>%s<<,"%(b)) # >> 123 <<, >>123 <<, # 示例三 a = " 123 " b = a.rsplit() print(">>%s<<,"%(a),">>%s<<,"%(b))#>> 123 <<, >> 123<<,<<,
4.replace("被替換的字元/子序列","要替換為的內容") .
replace("被替換的字元/子序列","要替換為的內容",幾次)。
# 示例一 a = "abc23" b = a.replace("ab","12") print(b) # 12c23 # 示例二 a = "abc23abab" b = a.replace("ab","12",2) print(b) # 12c2312ab
5.split('根據什麼東西進行分割') #從左往右分割
.split('根據什麼東西進行分割', 幾次) #從左往右分割
. rsplit('根據什麼東西進行分割') #從右往左分割
. rsplit('根據什麼東西進行分割', 幾次) #從右往左分割
# 示例一 a = "abc23abab" b = a.split("b") print(b) # ['ab', '23abab'] #['a', 'c23a', 'a', ''] # 示例二 a = "abc23abab" b = a.split("b",2) print(b) # ['a', 'c23a', 'ab'] # 示例三 a = "abc23abab" b = a.rsplit("b") print(b) # ['a', 'c23a', 'a', ''] # 示例三 a = "abc23abab" b = a.rsplit("b",2) print(b) # ['abc23a', 'a', '']
6.startswith() # 判斷是否以什麼開頭
.endswith() #判斷是否以什麼結尾
# 示例一 a = "abc23abab" b = a.startswith("a") print(b) # True # 示例二 a = "abc23abab" b = a.endswith("b") print(b) # True
7.format # 字元串格式化的功能。
基本語法是通過 {} 和 : 來代替以前的 % 。
format 函數可以接受不限個參數,位置可以不按順序。
a = "{} {}".format("hello", "world") # 不設置指定位置,按預設順序 print(a) # 'hello world' a = "{0} {1}".format("hello", "world") # 設置指定位置 print(a) # 'hello world' a = "{1} {0} {1}".format("hello", "world") # 設置指定位置 print(a) # 'world hello world'
8.encode() # 指定的編碼格式編碼字元串
name = '李傑' # 解釋器讀取到記憶體後,按照unicode編碼存儲:8個位元組。 v1 = name.encode('utf-8') print(v1) v2 = name.encode('gbk') # b'\xe6\x9d\x8e\xe6\x9d\xb0' b為位元組 print(v2) # b'\xc0\xee\xbd\xdc'
9.join() # 將序列中的元素以指定的字元連接生成一個新的字元串。
name = 'abcd' # a_b_c_d result = "+".join(name) # 迴圈每個元素,併在元素和元素之間加入連接符。 print(result) # a+b+c+d
2.公共功能
len,計算長度(計算字元串中字元的數量)
value = "alex" number = len(value) print(number)
索引取值(0位起始點)
v = "oldboy" v1 = v[0] # 0 1 2 3 ...從前往後看 v2 = v[-1] # -1 -2 -3 ...從後往前
切片 (0作為開始)
v = "oldboy" v1 = v[2:4] # 2<= 索引位置 < 4 v2 = v[3:6] # 3<= 索引位置 <= 5 v2 = v[3:-1] # 3<= 索引位置 < 5 v2 = v[3:] # 3<= 索引位置 <最後 v2 = v[:-1] # 第一位 索引位置 <= 5 print(v2)
- 步長(面試題) #按區間取值
# 示例一 name = 'abcde' val = name[0:-1:2] print(val) # ac # 示例二 name = 'abcde' val = name[::-1] print(val) # edcba
for迴圈
name = 'abcde' for item in name: print(item) # 依次列印name里每個元素
range # 創建一個整數列表,一般用在 for 迴圈中。
for i in range(1,11): if i == 7: pass else: print(i) # 1 2 3 4 5 6 8 9 10
3.特性
- 不可變,所以字元串元素不能刪除和修改
4、練習題
# !/usr/bin/env python
# -*- coding:utf-8 -*-
# 第一題 有變數name = "aleX leNb " 完成如下操作:
name = "aleX leNb "
name_new = name.strip()
# 移除 name 變數對應的值兩邊的空格,並輸出處理結果
print(name_new)
name_new = name[0:2]
# 判斷 name 變數是否以 "al" 開頭,並輸出結果(用切片)
if name_new == 'al':
print(name_new)
name_new = name[-2:]
# 判斷name變數是否以"Nb"結尾,並輸出結果(用切片)
if name_new == 'Nb':
print(name_new)
name_new = name.replace('l','p')
# 將 name 變數對應的值中的 所有的"l" 替換為 "p",並輸出結果
print(name_new)
name_new = name.split('l')
# 將 name 變數對應的值根據 所有的"l" 分割,並輸出結果
print(name_new)
name_new = name.split('l',1)
# 將name變數對應的值根據第一個"l"分割,並輸出結果
print(name_new)
name_new = name.lower()
# 將 name 變數對應的值變小寫,並輸出結果
print(name_new)
name_new = name[1:2]
# 請輸出 name 變數對應的值的第 2 個字元?
print(name_new)
name_new = name[0:3]
# 請輸出 name 變數對應的值的前 3 個字元?
print(name_new)
name_new = name[-2:]
# 請輸出 name 變數對應的值的後 2 個字元?
print(name_new)
#第二題 有字元串s = "123a4b5c"
s = "123a4b5c"
s_new = s[0:3]
# 通過對s切片形成新的字元串 "123"
print(s_new)
s_new = s[3:6]
# 通過對s切片形成新的字元串 "a4b"
print(s_new)
s5 = s[-1:]
# 通過對s切片形成字元串s5,s5 = "c"
print(s5)
d = s[-3] + s[3] + s[1]
# 通過對s切片形成字元串s6,s6 = "ba2"
print(d)
# 第三題 使用while迴圈字元串 s="asdfer" 中每個元素。
s="asdfer"
a = int(len(s)) #計算s的長度
b = 0
while b<a:
c = s[b]
print(c)
b +=1
# 第四題 使用while迴圈對s="321"進行迴圈,列印的內容依次是:"倒計時3秒","倒計時2秒","倒計時1秒","出發!"。
s="321"
a = int(len(s)) #計算s的長度
b = 0
while b<a: #迴圈
c = s[b] #一次列印索引
print("倒計時%s秒"%(c))
b +=1
print("出發!")
# 第五題 實現一個整數加法計算器(兩個數相加)
# 如:content = input("請輸入內容:")
# 用戶輸入:5+9或5+ 9或5 + 9(含空白),然後進行分割轉換最終進行整數的計算得到結果。
content = input("請輸入內容:") #先輸入內容
a = content.strip()
b = a[0:1]
c = a[-1:]
d = int(b)+int(c)
print(d)
# 第六題 計算用戶輸入的內容中有幾個 h 字元?
# 如:content = input("請輸入內容:") # 如fhdal234slfh98769fjdla
s=input("請輸入內容:")
a = int(len(s)) #計算s的長度
b = 0
d = 0
while b<a: #迴圈
c = s[b] #一次列印索引
if c == 'h':
d = d + 1
b +=1
print(d)
# 第七題 計算用戶輸入的內容中有幾個 h 或 H 字元?
# 如:content = input("請輸入內容:") # 如fhdal234slfH9H769fjdla
s=input("請輸入內容:")
a = int(len(s)) #計算s的長度
b = 0
d = 0
while b<a: #迴圈
c = s[b] #依次列印索引
e = c.upper() #強制轉換為大寫
if e == 'H': #判斷索引是否為 H
d = d + 1
b +=1
print(d)
# 第八題 使用while迴圈分別正向和反向對字元串 message = "傷情最是晚涼天,憔悴廝人不堪言。" 進行列印。
#message = "傷情最是晚涼天,憔悴廝人不堪言。"
# 正向
s=input("請輸入內容:")
a = int(len(s)) #計算s的長度
b = 0
while b < a:
c = s[b]
print(c)
b = b + 1
#反向
s=input("請輸入內容:")
a = -int(len(s)) #計算s的長度
b = -1
while b > a:
c = s[b]
print(c)
b = b - 1
# 第九題 獲取用戶輸入的內容中 前4個字元中 有幾個 A ?
s=input("請輸入內容:")
a = 0
d = 0
while a<4: #迴圈
c = s[a] #一次列印索引
if c == 'A':
d = d + 1
a +=1
print(d)
# 第十題 獲取用戶輸入的內容,並計算前四位"l"出現幾次,並輸出結果。
s=input("請輸入內容:")
a = 0
d = 0
while a<4: #迴圈
c = s[a] #一次列印索引
if c == 'l':
d = d + 1
a +=1
print(d)
# 第十一題 獲取用戶兩次輸入的內容,並將所有的數據獲取併進行相加,如:
# 要求:
# 將num1中的的所有數字找到並拼接起來:1232312
# 將num1中的的所有數字找到並拼接起來:1218323
# 然後將兩個數字進行相加。
# num1 = input("請輸入:") # asdfd123sf2312
# num2 = input("請輸入:") # a12dfd183sf23
# # 請補充代碼
num1 = input("請輸入:")
num2 = input("請輸入:")
a = len(num1)
b = len(num2)
c = 0
d = 0
while c < a:
e1 = num1[c]
f1 = e1.isdigit()
if f1 == True:
g1 += f1
else:
pass
c += 1
while d < b:
e2 = num2[d]
f2 = e2.isdigit()
if f2 == True:
g2 += f2
else:
pass
d += 1
print(g1 + g2)