Python3基础-基本数据类型之字符串2
获取字符串中某一个字符
#索引,下标,获取字符串中的某个字符 #下标正数 test_num="1234" v=test_num[0] v1=test_num[1] v2=test_num[2] v3=test_num[3] print("v=%s;v1=%s;v2=%s;v3=%s"%(v,v1,v2,v3)) """ 执行结果 v=1;v1=2;v2=3;v3=4 """ #下标负数 v4=test_num[-1] v5=test_num[-2] v6=test_num[-3] v7=test_num[-4] print("v4=%s;v5=%s;v6=%s;v7=%s"%(v4,v5,v6,v7)) """ 执行结果 v4=4;v5=3;v6=2;v7=1 """
获取字符串的长度len()
test_num=input("请输入字符串:") #输入字符串 len_num=len(test_num) print("获取字符串长度:",len_num) """ 请输入字符串:aassw 获取字符串长度: 5 """
python3和python2
name=”苏苏“
python3->计算字符
len(name)=2
for item in name:
print(item) #输出 苏 苏
python2-》计算字节;
len(name) = 6
for\while循环获取字符串中的每个字符
test_num=input("请输入字符串:") #输入字符串 #for循环读取test_num for each_num in test_num: print("each_num=",each_num) #while循环读取test_num index = 0 while index < len(test_num): index_num =test_num[index] print("index_nume=",index_num) index += 1 #range()函数 testnum=input("请输入字符串:") for item in range(0,len(testnum)): print(testnum[item],end='')
重点
join、split、find、strip、upper、lower、replace
len、for循环、索引、切片
字符串的内存垃圾回收机制
name1='andy' name2= name1 #name1的值修改为“susu” ,name2的值是什么?为什么 #解答:andy,name1的值改了相当于你将name1指向了一个新的叫做susu的内存地址,但name2仍然指向旧的andy的内存地址(字符串) print("name1的id地址",id(name1)) print("name2的id地址",id(name2)) #修改name1的值为susu name1="susu" print("name1的id地址",id(name1)) print("name2的id地址",id(name2)) """ name1的id地址 25825056 name2的id地址 25825056 name1的id地址 56713344 name2的id地址 25825056 """
对于字符串的更改:不是说你是在原来字符串指定的内存地址上更改,而是新开了一个内存地址来存储更改的字符串。
如:andy改成susu,不是在原来andy指向的内存地址更改,而是新增了一个内存地址存放
range()
Python3 range() 函数返回的是一个可迭代对象(类型是对象),而不是列表类型, 所以打印的时候不会打印列表。
Python3 list() 函数是对象迭代器,可以把range()返回的可迭代对象转为一个列表,返回的变量类型为列表。
Python2 range()函数返回的是列表。
range_num=range(0,20,5) # 0 5 10 15 range_num=range(0,20,2) #0 2 4 6 8 10 12 14 16 18 range_num=range(1,20,3) #1 4 7 10 13 16 19 range_num=range(10) #默认为range(0,10) #print(range_num) for item in range_num: print(' ',item,end='')