Python字符串的末尾是否有特殊字符?像C或C++中的\ 0一樣。 我想計算python中字符串的長度,而不使用內置的len
函數。Python字符串以NULL結尾嗎?
回答
Python中沒有字符串末尾的字符,至少沒有一個是暴露的,它將取決於實現。字符串對象保持自己的長度,這不是你需要關心的事情。有幾種方法可以在不使用len()
的情況下獲得字符串的長度。
str = 'man bites dog'
unistr = u'abcd\u3030\u3333'
# count characters in a loop
count = 0
for character in str:
count += 1
>>> count
13
# works for unicode strings too
count = 0
for character in unistr:
count += 1
>>> count
6
# use `string.count()`
>>> str.count('') - 1
13
>>> unistr.count(u'') - 1
6
# weird ways work too
>>> max(enumerate(str, 1))[0]
13
>>> max(enumerate(unistr, 1))[0]
6
>>> str.rindex(str[-1]) + 1
13
>>> unistr.rindex(unistr[-1]) + 1
6
# even weirder ways to do it
import re
pattern = re.compile(r'$')
match = pattern.search(str)
>>> match.endpos
13
match = pattern.search(unistr)
>>> match.endpos
6
我懷疑這只是冰山一角。
使用正則表達式來獲取字符串的長度?這是我今天看到的最有趣的事情。 – Shuklaswag
count=0
for i in 'abcd':
count+=1
print 'lenth=',count
其他方式:
for i,j in enumerate('abcd'):
pass
print 'lenth=',i+1
enumerate
是一個內置的函數,返回的元組(索引和值)
例如:
l= [7,8,9,10]
print 'index','value'
for i ,j in enumerate(l):
print i,j
個
輸出:
index value
0 7
1 8
2 9
3 10
l = "this is my string"
counter = 0
for letter in l:
counter += 1
>>> counter
17
爲了回答這個問題你問的問題:沒有終止空或類似的東西在一個Python字符串的結束(你可以看到),因爲你沒有辦法讓字符串「結束」。在內部,最流行的Python實現是用C語言編寫的,所以在底層可能有一個以NULL結尾的字符串。但是作爲Python開發人員,這對你來說是完全不透明的。
如果你想在不使用內建函數的情況下獲得長度,你可以做很多不同的事情。這裏有一個選項是不同於其他人發佈在這裏:
sum([1 for _ in "your string goes here"])
這是,在我看來,有點更優雅。
Python可能不會在內部使用空終止,因爲字符串可以包含空值:'\ 0'(echos'\ x00') –
一些有趣的事情,我發現:
s_1 = '\x00'
print ("s_1 : " + s_1)
print ("length of s_1: " + str(len(s_1)))
s_2 = ''
print ("s_2 : " + s_2)
print ("length of s_2: " + str(len(s_2)))
if s_2 in s_1:
print ("s_2 in s_1")
else:
print ("s_2 not in s_1")
輸出是:
s_1 :
length of s_1: 1
s_2 :
length of s_2: 0
s_2 in s_1
這裏S_1似乎是一個'和S_2似乎是一個 '' 或NULL。
- 1. C#字符串以空字符串結尾嗎?
- 2. 我可以檢查一個字符串是否以null結尾,但不檢查它是否以NULL結尾
- 3. Python AES解密字符串以不同字符結尾
- 4. 以null結束符結尾的字符串文字是否包含額外的null結束符?
- 5. 解析以雙NULL結尾的字符串列表
- 6. C/C++中以null結尾的字符串的長度
- 7. 從bin文件中讀取以NULL結尾的字符串
- 8. ASCIIZ字符串以零字節結尾
- 9. 以美元結尾的字符串
- 10. 以.html結尾的字符串
- 11. 使字符串---以0結尾
- 12. Java字符串以空格結尾
- 13. Python-如何驗證字符串是否以特定字符串結尾?
- 14. 確保字符串中有\ n以特定字符串結尾
- 15. 確定字符串是否以另一個字符串結尾
- 16. 在Lex中獲取以字符串「lngt」結尾的字符串
- 17. 以十六進制結尾爲空的python字符串
- 18. 以Python結尾的字符串模式測試
- 19. 字符串結尾空格
- 20. 從字符串末尾刪除NULL
- 21. 字符串結尾的垃圾字符?
- 22. CryptStringToBinary不能使用NULL結尾的字符串。爲什麼?
- 23. 整理與數字結尾的字符串,以結束數
- 24. 高效地將Java字符串轉換爲表示C字符串的以null結尾的字節[]? (ASCII)
- 25. 查找以 - 開頭並以換行符結尾的字符串
- 26. 字符串中的C字符串指針如何以空字符結尾?
- 27. Sed - 大寫以字符串結尾的字符串的第一個字符
- 28. 讀取以空字符結尾的字符串
- 29. 什麼是以空字符結尾的字符串?
- 30. 以特殊字符結尾的C#字符串到整數
看起來像家庭作業。你有什麼嘗試? –
在Java中它不是NULL ... –
@AamirAdnan我試圖使用與我們在Java或C++中執行的相同的操作來檢查字符串的結尾。 – ayushgp