목차
지식 정제 모듈(11)은 그 이름에 걸맞은 문자열입니다.
1. 문자열 찾기
# 1. 1함수에서 사용
a = ' acacacaabaac' 의 ' aa '
인쇄 (a)
# 1. 2 인덱스를 찾을 수 없으면 오류가 보고됩니다.
b = '안녕하세요 세계' .index( "A" )
인쇄 (b)
# 1. 3 find는 찾을 수 없으면 -1을 반환합니다. 어느 것을 사용하는 것이 더 낫습니까?
c = '안녕하세요 세계' .find( "A" )
인쇄 (c)
2. 문자열 형식 지정
# 형식: 템플릿 문자열%(매개변수 목록)
s = "이름: %s 나이: %d 중국어: %d 수학: %.2f" % ( "새벽" , 11, 85, 90.5)
인쇄 하다
%s %d %.2f 를 집합적으로 자리 표시자라고 하며, 문자열의 자리 표시자는 괄호 안의 매개 변수로 대체됩니다.
자리 표시자 %s는 해당 위치에 문자열 형식을 채우는 것을 의미하며, 문자열이 아닌 경우 자동으로 변환됩니다.
자리 표시자 %d는 정수 유형으로 채워져야 하며 자동으로 정수로 변환됩니다.
자리 표시자 %f는 부동 소수점 숫자 유형으로 채워져야 하며 자동으로 부동 소수점 숫자로 변환됩니다. %.2f ~ 소수점 이하 2자리 %.5f ~ 소수점 이하 5자리
3. 문자열 이스케이프 문자 \' \"
문자열에 일부 특수 문자가 포함될 수 있습니다.
#s = '당신의 이름은 무엇입니까?'
인쇄(들) 출력 결과?
#s = '당신의 이름은 무엇입니까?'
4. 문자열 수정
# 4. 1 문자를 소문자로 변환: string.lower()
s = "안녕하세요 머니"
s = s.lower()
인쇄 하다
# 4. 2 문자를 대문자로 변환: string.upper()
s = s.upper()
인쇄 하다
# 4. 3 첫 글자만 빼고 나머지는 소문자로 변환합니다. 문자열.자본화()
s = s.capitalize()
인쇄 하다
# 4. 4 교체 방법 string.replace(old,new)
s = s.replace( "안녕하세요" , " 좋아요" )
인쇄 하다
# 4. 5 문자 삭제, 스트립()의 기본값은 공백, lstrip()은 왼쪽 끝 삭제 lstrip() 오른쪽 끝 삭제
s = s.strip() # 기본적으로 양쪽 공백을 삭제합니다.
인쇄 하다
s = s.lstrip( "I" ) # 왼쪽 I를 삭제하도록 지정
s = s.rstrip( "y" ) # 오른쪽 y를 삭제하도록 지정
인쇄 하다
결합된 훈련:
원래 문자열: 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( "안녕하세요" )
y = '#' .join([ "1" , "2" , "3" ])
5.2 String.split('cutting Character') 는 분할 후 목록 형식으로 반환됩니다.
z = z.split( '-' )
인쇄 (z)
5.3 String.split('잘라내는 문자', 잘라낸 횟수)
y = y.split( '#' ,1)
인쇄 (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='내 이름은 베이징입니다'
> > > 인쇄(len(str1))
A、20B、18C、15D、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. 원하는 출력은 "제 이름은 Kevin이고 저는 10살입니다."입니다. 다음 중 올바른 옵션은 무엇입니까?( )
A. print('제 이름은 %s이고 나이는 %d세입니다.',%('Kevin',10))
B. print('제 이름은 %s이고 나이는 %d세입니다.'%('Kevin',10))
C. print('내 이름은 %c이고 나이는 %d살입니다.'%('Kevin',10))
D. print('내 이름은 %s이고 나이는 %d세입니다.'%',Kevin',%10))
4. 다음 코드를 실행한 후 결과는 무엇입니까? ( )
seq=['안녕','좋은','좋은 아침']
s='*'.join(시퀀스)
인쇄물)
A、안녕*좋은*아침* B、*안녕*좋은*아침
C、안녕*좋은*아침 D、*안녕*좋은*아침*
옳고 그름 판단 (√ / ×)
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("Salary{0:.2f}".format(Money))인 것으로 알려져 있으며 결과는 "Salary 8.67"입니다. ( )
8. 다음 프로그램
a1='hello'
a2='everybody'
print(a1*2+a2)를 실행
하면 결과는 hellohelloeverybody( )입니다.
9. 문자열의 요소는 인덱스로 배치됩니다. 여기서 첫 번째 요소의 인덱스는 0입니다. ( )
10. ('yellow','red','purple')에서 'red'의 결과는 True입니다. ( )
질문 1 : 문자열과 목록을 서로 변환합니다.
a = 목록 ( 범위 (2,13))
t(a)를 인쇄하다
ls = []
#조인 방법 "connector".join(목록 이름) 사용
나는 다음 과 같다:
ls.append( str (i))
인쇄 ( " " .join(ls))
질문 2 : 두 개의 양의 정수 M과 N을 각각 입력하고 M과 N 사이(M, N 포함)에서 7로 나누어지는 모든 숫자를 출력합니다.
단, 5의 배수가 아닌 숫자는 쉼표로 구분하여 한 줄에 순차적으로 인쇄됩니다.
샘플 입력:
100
147
샘플 출력:
112,119,126,133,147
M = int ( 입력 ())
N = int ( 입력 ())
li= [] # 빈 목록을 정의합니다
for i in range (M, N+1): #M부터 N번까지 반복
if i % 7 == 0 and i % 5 != 0: #조건이 충족되었나요?
li.append( str (i)) # 조건에 맞는 값을 목록에 추가
인쇄 ( "," .join(li))
질문 3 : 양의 정수 N(N<30)을 입력하고, 1과 N(1과 N 포함) 사이의 모든 양의 정수의 제곱을 출력하고, 출력된 제곱 숫자는 쉼표로 구분됩니다.
입력설명 : 양의 정수 N을 입력하세요 (N<30)
출력 설명 : 1과 N 사이의 모든 양의 정수의 제곱수를 출력하고, 제곱수 출력은 사이입니다.
쉼표로 구분.
[샘플 입력]
삼
[샘플 출력]
1,4,9
n = int ( 입력 ())
리비아오 = []
(1,n+1) 범위 에 있는 i 의 경우 :
a = i * i # 변수 a는 정수인 제곱수를 저장합니다.
liebiao.append( str (a)) # 정수를 문자열 형식으로 변환한 후 목록에 저장합니다.
print ( "," .join(liebiao)) # 조인 메서드를 사용하여 목록을 문자열 형식으로 변환한 다음 출력을 쉼표로 구분합니다.