Python基础学习004——for循环与字符串

"""
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)

你可能感兴趣的:(python)