python字元串中的數字
A. pythonre字元串為特定字元和數字組成
pythonre字元串為特定字元和數字組成
我們講一下字元串類型和數字類型,這兩個Python中基本數據類型之間的轉換。也就是說字元串類型可以轉為數字類型,數字類型也可以轉為字元串類型。
數據類型差異
對於不同的數據類型,代碼的行為有所不同。如下圖所示,圖中的print(5 + 10)是數值計算,而print('5' + '10')是字元串連接。
如果將字元串類型和數據類型連接在一起,則會發生錯誤。
數字類型轉換為字元串類型
數字類型轉換為字元串類型需要用到str()函數。
str()函數:將對象轉化為適於人閱讀的形式。返回一個對象的string格式。
語法如下所示:
class str(object='')
object -- 對象
如下圖所示,變數num是數字類型,我們使用str()函數將這個數字類型轉換成了字元串類型。
字元串類型轉換為數字類型
字元串類型轉換為數字類型需要用到int() 函數。
int() 函數:用於將一個字元串或數字轉換為整型。
語法如下所示:
class int(x, base=10)
x -- 字元串或數字
base -- 進制數,默認十進制
x -- 字元串或數字
base -- 進制數,默認十進制
如下圖所示,str1是字元串類型,使用int()函數將這個字元串類型的變數轉換成了整型,最後與10相加等於15。
B. python 提取字元串中的數字
使用正則表達式,用法如下:
## 總結
## ^ 匹配字元串的開始。
## $ 匹配字元串的結尾。
## 匹配一個單詞的邊界。
## d 匹配任意數字。
## D 匹配任意非數字字元。
## x? 匹配一個可選的 x 字元 (換言之,它匹配 1 次或者 0 次 x 字元)。
## x* 匹配0次或者多次 x 字元。
## x+ 匹配1次或者多次 x 字元。
## x{n,m} 匹配 x 字元,至少 n 次,至多 m 次。
## (a|b|c) 要麼匹配 a,要麼匹配 b,要麼匹配 c。## (x) 一般情況下表示一個記憶組 (remembered group)。可以利用 re.search 函數返回對象的 groups() 函數獲取它的值。
## 正則表達式中的點號通常意味著 「匹配任意單字元」
(2)python字元串中的數字擴展閱讀
正則表達式描述了一種字元串匹配的模式,可以用來檢查一個串是否含有某種子串、將匹配的子串替換或者從某個串中取出符合某個條件的子串等。
構造正則表達式的方法和創建數學表達式的方法一樣。也就是用多種元字元與運算符可以將小的表達式結合在一起來創建更大的表達式。正則表達式的組件可以是單個的字元、字元集合、字元范圍、字元間的選擇或者所有這些組件的任意組合。
正則表達式是由普通字元(例如字元 a 到 z)以及特殊字元(稱為"元字元")組成的文字模式。模式描述在搜索文本時要匹配的一個或多個字元串。正則表達式作為一個模板,將某個字元模式與所搜索的字元串進行匹配。
C. python中如何從字元串中提取數字
1、如下圖,要提取#後面的字元,也即紅色的「SDK」到B列。
6、綜上,=MID(A2,FIND("#",A2)+1,99)的意思就是從A2單元格#字元後面的一個字元起,取長度為99的字元串。其中的99是一個較大的數字,能涵蓋#後字元的最大長度即可。D. python字元串包含幾個不同的數字
python字元串包含幾個不同的數字
字元串是由零個或多個字元組成的有限序列。而在Python 3中,它有著更明確的意思: 字元串是由Unicode碼點組成的不可變序列 (Strings are immutable sequences of Unicode code points.)
字元串是一種序列,這意味著它具備序列類型都支持的操作:
E. python怎麼把字元串變成數字格式化
1. python 字元與數字如何轉換
python中字元與數字相互轉換用chr()即可。
python中的字元數字之間的轉換函數
int(x [,base ]) 將x轉換為一個整數
long(x [,base ]) 將x轉換為一個長整數
float(x ) 將x轉換到一個浮點數
plex(real [,imag ]) 創建一個復數
str(x ) 將對象 x 轉換為字元串
repr(x ) 將對象 x 轉換為表達式字元串
eval(str ) 用來計算在字元串中的有效Python表達式,並返回一個對象
tuple(s ) 將序列 s 轉換為一個元組
list(s ) 將序列 s 轉換為一個列表
chr(x ) 將一個整數轉換為一個字元
unichr(x ) 將一個整數轉換為Unicode字元
ord(x ) 將一個字元轉換為它的整數值
hex(x ) 將一個整數轉換為一個十六進制字元串
oct(x ) 將一個整數轉換為一個八進制字元串
chr(65)='A'
ord('A')=65
int('2')=2;
str(2)='2'
(5)python字元串中的數字擴展閱讀:
python數字轉換為字元串主要包括兩種形式:第一種是str(),將值轉換為用戶便於閱讀的形式;另一種是repr(),將值轉換為合法的python表達式。
>>> print repr("Hello, world!")
'Hello, world!'
>>> print repr(10000L)
10000L
>>> print str("Hello, world!")
Hello, world!
>>> print str(10000L)
2. python怎麼實現字元串和數字的轉換
#py3
from functools import rece
DIGITS={'0':0,'1':1,'2':2,'3':3,'4':4,'5':5,'6':6,'7':7,'8':8,'9':9}
def char2num(s): #單個字元轉數字
return DIGITS[s]
def str2int(s):#整數字串轉化整數,不支持浮點數.浮點數得另寫一個
if s[0]=='-': #要判斷一下該數字有沒有符號
return -rece(lambda x,y:10*x+y,map(char2num,s[1::])) #返回負數
else:
return rece(lambda x,y:10*x+y,map(char2num,s)) #返回正數
a='-123'
print(100+str2int(a))
3. 關於python的字元串格式化
在python中也有類似於c中的printf()的格式輸出標記。
在python中格式化輸出字元串使用的是%運算符,通用的形式為格式標記字元串 % 要輸出的值組其中,左邊部分的」格式標記字元串「可以完全和c中的一致。右邊的'值組'如果有兩個及以上的值則需要用小括弧括起來,中間用短號隔開。
重點來看左邊的部分。左邊部分的最簡單形式為:%cdoe其中的code有多種,不過由於在python中,所有東西都可以轉換成string類型,因此,如果沒有什麼特殊需求完全可以全部使用'%s'來標記。
比如:'%s %s %s' % (1, 2.3, ['one', 'two', 'three'])它的輸出為'1 2.3 ['one', 'two', 'three']',就是按照%左邊的標記輸出的。雖然第一個和第二值不是string類型,一樣沒有問題。
在這個過程中,當電腦發現第一個值不是%s時,會先調用整型數的函數,把第一個值也就是1轉成string類型,然後再調用str()函數來輸出。前面說過還有一個repr()函數,如果要用這個函數,可以用%r來標記。
除了%s外,還有很多類似的code:整型數:%d無符號整型數:%u八進制:%o十六進制:%x %X浮點數:%f科學記數法: %e %E根據數值的不同自動選擇%e或%f: %g根據數值的不同自動選擇%E或%f: %G就跟前面說用\進行轉義一樣,這里用%作為格式標記的標識,也有一個%本身應該如何輸出的問題。如果要在」格式標記字元串「中輸出%本身,可以用%%來表示。
上面說的只是格式標記的最簡間的形式,來看復雜一點的:'%6.2f' % 1.235在這種形式中,在f的前面出現了一個類似小數的6.2它表示的意思是,總共輸出的長度為6個字元,其中小數2位。還有更復雜的:'%06.2f' % 1.235在6的前面多了一個0,表示如果輸出的位數不足6位就用0補足6位。
這一行的輸出為'001.24',可以看到小數也佔用一位。類似於這里0這樣的標記還有-、+。
其中,-表示左對齊,+表示在正數前面也標上+號,默認是不加的。最後來看最復雜的形式:'%(name)s:%(score)06.1f' %{'score':9.5, 'name':'newsim'}這種形式只用在要輸出的內容為dictionary(一種python的數據類型)時,小括弧中的(name)和(score)對應於後面的鍵值對中的鍵。
前面的例子可以看到,」格式標記字元串「中標記的順序和"要輸出的值組"中的值是一一對應的,有順序,一對一,二對二。而在這種形式中,則不是,每個格式標記對應哪個值由小括弧中的鍵來指定。
這行代碼的輸出為:'newsim:0009.5'。有時候在%6.2f這種形式中,6和2也不能事先指定,會在程序運行過程中再產生,那怎麼輸入呢,當然不能用%%d.%df或%d.%d%f。
可以用%*.*f的形式,當然在後面的」要輸出的值組「中包含那兩個*的值。比如:'%*.*f' % (6, 2, 2.345)就相當於'%6.2f' % 2.345。
這是這本書到此為止看起來最復雜的內容。不過如果記不住,或不想那麼耐煩,完全可以全部用%s代替,或者用多個"+"來構造類似的輸出字元串。
這里的%真有點除法的味道,怪不得設計者會選擇用%這個除號。象C 中的sprintf函數一樣,可以用「%」來格式化字元串Table 3.1. 字元串格式化代碼格式 描述%% 百分號標記%c 字元及其ASCII碼%s 字元串%d 有符號整數(十進制)%u 無符號整數(十進制)%o 無符號整數(八進制)%x 無符號整數(十六進制)%X 無符號整數(十六進制大寫字元)%e 浮點數字(科學計數法)%E 浮點數字(科學計數法,用E代替e)%f 浮點數字(用小數點符號)%g 浮點數字(根據值的大小採用%e或%f)%G 浮點數字(類似於%g)%p 指針(用十六進制列印值的內存地址)%n 存儲輸出字元的數量放進參數列表的下一個變數中。
F. python怎麼找出字元串中的數字
可以建一個數字的列表,然後遍歷字元串判斷是否存在一個數和列表相同。
也可以把字元串中的每一位弄成ascii的對應數字范圍,0~9對應的是一個范圍,判斷是否在范圍就行。
要麼就遍歷,看看是不是int類型的
G. python怎麼取出字元串中的數字
string = '現在是2020年10月15日12點10分'
# 所有數字連續提取連在一起
for num in string:
if num.isnumeric() is True:
print(num, end='')
# 所有數字提取出來放在列表中
print() # 換行
import jieba
num_list = []
for num in jieba.lcut(string):
if num.isnumeric() is True:
num_list.append(num)
print(num_list)