栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

python学习日记79-89

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

python学习日记79-89

1.前言

隔离日记DAY6

2.学习内容 1.字符串的劈分
 s='hello world python'
 lst=s.split()#从字符串的左侧开始劈分,默认劈分符是空格字符串,返回值都是列表
 print(lst)#['hello', 'world', 'python']
 s1='hello|world|python'
 print(s1.split(sep='|'))#sep用来指定劈分符 ['hello', 'world', 'python']
 print(s1.split(sep='|',maxsplit=1))#通过参数maxsplit指定最大劈分次数,经过最大劈分次数后,剩余的字符串会单独作为一部分
 print('------------------------------')
 '''rsplit()从右侧开始劈分'''
 print(s.rsplit())
 print(s1.split('|'))
 print(s1.rsplit(sep='|',maxsplit=1))#二者区别在这里['hello|world', 'python']

这一部分没什么可赘述的,看程序一目了然

2.字符串判断的相关方法
 s='hello,python'#字母 数字 下划线才是合法的标识符
 print('1.',s.isidentifier())#False s中含有逗号,所以不是.    isidentifier()判断指定字符串是不是合法标识符
 print('2.','hello'.isidentifier())#2. True
 print('3.','张三_'.isidentifier())#3. True,为啥汉字也合法,因为汉字也由字母组成
 ​
 print('5.','t'.isspace())#5. True  isspace判断字符串是不是全部由空白字符组成(回车,换行,水平制表符)
 ​
 print('6.','adc'.isalpha())#6. True  isalpha判断字符串是否全由字母组成
 print('7.','张三'.isalpha())#7. True
 print('8.','张三1'.isalpha())#8. False
 ​
 print('9.','123'.isdecimal())#9. True  isdecimal判断是否全由十进制数组成,(罗马数字不是十进制数)
 print('10.','123四'.isdecimal())#false
 ​
 ​
 print('11','123'.isnumeric())#True    isnumeric判断是否全由数字组成 (罗马数字也行)
 print('12','123四'.isnumeric())#True
 ​
 print('13','abc1'.isalnum())#True    isalnum判断是否全由字母和数字组成
 print('14','张三123'.isalnum())#True    张三也是字母
 print('15','abc!'.isalnum())#15 False  !不行

注意汉字也是合法标识符,因为其由字母组成

3.字符串的替换与合并
 s='hello,python'
 print(s.replace('python','java'))#替换
 s1='hello,python,python,python'
 print(s1.replace('python','java',2))#hello,java,java,python第三个参数为替换次数
 ​
 ​
 lst=['hello','java','python']
 print('|'.join(lst))  #hello|java|python 连接
 print(''.join(lst))   #hellojavapython
 ​
 t=('hello','java','python')
 print(''.join(t))#hellojavapython
 ​
 print('*'.join('python'))#p*y*t*h*o*n

print(s.replace('python','java'))#替换 就是把字符串中的python换成java,这一部分也比较好理解。

4.字符串的比较操作
 print('apple'>'app')#True
 print('apple'>'banana')#False  a与b原始值(ASCII码)比较  相当于97 >98 False
 print(ord('a'),ord('b'))
 ​
 print(chr(97),chr(98))#a b     chr与ord互为对应
 ​
 '''==与is的区别
    == 比较的是值value
    is 比较的是id是否相等'''
 a=b='python'
 c='python'
 print(a==b)#True
 print(b==c)#True
 ​
 print(a is b)#true
 print(a is c)#true
 print(id(a))#a b c内存地址全相同 字符串驻留机制:当发现有相同字符串时,不会再创建新的字符串,而指向相同字符串的空间
 print(id(b))#同
 print(id(c))#同
  • 比较字符串时是比较其ASCII码的大小,且逐次从左到右比较

  • chr与ord互为对应

  • ==与is的区别 == 比较的是值value is 比较的是id是否相等

  • a b c内存地址全相同 字符串驻留机制:当发现有相同字符串时,不会再创建新的字符串,而指向相同字符串的空间

4.字符串的切片操作
 s='hello,python'
 s1=s[:5]#hello 由于没有指定起始位置,所以从0开始切
 s2=s[6:]#python由于没有指定结束位置,所以切到字符串的最后一个元素
 s3='!'
 newstr=s1+s3+s2#hello!python
 print(s1)
 print(s2)
 print(newstr)
 print(id(s1))
 print(id(s2))
 print(id(s3))
 print(id(newstr))#切片id各不相同
 ​
 print('-------切片[start:stop:step]  ------')
 print(s[1:5:1])#从1开始截到5,不包含5,步长为1
 print(s[::2])#默认从0开始,没有写结束,默认到字符串的最后一个元素,步长为2,两个元素之间的索引间隔为2
 print(s[::-1])#默认从字符串的最后一个元素开始,到字符串的第一个元素结束,因为步长为负数
 print(s[-6::1])#从索引为-6开始,到字符串的最后一个元素结束,步长为1,python

切片id各不相同

5.格式化字符串
 #格式化字符串
 #1. %占位符
 name='张三'
 age=20
 print('我叫%s,今年%d岁' %(name,age))#我叫张三,今年20岁
 ​
 #2. {}
 print('我叫{0},今年{1}岁'.format(name,age))#我叫张三,今年20岁  
 ​
 #3.f-string
 print(f'我叫{name},今年{age}岁')#我叫张三,今年20岁
 print('%10d' %99)#10表示宽度#        99(前面8个空格)
 print('%.3f'%3.1415926)#   .3表示保留三位小数
 #同时表示宽度和精度'
 print('%10.3f'%3.14595555)#总宽度为10,小数点后三位
 ​
 ​
 print('hellohello')
 print('{0}'.format(3.1415926))#花括号是占位符,占的3.1415926的位置                  3.1415926
 print('{0:.3}'.format(3.1415926))#.3表示一共三位数                                3.14
 print('{0:.3f}'.format(3.1415926))#.3d表示是3位小数                               3.142
 print('{:10.3f}'.format(3.1415926))#10表示宽度为10 #同时设置宽度和精度,一共是10位,其中三位是小数                             3.142
 #0表示占位符的顺序,也可以不写
6.字符串的编码与解码
s='天涯共此时'
#编码
print(s.encode(encoding='GBK'))#在GBK这种编码格式中,一个中文占两个字节
#b'xccxecxd1xc4xb9xb2xb4xcbxcaxb1' b表示二进制byte 后面刚好十个(五个字 一个字两字节)
print(s.encode(encoding='UTF-8'))#在 UTF-8这种编辑格式中,一个中文占三个字节
#b'xe5xa4xa9xe6xb6xafxe5x85xb1xe6xadxa4xe6x97xb6'  多了五个

#解码
#byte代表一个二进制数据(字节类型的数据)
byte=s.encode(encoding='GBK')# 编码
print(byte.decode(encoding='GBK'))#解码 天涯共此时
#print(byte.decode(encoding='UTF-8'))#ERROR 因为编码格式要和解码格式相同
7.函数的定义与调用
def calc(a,b):#a b成为形式参数 简称形参,形参的位置是在函数的定义处
    c=a+b
    return c

result=calc(10,20)#10 20 称为实际参数的值,简称实参,实参的位置实在函数的调用处
print(result)

res=calc(b=10,a=20)#等号左侧变量名称成为 关键字参数
print(res)
8.位置实参,关键字实参 9.函数参数传递的内存分析
def fun(arg1,arg2):
    print('arg1',arg1)
    print('arg2',arg2)
    arg1=100
    arg2.append(10)
    print('arg1', arg1)
    print('arg2', arg2)

n1=11
n2=[22,33,44]
print('n1',n1)
print('n2',n2)
fun(n1,n2)#将位置传参,arg1 arg2,是函数定义出的形式参数,n1 n2是函数调用处的实参,总结:实参名称与形参名称可以不一致

print('n1',n1)
print('n2',n2)
'''在函数调用过程中,进行参数的传递
如果是不可变对象,在函数体的修改不会影响实参的值 arg1的修改不会影响n1的值
如果是可变对象,在函数体的修改会影响实参的值     arg2的修改会影响到n2的值'''
10.函数的返回值
def fun(num):
    odd=[]#存奇数
    even=[]#存偶数
    for i in num:#遍历列表
        if i%2:
            odd.append(i)
        else:
            even.append(i)
    return odd,even

#函数的调用
lst=[10,29,34,23,44,53,55]
print(fun(lst))

'''
函数的返回值
1.如果函数没有返回值(函数执行完后,不需要给调用处提供数据) return可以不写
2.函数的返回值如果是一个,直接返回原值
3.函数的返回值如果是多个,返回的结果为元组
'''

def fun1():#直接输出就行了,没返回值
    print('hello')
    #renturn

fun1()


def fun2():
    return'hello'

res=fun2()
print(res)

def fun3():
    return'hello','world'
print(fun3())

'''函数在定义时,是否需要返回值,视情况而定'''
3.结束语

倦了.....晚安

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/348669.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号