python字串下標越界 Python 字串

2021-10-13 09:39:05 字數 2802 閱讀 5656

# str1="abcdef" #字串 str型

# int1 = 1 #整數 int型

# float1=1.3 #浮點數,float型

# str2 = 'abcdef'

# #單引號和雙引號都可以表示字串

# print(str1,str2)

#在某一行按下ctrl+/,就可以進行注釋,注釋就是程式不執行該行**,注釋是給人看的,而不是給程式看的

#print('it's ok') 會報錯,語法錯誤syntaxerror:invalid syntax

# print("it's ok")#當裡面是單引號時,外面需要使用雙引號

# print("he said :"hello "")#會報錯

# print('he said :"hello"')#當句子本身有雙引號,外面使用單引號

# print("春花秋月何時了\n"

# "往事知多少")

# print("春花秋月何時了\n" #\n表示換行符,\t表示製表符,\r表示回到開頭

# "往事知多少\n"#需要每行都要加上換行符,麻煩

# "小樓昨夜又東風\n"

# "故國不堪回首明月中")

#使用三引號'''''' """"""

# print("""春花秋月何時了

# 往事知多少

# 小樓昨夜又東風

# 故國不堪回首明月中""")

#字串拼接

# print("abceddd"+"adldlel;;")

# print("a"+1)#報錯:字串跟數字不能拼接typeerror: must be str, not int

# print(1+"a")#報錯:數字跟字串不能拼接typeerror: unsupported operand type(s) for +: 'int' and 'str'

# print("a"+str(1))#強制轉換成字串型別,使用str()函式將引數轉成str型

# print(1+int("a"))#字串裡面不是數字,不能轉換成int型,valueerror: invalid literal for int() with base 10: 'a'

# print(1+int("2"))#int型算術運算,不是拼接,使用int()函式將引數轉成str型

# print(1+int("1.3"))#字串裡面不是數字,不能轉換成int型,valueerror: invalid literal for int() with base 10: 'a'

# print(1+float("1.3"))#使用float()函式將引數轉成float型,然後進行運算,結果為2.3

# print("*"*8)#字串可以使用乘號輸出多個相同的字元,加減乘除只能使用乘號

#轉義符

# print("d:\note1.txt")#/n變成了轉義字元,不符合預期結果

#解決方案1

# print("d:\\note1.txt")#雙斜槓,表示後面的斜槓沒有特殊的含義

#解決方案2:

# print("d:/note1.txt")#使用正斜槓也可以輸出路徑

#解決方案3:

# print(r"d:\note1.txt")#使用r,表示後面的字串只能是普通的字元

#字串的下標

str3="abcdkiuwe"

# print(id(str3))

# print(str3[2])#python的下標是從0開始算起

# str3[2]="m"#會報錯,字串屬於不可變物件,不能修改裡面的值typeerror: 'str' object does not support item assignment

# str3="abcdefg"#重新賦值,指向了新的記憶體位址,原先的不使用,會被**

# print(id(str3))

# print(str3[-1])#可以使用負數下標,表示倒著取值,最後一位是-1

# print(str3[100])#超過字串最大長度,報錯下標越界:indexerror: string index out of range

#字串切片

# print(str3[2:5])#左含右不含,含頭不含尾,cdk

# print(str3[2:])#第二個引數不寫,表示從開始位置取所有

# print(str3[:5])#第乙個引數不寫,表示從來開始取值,取到結束值abcdk

# print(str3[:100])#超過字串長度,切片不會報錯,表示從開始值取所有abcdkiuwe

# print(str3[:-1])#切片也可以使用負下標

# print(str3[:])#起始值和終止值都不寫,表示全取,複製

# print(str3[::2])#第三個引數表示步長,控制取值位置,步長不寫預設為1,ackue

# print(str3[::-1])#步長為-1,表示倒著取值,ewuikdcba

# print(str3[100::-1])#如果起始值大於終止值,步長必須為負數

#index函式

# print(str3.index(u))#報錯:nameerror: name 'u' is not defined

str4 = "123456789"

# print(str3.index("u"))#index()方法,返回字元的下標

# print(str4.index(8))#字串的index方法,裡面的引數必須為字串typeerror: must be str, not int

print(str4.index("0"))#如果找不到值會報錯valueerror: substring not found

讀字串越界

寫c程式的時候經常會用到讀字串。當為字串陣列開闢的空間不夠大的時候,輸入字元數大於陣列大小會發生不可預知的執行時的錯誤,這種錯包括 1 執行時錯誤,2 結果錯誤,3,段錯誤。遺憾的是c語言本身沒有提供檢測這種的錯誤的機制。下面根據 分析產生錯誤的型別以及原因。分析1 include int main...

py 字串操作

基本的操作 a helle b world hello 2 兩遍hello helloworld 2 結果為lloworld el in hello 在,true c a b 字串的連線,但是更推薦用joinstring的常用內建方法 c hello world join a,b 用 連線字串ab ...

python下標索引 字串常見操作

1 下標索引 字串其實就是乙個有序的字串行 儲存字元的 字串中最小單元就是字元 my str hello 列印其my str中e 下標索引 或者是 下標 或者 索引 i 0 計算下字串的字元個數 l len my str while i l 通過下標獲取對應的字元 ret my str i prin...