目录
1.查找字符串
2.字符串的格式化
3.字符串的转义字符 \' \"
4. 修改字符串
5.字符串连接与分割
附件代码:
炼 知识模块(11) 名符其实--字符串
1.查找字符串
# 1.1用 in 函数
a = 'aa' in 'acacacacaabaac'
print(a)
# 1.2 用index 找不到就报错
b = 'hello world'.index("A")
print(b)
# 1.3 find查找找不到就返回-1。 用哪个好?
c = 'hello world'.find("A")
print(c)
2.字符串的格式化
# 格式:模版字符串 % (参数列表)
s = "姓名:%s 年龄:%d 语文:%d 数学:%.2f" % ("黎明", 11, 85, 90.5)
print(s)
%s %d %.2f 统称 占位符,字符串的占位符会被括号的参数代替掉。
占位符 %s,表示在相应位置填字符串类型,不是字符串会被自动转换。
占位符 %d,应填整数类型,自动转为整数。
占位符 %f,应填浮点数类型,自动转为浮点数。%.2f 保留2位小数 %.5f 保留5位小数
3.字符串的转义字符 \' \"
字符串里面可能包含某些特殊字符
#s = 'What's your name?'
print(s) 输出结果?
#s = 'What\'s your name?'
4. 修改字符串
#4.1 字母转小写:字符串.lower()
s = "Hello MoneY"
s = s.lower()
print(s)
#4.2 字母转大写:字符串.upper()
s = s.upper()
print(s)
#4.3 第一个首字母,其他转小写。字符串.capitalize()
s = s.capitalize()
print(s)
#4.4 替换法 字符串.replace(old,new)
s = s.replace("Hello"," I like")
print(s)
#4.5 删除字符, strip() 默认为空格;lstrip() 删除左端 lstrip() 删除右端
s = s.strip() # 默认删除两边空格
print(s)
s = s.lstrip("I") # 指定删除左边 I
s = s.rstrip("y") # 指定删除右边 y
print(s)
综合练习:
原来字符串:n=" =YOu123na e-- " 转为:You,name
#1.查找12是否在字符串,并输出位置
#1.把123 替换为逗号,并输出最新的n
#3.把里面的字母,转为小写,并输出最新的n
#4.用strip() 删除掉左右两端多余的空格,并输出最新的n
#4.把左端的符号,用lstrip() 删除掉,并输出最新的n
#6.把右端的符号,用rstrip() 删除掉,并输出最新的n
#7.把空格替换为m
#8.首字母大写输出
5.字符串连接与分割
5.1 "连接符".join(字符串)
z = '-'.join("hello")
y = '#'.join(["one","two","three"])
5.2 字符串.split('切割符') 切完会返回成列表形式
z = z.split('-')
print(z)
5.3 字符串.split('切割符',切割次数)
y = y.split('#',1)
print(y)
附件代码:
#字符串操作:
#1.切片与索引
#2.查找字符串 “=aBc123De h-- ”
# 2.1用 in 函数,判断字符串是否在里面
a = 'aa' in 'acacacacaabaac'
print(a)
# 2.2 用index 找不到就报错,
#b = 'hello world'.index("A")
#print(b)
# 2.3 find查找找不到就返回-1。 用哪个好?
c = 'hello world'.find("A")
print(c)
#3.字符串的格式化
# 格式:模版字符串 % (参数列表)
s = "姓名:%s 年龄:%d 语文:%d 数学:%.2f" % ("黎明", 11, 85, 90.5)
print(s)
'''
%s %d %.2f 统称 占位符,字符串的占位符会被括号的参数代替掉。
占位符 %s,表示在相应位置填字符串类型,不是字符串会被自动转换。
占位符 %d,应填整数类型,自动转为整数。
占位符 %f,应填浮点数类型,自动转为浮点数。%.2f 保留2位小数 %.5f 保留5位小数
'''
#4. 字符串的转义字符 \' \"
字符串里面可能包含某些特殊字符
#s = 'What's your name?'
print(s) 输出结果?
#s = 'What\'s your name?'
#5. 修改字符串
#5.1 字母转小写:字符串.lower() low 矮的 lower 更高级
s = "Hello MoneY"
s = s.lower()
print(s)
#5.2 字母转大写:字符串.upper()
#5.3 第一个首字母,其他转小写。字符串.capitalize()
#5.4 替换法 字符串.replace(old,new)
#5.5 删除字符, strip() 默认为空格;lstrip() 删除左端 rstrip() 删除右端综合练习:
#字符串: n = " =YOu123na e-- "
n = " =YOu123na e-- "
#1.查找12是否在字符串,并输出位置
a = n.index("12")
print(a)
#2.把123 替换为逗号,并输出最新的n
n = n.replace("123",",")
print(n)
#3.把里面的字母,转为小写,并输出最新的n
n = n.lower()
print(n)
#4.用strip() 删除掉左右两端多余的空格,并输出最新的n
n = n.strip()
print(n)
#5.把左端的符号,用lstrip() 删除掉,并输出最新的n
n = n.lstrip("=")
print(n)
#6.把右端的符号,用rstrip() 删除掉,并输出最新的n
n = n.rstrip('-')
print(n)
#7.把空格替换为m
n = n.replace(" ",'m')
print(n)
#8.首字母大写输出
n = n.capitalize()
print(n)
#六、字符串连接与分割
6.1 "连接符".join(字符串)
z = '-'.join("hello")
y = '#'.join(["one","two","three"])
6.2 字符串.split('切割符') 切完会返回成列表形式
z = z.split('-')
print(z)
6.3 字符串.split('切割符',切割次数)
y = y.split('#',1)
#字符串与列表的互相转换
#1、定义列表值是 [2,3,4,...,11,12]
a = list(range(2,13))
print(a)
ls = []
#用join方法 "连接符".join(列表名)
for i in a:
ls.append(str(i))
print(" ".join(ls))
'''
题2:分别输入两个正整数M,N ,输出M到N之间(含M,N )所有可被7整除,
但不是5的倍数的数字,并以逗号分隔按顺序打印在一行。'''
m =int(input())
n = int(input())
li = []
for i in range(m,n+1):
if i % 7==0 and i%5 != 0:
li.append(str(i))
print(",".join(li))
'''题3:输入一个正整数 N(N<30),
输出 1 到 N(包含1和N)之间所有正整数的平方,
且所输出的平方数之间以英文逗号隔开。'''
n = int(input())
liebiao = []
for i in range(1,n+1):
a = i * i # 变量a存平方数,平方数是一个整数
liebiao.append(str(a)) # 要把整数转为字符串格式,再存到列表
print(",".join(liebiao)) #用join方法把列表转为字符串格式;然后逗号隔开输出
炼 知识模块(11) 名符其实--字符串
1.执行以下语句后的输出结果是?( )
> > > str1='My name is BeiJing'
> > > print(len(str1))
A、20 B、18 C、15 D、16
2.字符串str="maixnm"包含"min"和"max"两个单词,下面哪个操作不能将"min"从中找出来?( )
A. str1=str[0]+str[2]+str[4] B. str1=str[0:-1:2]
C. str1=str[::2] D. str1=str[0:4:2]
3.想得到的输出为"My name is Kevin and I am 10 years old."以下选项正确的是?( )
A. print('My name is %s and I am %d years old.',%('Kevin',10))
B. print('My name is %s and I am %d years old.'%('Kevin',10))
C. print('My name is %c and I am %d years old.'%('Kevin',10))
D. print('My name is %s and I am %d years old.'%',Kevin',%10))
4.执行下列代码后,运行结果是?( )
seq=['hello','good','morning']
s='*'.join(seq)
print(s)
A、hello*good*morning* B、*hello*good*morning
C、hello*good*morning D、*hello*good*morning*
判断对错(√ / ×)
5.已知字符串str='www.baidu.com',那么print(str.split('.',1))的结果是:['www', 'baidu','com']。 ( )
6.message1='Hello',message1.append('world')的值为'Hello world'。( )
7.已知Money=8.6675 , print("工资{0:.2f}".format(Money)),结果是:"工资8.67"。( )
8.运行如下程序
a1='hello'
a2='everybody'
print(a1*2+a2)
运行结果为hellohelloeverybody ( )
9.字符串中的元素是通过索引来定位的,其中第一个元素的索引是0。( )
10.'red' in ('yellow','red','purple') 的结果为True。( )
题1:实现字符串与列表的互相转换
a = list(range(2,13))
print(a)
ls = []
#用join方法 "连接符".join(列表名)
for i in a:
ls.append(str(i))
print(" ".join(ls))
题2:分别输入两个正整数M,N ,输出M到N之间(含M,N )所有可被7整除,
但不是5的倍数的数字,并以逗号分隔按顺序打印在一行。
样例输入:
100
147
样例输出:
112,119,126,133,147
M = int(input())
N = int(input())
li= [] # 定义一个空的列表
for i in range(M, N+1): #循环M到N遍
if i % 7 == 0 and i % 5 != 0: #判断条件满足?
li.append(str(i)) #就把满足条件的值添加到列表中
print(",".join(li))
题3:输入一个正整数 N(N<30),输出 1 到 N(包含 1 和 N)之间所有正整数的平方,且所输出的平方数之间以英文逗号隔开。
输入描述:输入一个正整数 N(N<30)
输出描述:输出 1 到 N 之间所有正整数的平方数,且所输出的平方数之间以
英文逗号隔开。
【样例输入】
3
【样例输出】
1,4,9
n = int(input())
liebiao = []
for i in range(1,n+1):
a = i * i # 变量a存平方数,平方数是一个整数
liebiao.append(str(a)) # 要把整数转为字符串格式,再存到列表
print(",".join(liebiao)) # 用join方法把列表转为字符串格式;然后逗号隔开输出