day10-字符串和函数基础笔记

day10-字符串和函数基础

一.字符串相关方法

字符串.xxx()

1.字符串.join(序列) - 将序列中的元素通过指定的字符串拼接成一个新的字符串

list = ["100", "200", "300"]
result = "+".join(list)
print(result)

练习:将nums中的元素用‘+’拼接

nums = [19, 23, 45, 67, 23, 90]
result1 = "+".join([str(x) for x in nums])
print(result1)

2.字符串1.split(字符串2) - 将字符串1中所有的字符串2作为切割的进行切割,返回一个列表

字符串1.split(字符串2,N) - 将字符串1中前N个字符串2作为切割的进行切割,返回一个列表

注意:切割点在字符串开头,字符串结尾,或者切割点连续出现,会切割出空串

str1 = '大撒大abc撒大撒abc大娃发abc生发的'
result3 = str1.split('abc')
print(result3)    # ['大撒大', '撒大撒', '大娃发', '生发的']

练习:提取str2中所有的数字

str3 = '19+23+45+67+23+90'
result3 = str3.split('+')
print(([int(x) for x in result3]))

字符串1.replacve(字符串2,字符串3)-将1中2替换成3

字符串1.replacve(字符串2,字符串3,N)-将1中2前N个替换成3

str1 = '你好abc123abc哈哈哈abc呵呵呵abc==='
print(str1.replace('abc', ''))   # 你好123哈哈哈呵呵呵===

4.字符串1.find(字符串2) - 查找字符串1中字符串2第一次出现的位置,若2不存在返回-1

字符串1.index(字符串2) - 查找字符串1中字符串2第一次出现的位置.若2不存在报错

stra = '你好abc123abc哈哈哈abc呵呵呵abc==='
print(stra.find('abc'))
print(stra.find('hellow'))   # 报错

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

字符串1.count(字符串2,开始下标,结束下标)-统计字符串1中指定范围字符串2中出现的次数

strb = '你好abc123abc哈哈哈abc呵呵呵abc==='
print(strb.count('abc'))
print(strb.count('abc', -7))
print(strb.count('abc', 2))
print(strb.count('abc', 3, -7))

字符串.upper() - 将字符串中所有小写字母转换成大写

字符串.lower() - 将字符串中所有小写字母转换成大写

print('a123'.upper())
print('HDJD123'.lower())

str.maketrans(字符串1,字符串2) - 创建字符串1中所有字符串2中所有字符的对应关系表(字符串1和字符串2长度必须一样)

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

table = str.maketrans('abc', '123')
print(table)   # {97: 49, 98: 50, 99: 51}

str1 = 'how are you? and baby? come!'
result = str1.translate(table)
print(result)   # how 1re you? 1nd 212y? 3ome!
message = '电话号码:156555544'
table1 = str.maketrans('0123456789', '零一二三四五六七八九')
result1 = message.translate(table1)
print(result1)

1)字符串.
1)字符串.isdecimal() -判断字符串是否是纯数字字符串(任何独立存在表示数值意义的字符)
2)字符串.isdecimal() -判断字符串是否是纯数字字符串(数字只表示阿拉伯数字)
3)字符串.isupper() -判断字符串是否是大写字母
4)字符串.islower() -判断字符串是否是小写字母

print('566565545'.isnumeric())  # True
print('566565545'.isdigit())  # True
print('5665一五八5'.isnumeric())  # True
print('5665一五八5'.isdigit())  # False
print('566Ⅱ5一五八5'.isnumeric())  # True
print('adascas'.islower())  # True
print('SFAFWA'.isupper())  # True

二.格式字符串

name = input('请输入姓名:')
age = int(input('请输入年龄'))
# 案列:’xxx今年xx岁!‘
# 1.字符串拼接
message = name + '今年' + str(age) + '岁!'
print(message)

2.字符串格式占位符

包含格式占位符的字符串%(数据1,数据2,数据3,…)——数据与占位符数量一致

常见的格式占位符:
%s - 可以给任何类型的数据占位
%d - 数字占位符,拼接的时候会将数字转为整型
%f - 数字占位符,拼接的时候数字会保留6位小数
%.Nf - 数字占位符,拼接的时候数字会保留N位小数

str1 = 'x:%s y:%d z:%f t:%.2f' % ([10, 20, 30], -199, 374, 234.54455)
print(str1)

3.f-string

在字符串最外加f,然后在字符串中通过{表达式}来提供字符串内容

message = '%s今年%d岁!' % (name, age)
print(message)

message = f'{name}今年{age}岁'
print(message)
# {}内可以写任何有结果的表达式
message1 = f'{name[0]}今年{age * 10}岁'
print(message1)

a = b = c = 100
str2 = f'a:{a - 3}, b:{b * 2 / 5},c:{300 + c}'
print(str2)


1)f-string可以在{}中添加参数:{提供数据表达式:参数}

1)控制小数位数的参数:{表达式:.Nf}

x = 3.51254
str3 = f'x:{x:.2f}'
print(str3)

2)百分比:{表达式:.N%} ——N控制小数位数

x = 0.67
str4 = f'1周就业率:{x:.1%}'
print(str4)

3)大数据逗号显示:{表达式:,}

x = 15488565525
str5 = f"余额为:{x:,}元"  # 余额为:15,488,565,525元
print(str5)
# 结合使用
str6 = f"余额为:{x:,.2f}元"  # 余额为:15,488,565,525.00元
print(str6)

4)控制填充长度{表达式:字符>长度} ,{表达式:字符<长度},{表达式:字符^长度}.字符不写的时候不够的自动用空格填

让无论输入什么长度一样 1-001 23 - 023 231 -231

x = 32
str7 = f'学号为:python2206{x:0>3}'  # x长度为3.不够0来填.>为填前面   ^为填中间     #学号为:python2206032
print(str7)
str8 = f'学号为:python2206{x:0<3}'   # 学号为:python2206320
print(str8)
str9 = f'学号为:python2206{x:0^5}'  # 学号为:python220603200
print(str9)
stra = f'学号为:python2206{x:>3}'   # 学号为:python2206 32
print(stra)

三.认识函数

# 相当于给函数打包.封装函数 def jiecheng(n):公式  - 求阶乘
def jiecheng(n):
    sum1 = 1
    for x in range(1,n+1):
        sum1 *= x
    print(sum1)

jiecheng(10)
jiecheng(8)
# 将操作保存在函数.操作修改也方便
def left():
    print('-------左移--------')
    print('打左转向灯')
    print('观察后视镜')
    print('左打方向盘')
    print('踩油门')
    print('回正方向盘')
def cai():
    print('踩油门')
left()
left()
cai()

四.函数的定义和调用

函数就是实现某一特定功能的代码的封装(函数就是把实现某一个功能的所有代码打成一个包,以后再需要这段代码对应的功能的时候不需要再去写这个代码了,而是直接调用封装这段代码的函数)

2.函数的分类
根据函数是由谁创建的可以将函数分为:系统函数,自定义函数
1)系统函数 —— 由python(系统)创建的函数,列如:print(函数),input(函数),type(函数),min(函数),max(函数)…
2)自定义函数 —— 由程序员自己创建的函数

3.定义函数(创建函数)
语法:
def 函数名(形参列表)
函数说明
函数体
说明:
def — 关键字:固定写法
函数名 - 由程序员自己命名;
要求:是标识符号;不是关键字
规范:见名知意思(让别人看见函数名就大概知道这个函数的功能);所有字母都小写,多个单词之间用下划线隔开;
不使用系统函数名,类名,模块名
3)() —— 固定写法
4)形参列表 —— 以’变量名1,变量名2,变量名3…‘的形式存在(这儿变量名的数量可以是任意多个,也可以一个没有)
形参可以将函数外部的数据传递到函数内部
定义函数的时候需不需要形参,需要几个形参,就看实现函数的功能需不需要额外的数据,需要几个额外的数据.
5): - 固定写法
6): - 本质就是多行注释
7)函数体 - 结构上,和def保持一个缩进的一条或者多条语句(至少一条);
逻辑上,函数体就是实现函数功能的代码

4.调用函数

语法:
函数名(实参列表)
说明:
函数名 - 需要哪个函数的功能就调用哪个函数,就写哪个函数名
() - 固定写法
实参列表 - 以’数据1,数据2,数据3,…‘数据的个数由函数定义的时候的形参决定的

# 案列:定义一个函数可以求任意两个数的和
def sum2(num1, num2):
    '''
    (功能说明区)求两个数之和
    :param num1: (参数说明)第一个数据
    :param num2: (参数说明)第二个数据
    :return: (返回值说明)None
    '''
    print(num1 + num2)
# 练习1:定义一个函数求:1+2+3+..+n
def a(n):
    sum3 = 0
    for x in range(1, n+1):
        sum3 += x
    print(sum3)

a(10)
a(20)
# 练习2:定义一个函数统计字符串中数字字符的个数
def count_num(w):
    sum3 = len(w)
    print(sum3)
def count_num1(str1):
    count = 0
    for x in str1:
        if '0' <= x <= '9':
            count += 1
    print(count)
count_num1('dadasd5554')
# 练习3:定义一个函数删除列表中空元素(None、''、[])
def del1(l):
    for x in l.copy():
        if not x and x != 0:
            l.remove(x)
        print(l)
del1(['', 5, 6])
# 练习4:定义一个函数,将两个字符串交叉合并成一个新的字符串
# 'abcmjjjgh'   '123'  ->  'a1b2c3'
def merge_str(str1, str2):
    len1 = len(str1)
    len2 = len(str2)
    count = min(len1, len2)
    str3 = ''
    for x in range(count):
        str3 += str1[x] + str2[x]
    str3 += str1[count:] + str2[count:]
    print(str3)
merge_str('abc', '123hs')
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值