pythonint數字轉換問題

2021-03-03 21:00:01 字數 5834 閱讀 4147

1樓:匿名使用者

這個問題的原因是你用的np.zeros(count),它的預設資料型別是float型別的,而且不管你往這個np列表傳入什麼型別的值,它都是自動改為float型別。注意這個float型別可不是原生的浮點型別, 雖然「看」起來差不多, 但如果用type函式的話就能看出來區別了。

有兩種解決方法可以解決你的問題。

list = np.zeros(count)   改為  list = np.zeros(count,dtype=int)。

這樣就不會出現你所說的問題, 但對於你的這段程式用numpy有點大材小用了。 建議你用下面的方法。

list = np.zeros(count)   改為  list = [0 for i in range(count)]

然後第二張圖的錯誤提示正是因為numpy試圖把字串自動轉換為浮點數,但顯然是不可能的。為了避免這個錯誤就必要用我上面的第二個解決方法才行了。

最後,你的**有可優化的空間,太多遍歷和判斷條件了。可能會很長,但可能會對你有一些啟發,如果沒有耐心的話,可以看最後一條就是最終完成的**。

slice函式處理邏輯過於複雜了。 你是想把如361變成[3,6,1]這樣的情況吧。那為何不使用list(str(361))呢,雖然最後的結果裡面的元素是字串型別,但後面直接用int(i)的方式解決了。

這樣的話,count函式都可以省略了。

看到slice函式下面的for遍歷語句,我明白了你的用意,就是為了計算各個位數相加的和,這樣的話,就連slice函式都沒必要了。直接下面**就可以了:

for i in str(n):

sum += int(i)

3.再繼續,發現又是slice和for迴圈,原來是要繼續把sum分開。直接list(str(sum))即可。

4.到最後了,我看到了很多條件判斷,總覺得條件判斷這麼寫,顯得有點羅嗦了點。可以把你這個條件判斷寫一個類似配置檔案的物件,其實就是字典物件。

最終給你總結一下你的**就是下面這樣的:

python 字元與數字如何轉換

2樓:zer0小雪

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'

3樓:日time寸

整數字串轉換為對應的整數

int('12')

小數字串轉換為對應小數

float('12.34')

數字轉換為字串

str(123.45)

ascii碼轉換為相應字元

chr(97)

字元轉換為響應ascii碼

ord('a')

4樓:尼克的右手

一、python中字串轉換成數字(1)import string

t='555'

ts=string.atoi(tt)

ts即為tt轉換成的數字

轉換為浮點數 string.atof(tt)(2)直接int

int(tt)即可。

二、數字轉換成字串

tt=322

tem='%d' %tt

tem即為tt轉換成的字串

5樓:匿名使用者

整數字串轉換為對應的整數int('12')。

使用格式化字串:

tt=322

tem='%d' %tt

tem即為tt轉換成的字串

小數字串轉換為對應小數float('12.34')。

double num1 = 0.0;

string ** = "12.34";

num1 = double.valueof(**.tostring());

數字轉換為字串str(123.45)。

(123.45).to_bytes(4, 'big')

b'\x13\x9b\xe5\x87'

ascii碼轉換為相應字元chr(97)。

字元轉換為響應ascii碼ord('a')。

下面是python中對這幾個方法的簡單說明:ord(...) ord(c) -> integer  return the integer ordinal of a one-character string。

chr(...)

chr(i) -> character

return a string of one character with ordinal i; 0 <= i < 256。

repr(...)

repr(object) -> string return the canonical string representation of the object。

for most object types, eval(repr(object)) == object。

unichr(...)

unichr(i) -> unicode character  return a unicode string of one character with ordinal i; 0 <= i <= 0x10ffff。

6樓:匿名使用者

#x須為數字,否則把字串型別的字母/漢子/標點符號轉化為int型別毫無意義,會報錯。

x = 1 #x為int型別。

s = str(x) #把x轉換為字串型別,即'x'.

i = int(s) #把字串型別的x轉換為int型別的x。

7樓:藍藍藍

一、python中字串轉換成數字

1、類中進行匯入:import string ,str='555',num=string.atoi(str),num即為str轉換成的數字轉換為浮點數:

string.atof(str)

2、直接intint(str)即可。

二、數字轉換成字串

num=322,str='%d'%num,str即為num轉換成的字串

8樓:淺雨唯一

#!/usr/bin/python

#-*- coding:utf-8 -*-if __name__ == "__main__":

a = '64'

print 'type(a)=', type(a)print 'a=', a

print

b = int(a)

print 'type(b),', type(b)print 'b=', b

print

c = '40'

print 'type(c),', type(c)print 'c=', c

d = int(c, 16)

print 'type(d),', type(d)print 'd=', d

print

e = '100'

print 'type(e),', type(e)print 'e=', e

f = int(e, 8)

print 'type(f),', type(f)print 'f=', f

print

g = '1000000'

print 'type(g),', type(g)print 'g=', g

h = int(g, 2)

print 'type(h),', type(h)print 'h=', h

9樓:匿名使用者

int(str)

float(str)

str(int)

str(float)

10樓:名字都沒一個

將input中的字串轉換為數字:

首先我們知道inpu輸入的內容為字元,如果輸入為『』數字『』要轉換為python中的數字,則要分為整數數值,或小數點數值,可用以下方法:

a=input('請輸入一個數字')

try:

n=int(a)

except:

n=float(a)

另外如果要轉換為其他型別,可以在後面再加except:

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 ) 將一個整數轉換為一個八進位制字串

ord: 將ascii字串轉化為ascii值

數字轉換問題,數字 咋轉換的?

用途 將十進位制轉化為二進位制。輸入 dec 十進位制數 輸入資料型別 long 輸出 dec to bin 二進位制數 輸出資料型別 string 輸入的最大數為2147483647,輸出最大數為1111111111111111111111111111111 31個1 public functio...

轉換陣地猜數字,轉換陣地猜一個數字

答案是 69 三六九等 s n li ji d ng 生詞本基本釋義 詳細釋義 s n li ji d ng 泛指許多等級,種種差別。出 處清 曹雪芹 紅樓夢 第七十五回 你們這些兔子,真是些沒良心的忘八羔子!天天在一處,誰的恩你們不沾?只不過這會子輸了幾兩銀子,你們就這樣三六九等兒的了。轉移陣地打...

轉換格式的問題,轉換格式怎麼轉換

吧!是中文 100 免費的。軟體官網可以下。最新版功能更強 步驟就是 先載入你的原 然後 到擷取面板,定位你的時間段為要擷取的片段,然後設定輸出格式為 等音訊格式,最後輸出就行了。各種檔案格式不一樣,貞數也不一樣,音質也不一樣,你想最大限度的保持音質,能改過來就挺好的,音質嘛,不必要求哪麼完美。轉換...