1. 程式人生 > 其它 >Python02--數值運算及字串操作

Python02--數值運算及字串操作

Python02--數值運算及字串操作

Python 數值運算

  • Pyhton的輸出,主要看最後一行程式碼
符號 作用
*
/
% 取餘
** 平方
  • 檢視變數的型別
tang=3
type(tang)#列印型別

輸出:int

tang=True
type(tang)

輸出:bool

  • 型別轉換
tang=1.5
int(tang)

輸出:1

tang=1.5
tang2=int(tang)##1
type(int(tang))##int
type(tang2)##int
type(float(tang2))##float
  • 計算先後的一個順序

    1. ()
    2. **
    3. */
    4. +-
  • 基本數值操作

操作符號 說明
en 科學計數法10^n
0xFF 16進位制
abs() 取絕對值
round() 四捨五入取整
min(),max() 可以加陣列 最小最大值
>,<,== 判斷,輸出型別 布林型別
  • 幾種常用型別
    • int
    • float
    • str
    • bool

Python字串操作

  • len可以列印字串的長度
Li='hello'+'python'
Li
len(Li)

輸出:11

  • 字串中的+與*
Li='hello'+'python'
Li ##hellopython
Li_str='hello python'
Li_str*3##'hello pythonhello pythonhello python'

字串操作

1 對字串進行切分操作——split

  • split(): 通過指定分隔符對字串進行切片,如果引數 num 有指定值,則分隔 num+1 個子字串

  • 語法:

str.split(str="", num=string.count(str)).
  • 引數:

(1)str -- 分隔符,預設為所有的空字元,包括空格、換行(\n)、製表符(\t)等。

(2)num -- 分割次數。預設為 -1, 即分隔所有。

  • 返回值:

返回分割後的字串列表。

  • 例項:

(1)空格作為分隔符

li='1,2,3,4,5'
li.split()

輸出:['1,2,3,4,5']

(2)','作為分隔符

li='1,2,3,4,5'
li.split(',')

輸出:['1', '2', '3', '4', '5']

2 對字串進行合併的操作——join

  • join(): 方法用於將序列中的元素以指定的字元連線生成一個新的字串。
  • 語法:
str.join(sequence)
  • 引數:

(1)sequence -- 要連線的元素序列。

  • 返回值

返回通過指定字元連線序列中元素後生成的新字串。

  • 例項
s1 = "-"
s2 = ""
seq = ("r", "u", "n", "o", "o", "b") # 字串序列
print (s1.join( seq ))
print (s2.join( seq ))

輸出:

r-u-n-o-o-b
runoob

3 實現字串中的替換功能——replace

  • replace():方法把字串中的 old(舊字串) 替換成 new(新字串),如果指定第三個引數max,則替換不超過 max 次。

  • 語法:

str.replace(old, new[, max])
  • 引數:

(1)old -- 將被替換的子字串。

(2)new -- 新字串,用於替換old子字串。

(3)max -- 可選字串, 替換不超過 max 次

  • 返回值:

返回字串中的 old(舊字串) 替換成 new(新字串)後生成的新字串,如果指定第三個引數max,則替換不超過 max 次。

  • 例項:
str = "this is string example....wow!!! this is really string";
print str.replace("is", "was");
print str.replace("is", "was", 3);

輸出:

thwas was string example....wow!!! thwas was really string
thwas was string example....wow!!! thwas is really string

4 大小寫轉換

  • upper():把字串轉成大寫

  • lower():把字串轉成小寫

  • wordCap():將字串每一個單詞的首字母大寫

  • 語法:

upper(s)
  • 引數說明:

s待轉成大寫的源串

  • 例項

例1:upper("ABCdef")返回:"ABCDEF"

例2:upper("abcDEF")返回:"ABCDEF"

5 格式化函式——format

  • 格式化字串的函式 str.format(),它增強了字串格式化的功能。

  • 語法:通過 {}: 來代替以前的 %

  • 例項

"{} {}".format("hello", "world")    # 不設定指定位置,按預設順序
'hello world'
 
"{0} {1}".format("hello", "world")  # 設定指定位置
'hello world'
 
"{1} {0} {1}".format("hello", "world")  # 設定指定位置
'world hello world'
  • 設定引數
print('網站名:{name},地址{url}'.format(name='努力學技術的小豪',url='www.cnblogs.com/studyhao1999/'))

##通過字典設定引數
site={'name':'努力學技術的小豪','url':'www.cnblogs.com/studyhao1999/'}
print('網站名:{name},地址:{url}'.format(**site))

##通過列表索引設定引數
mylist=['努力學技術的小豪','www.cnblogs.com/studyhao1999/']
print('網站名:{0[0]},地址{0[1]}'.format(mylist)) # "0" 是必須的

輸出:

網站名:努力學技術的小豪,地址www.cnblogs.com/studyhao1999/
網站名:努力學技術的小豪,地址www.cnblogs.com/studyhao1999/
網站名:努力學技術的小豪,地址www.cnblogs.com/studyhao1999/

也可以向str.format()傳入物件:

class AssignValue(object):
    def __init__(self, value):#init前面是兩個_
        self.value = value
my_value = AssignValue(6)
print('value 為: {0.value}'.format(my_value))  # "0" 是可選的

輸出:

value 為: 6
  • 數字格式化

下表展示了 str.format() 格式化數字的多種方法:

print("{:.2f}".format(3.1415926))
##輸出:3.14
數字 格式 輸出 描述
3.1415926 {:.2f} 3.14 保留小數點後兩位
3.1415926 {:+.2f} +3.14 帶符號保留小數點後兩位
-1 {:+.2f} -1.00 帶符號保留小數點後兩位
2.71828 {:.0f} 3 不帶小數
5 {:0>2d} 05 數字補零 (填充左邊, 寬度為2)
5 {:x<4d} 5xxx 數字補x (填充右邊, 寬度為4)
10 {:x<4d} 10xx 數字補x (填充右邊, 寬度為4)
1000000 {:,} 1,000,000 以逗號分隔的數字格式
0.25 {:.2%} 25.00% 百分比格式
1000000000 {:.2e} 1.00e+09 指數記法
13 {:>10d} 13 右對齊 (預設, 寬度為10)
13 {:<10d} 13 左對齊 (寬度為10)
13 {:^10d} 13 中間對齊 (寬度為10)
11 '{:b}'.format(11)
'{:d}'.format(11)
'{:o}'.format(11)
'{:x}'.format(11)
'{:#x}'.format(11)
'{:#X}'.format(11)
1011
11
13
b
0xb
0XB
進位制

^, <, > 分別是居中、左對齊、右對齊,後面頻寬度, : 號後面帶填充的字元,只能是一個字元,不指定則預設是用空格填充。

+ 表示在正數前顯示 +,負數前顯示 -; (空格)表示在正數前加空格

b、d、o、x 分別是二進位制、十進位制、八進位制、十六進位制。

此外我們可以使用大括號 {} 來轉義大括號,如下例項: