""" 1.for循环基本语法 2.做指定次数的循环,range()函数 3.continue的使用 4.字符串的定义与使用:转义符,原生字符 5.获取字符串长度,字符串索引的使用 6.切片,翻转字符串 7.字符串的查找find 8.字符串的替换replace 9.字符串的拆分split 10.字符串的链接join """ # 最简单的for循环,遍历容器my_str中的内容 my_str = "123456" for i in my_str: print(i) # 做指定次数的循环,range(n),左闭右开区间0-n-1的整数.循环执行多少次,n就是几. for q in range(10): print(q) # range的变形使用,使用for循环获取5-10之间的和. s_num = 0 for w in range(5, 11): s_num += w print('5+6+7+8+9+10=', s_num) # break:只在循环中使用,终止循环. # continue:只跳过本次循环. str1 = "hello" for i in str1: if i == 'e': continue print(i) """ 容器又称数据序列:字符串,列表,字典,元组 字符串,列表,元组支持加法运算,乘法运算 in在容器中的使用是共通的,在字典中判断的是键是否存在 容器为空时,容器表示为False,其余情况为True """ # 字符串 str2 = '1234567sdg' str3 = "11dzkjhoiwd" str4 = """hello""" print(str2+str3) # 字符串加法 print('+'*30) # 字符串乘法 print('str2:', type(str2), 'str3:', type(str3), 'str4:', type(str4)) # 特殊字符在字符串中的处理:1.字符串中包含的引号和将字符串括起来的引号不同即可. # 2.使用转义符\将特殊字符转义 # 3.原生字符:在字符串前加一个r str5 = "I'm sunny" str6 = 'I\'m sunny2' str7 = r'\我们想吃烧鸡\'' # r表示原生字符串,\不会被当做转义符,通常用在文件操作,处理路径 print(str5, str6,str7) # 字符串的下标(索引):正数索引从0开始.python中支持负数下标,从右向左计数从-1开始 print(str2[3]+str2[-3]) # 获取字符串长度len() num = len('123456') num1 = len(str2) print(num, num1, str2[num1-1], str3[len(str3)-1]) # 输出两个字符串的长度及str2和str3的最后一个字符 # 字符串切片:获取字符串中的多个字符,结果是一个字符串 # 字符串[start:end:step]:start开始位置下标(默认为0),end结束位置下标,step步长(默认为1)即隔step-1个取一个 print(str2[0:6:2]) # 隔一个取一个 print(str2[0:6]) # 挨个取,step为1可以省略不写 print(str2[:6:2]) # 隔一个取一个,起始位置为0可以省略不写 print(str2[2::2]) # 隔一个取一个直到最后一个字符,end也可以不写 print(str2[::2]) # 隔一个取一个,从第一个字符开始到最后一个字符结束 print(str2[::-1]) # 步长为负数,翻转字符串 # 字符串的查找:str.find(sub_str,start,end)从start(默认为0)开始到end(默认为len(str)-1结束,在字符串中是否存在sub_str # 找到了返回第一次出现sub_str的下标,没找到返回-1 print(str2.find('45', 1, 7)) # 能找到 print(str2.find('8', 1, 7)) # 找不到 print(str2.find('4', 1)) # end默认不写 print(str2.find('4')) # start和end都不写 # 查找sub_str第n次出现位置,从第n-1次出现的位置开始查找 sub_str = str5.find('n') print(str5.find('n', sub_str-1)) # 第二次出现的位置 # 字符串替换:str.replace(old_str,new_str,count) # count为替换次数(即用new替换几次old字符),一般不写,默认全部替换 # 替换后原字符是不变的.要使用替换后的字符,需赋值给新的变量 str8 = '1234567890abcdefgaaa' str8_1 = str8.replace('a', 'A', 3) str8_2 = str8.replace('a', 'A') print('原字符是:', str8) print('替换3次后的字符是:', str8_1) print('全部替换后的字符是:', str8_2) # 只替换第三个a:先替换3个,再将前边2个换回来.只替换第n-m个同理,先替换m个,再把前边n个替回来. str8_4 = str8_1.replace('A', 'a', 2) print('只替换第三个a:', str8_4) # 字符串的拆分: # str.split(sep,max_split)把字符串在sep处截断拆分,并删除sep,默认是空白字符:空格,换行\n,\t, # max_split为拆分次数,默认全部拆分 # 结果是一个列表 str9 = 'good good study and day day up!and never give up!' str9_1 = str9.split('and') str9_2 = str9.split(' ') str9_3 = str9.split(' ',2) print('按照and分割:', str9_1) print('按照空格分割:', str9_2) print("按照空格拆分,只拆分2次", str9_3) # 字符串的链接 # str.join(列表)主要是用列表拼接,也可以用其他容器 # 将字符串插入到列表中两个数据之间,要求列表中的数据必须全部是字符串 str10 = ' ' list1 = ['good', 'good', 'study', 'and', 'day', 'day', 'up!and', 'never', 'give', 'up!'] str10_1 = str10.join(list1) # 可以用自定义的变量 str10_2 = str10.join(str9.split('and')) # 拆分结果也是列表 print(str10_1) print(str10_2)