0
点赞
收藏
分享

微信扫一扫

daye - 9 总结

不会弹吉他的二郎腿 2022-04-23 阅读 60
python

字符串

一 :字符串相关函数

# 1.len

#2.str

'''
str(
数据)     -     所有的数据都可以转换成字符串;转换的时候是在数据的打印值外面加引号
'''


num = 123
# str(num)    - '123'

list1 = [10, 20, 30]
print(str(list1))     #[10, 20, 30]   本质上已经变了会把引号省略其实有

# 3.eval(字符串)      -   获取指定字符串引号中的内容(去取字符串的引号)
#注意: 这儿的字符串去掉引号以后必须是一个合法的表达式

# 1) 去掉引号以后是合法的数据

result = eval('100')   #  100
print(result,result*2,result+10)    # 100 200 110
# result = eval('abc')   #
报错
result =eval('"abc"')
print(result)             # abc
# result = eval('[abc , 1]')    #
报错  abc
# 合法表达式

result = eval('100+200'# 100 +200
print(result)       #300

abc = 10
result = eval('abc + 100')
print(result)      #110

nums =[10,20]
eval('nums.append(100)')
print(nums)               #[10, 20, 100]

# funcname =input('shuru:')
# eval (funcname + 'sdf')

nums = 'sdsa56812ad'
print(nums.title())  #Sdsa56812Ad

二 :字符串相关方法

# 1. join

# 字符串.join(序列)   - 将序列中的元素用指定的字符串连接成一个新的字符串(序列中的元素必须全部都是字符串)

list1 = ['hello', 'world!','你好']

result = ''.join(list1)

print(result)     #helloworld!你好



str1 = 'hello'

result = ' '.join(str1)

print(result) #h e l l o



# 练习: 将Nums中的数字拼接成一个数字

nums = [10, 30, 2, 48]

result = ''.join([str(x) for x in nums])

print(int(result))        #1030248



# 练习: 将nums中所有的个位数拼接成一个数字字符串,'09042'

nums = [10, 29, 30, 4, 52]

result = ''.join([str(x%10) for x in nums])

print(result)   #09042



#练习:将List1 所有数字+连接,并计算他们的和

list1 = [19,'abc', 1.23, 8, 22.2,'环境']

result = '+'.join([str(x) for x in list1 if type(x) in (int, float)])

print(result,eval(result),sep="=")   #19+1.23+8+22.2=50.43

# 2.split - 切割

# 字符串1.split(字符串2)      -   将字符串1中所有的字符串2作为切割点对字符串1进行切割

#2)字符串1 .split(字符串2,N)   - N是切割次数

str1 = 'abc123hello123你好123python'

result = str1.split('123'#

print(result)     #['abc', 'hello', '你好', 'python']



#注意:

str1 = '123abc123hello123你好'

print(str1.split('123'))           #['', 'abc', 'hello', '你好']

# 开头,结尾,连续切割,会出现空串

print(str1.split('123',2))       #['', 'abc', 'hello123你好']

# 3.replace - 替换

# 字符串1.replace(字符串2 , 字符串3)  1中字符串2 替换成 字符串3

# 字符串1.replace(字符串2 , 字符串3, N) N是次数

str1 = 'how are you? Im fine , Thank you!'

result = str1.replace('you', 'me')

print(result) #how are me? Im fine , Thank me!



# 4. strip            - 去掉字符串前后的空白字符

# 字符串.strip    还有单独去一边rstrip lstrip

# 字符串.strip(字符)        去掉前后这个字符

str1 = '            \t \n   good good study      \n'

print(str1)

result = str1.strip()

print(result)



str2 = 'god sdsf ///'

result = str2.strip('/')

print(result)          #god sdsf

# 5.count

# 字符串1.count(字符串2)  - 统计字符串1中字符串2出现的次数



# 6.maketrans   translate

# str.maketrans(字符串1, 字符串2)   -  通过字符串1和字符串2创建替换对应关系表

# 字符串.translate(对应关系表)        -   按照对应关系表将字符串中字符进行替换

table = str.maketrans('abc','123'#a=1 b-2

print(table)      #{97: 49, 98: 50, 99: 51}

str1 = 'hdkfsa34545sfabcasds'

result = str1.translate(table)

print(result)                           #hdkfs134545sf1231sds

#------------------------------------------------------------------------

# 1.center . ljust .rjust . zfill

'''

字符串.center(长度 , 字符)   - 将字符串指定长度,其余用指定字符填充;元字符放中间

字符串.ljust(长度 , 字符)   - 将字符串指定长度,其余用指定字符填充;元字符放左边

字符串.rjust(长度 , 字符)   - 将字符串指定长度,其余用指定字符填充;元字符放右边

字符串.zfill(长度)  == '字符串.rjust(长度, '0')

'''

# abcxxxx xxxxabc  xxabcxx

str1 ='abc'

print(str1.center(7,'x'))       #xxabcxx

print(str1.ljust(7, 'x'))              #abcxxxx

print(str1.rjust(7, 'x'))          #xxxxabc

# 不能变短,不会动

num = '123'

print(num.zfill(6))       #000123



#2. find    index

'''

字符串1.find(字符串2)   -  获取字符串2第一次出现的位置,不存在会返回-1

字符串1.index(字符串2)   - 获取字符串2第一次出现的位置,不存在报错



字符串1.rfind(字符串2) -从右边开始数,下标是正常下标

字符串1.rindex(字符串2) - 从右边开始数

'''

str1 = 'how are you? Im fine ,you see see ,one day day'

print(str1.find('you'))             #8

print(str1.index('you'))             # 8



print(str1.find('youu'))    #-1

#print(str1.index('youu'))   #baocuo



print(str1.rfind('you'))      #22



#string.isalnum()  -#如果 string 至少有一个字符并且所有字符都是字母或数字huo中文则返



#回 True,否则返回 False



# 3. string.isdigit()     string.isnumeric()   -  判断是否为纯数字字符串

#string.isdigit()   - 0-9纯数字

#string.isnumeric() - 数字意义的字符

str1 = '2342'



print(str1.isdigit())   #True

print(str1.isnumeric()) #True



str1 = '2342一壹百万ⅤⅣ'

print(str1.isdigit())        #False

print(str1.isnumeric())   # True





#string.lower() -转换 string 中所有大写字符为小写.

#string.upper() - 转换 string 中的小写字母为大写

三 :格式字符串

name =input('请输入姓名:')

# age = int(input('请输入年龄:'))



# 问题: 写代码的时候可能会出现一个字符串中的部分内容无法确定

# xxx今年xx岁!

# str1 = ' '

#

# # 方法一: 字符串拼接

# str1 = name + '今年' + str(age)  + '岁!'

# print(str1)

#

# # 方法2: 格式占位符

# str1 = '%s今年%d岁!'%(name, age)

# print(str1)

#

# # 方法3:使用f-string

# str1 = f'{name}今年{age}岁!'

# print(str1)



# 1. 格式站位符创建字符串

'''

语法: 包含格式占位符的字符串%(数据1,数据2,数3 ....)

注意: 后面括号中的数据必须和前面字符串的占位符一一对应

常用的格式占位符:

%s      -   字符串占位符,可以对应任何类型的数据

%d      -   整型,可以对应任何数字,去掉小数

%f       -   浮点数,可以对应任何数字,默认6位小数

'''

# xxx今年xx岁,月薪xxxx元!

# str1 = '%s今年%d岁,月薪: %.2f 元!'%(name,age,10558)

# print(str1)   #wuxukui今年55岁,月薪: 10558.00 元!



num = 34.8

str2 = '价格: %s' % num

print(str2)              #价格: 34.8



# 2. f- string

'''

语法:在字符串最前面加f,就可以在字符串中通过'{}'来提供字符串中变化的部分



'''

name = '小明'

age = 40

str1 = '{name}'

print(str1)        #{name}



str1 = f'{name}'

print(str1)       #小明



str1 = f'{name*2}'

print(str1)           #小明小明



str1 = f'{name[1]*3}'

print(str1)   #明明明



str1 = f'{name} =abc= {age + 10}'

print(str1)   #小明 =abc= 50



score = [10,20,30]

str1 = f'{name}三门学科分数:{str(score)[1:-1]}'

print(str1) #小明三门学科分数:10, 20, 30



# 1)加参数:    {表达式:参数}

# a.控制小数位数的参数: {表达式:.Nf}

money = 17283

str1 =f'年薪:{money * 13}'

print(str1)       #年薪:224679



# b. 显示百分比{表达式:.N%}

rate =0.87

str1 = f'班级及格率:{rate: .2%}'

print(str1)    #班级及格率:87.00%



# c. 逗号显示金额:

# 1,000

# 18,293,020,200

money = 172830

str1 = f'年薪:{money * 13:,.2f}元'

print(str1)    #年薪:2,246,790元       #年薪:2,246,790.00元



# d.修改填充内容长度:

num = 3

str1 = f'py2022{num:0>4}'

print(str1)     # py20220003

str1 = f'py2022{num:0^5}'

print(str1)  #py202200300

str1=f'py2022{num:1<5}'

print(str1)   #py202231111

str1=f'py2022{num:x<5}'

print(str1)  #py20223xxxx

举报

相关推荐

每周总结9

每日总结(2022/1/9)

day9总结和作业

离职总结(2022-9-5)

第7、8、9章总结

day9-字符串总结

.9.png一些总结

0 条评论