新手学习Python第六天-新手笔记 (七天学完)

07:55达到实验室,冲杯豆浆和接了一杯热水,准备先复习昨天的学习内容。

--------08:22复习完毕-----------

1.字符串的常用操作

1.1 isdecimal:是否全部由十进制的数字组成

print('123'.isdecimal())
print('123四'.isdecimal())

还有一个罗马数字的 输入进去依然是False

1.2  isnumeric():是否全部由数字组成

print('123'.isnumeric())
print('123四'.isnumeric())

这里的罗马数字也算做由数字组成,结果为True

1.3 isalnum:是否全部由数字和字母组成

print('123abc'.isalnum())
print('张三123'.isalnum())
print('abc!'.isalnum())

2.字符串其他操作方法

2.1 replace()字符串替换

字符串模式下

s='hello,python'
print(s.replace('python','java'))
s1 ='hello,python,python,python'
print(s1.replace('python','java',2))
print(s1.replace('python','java',3))  第三个参数代表的是更替的次数
print(s1.replace('python','java',4))

有一个小插曲,一开始我设置为 s='hello','python',用repalce(),就不会成功,原来这是元组,元组没有这个repalce()

2.2字符串连接符 join()

当您使用 join() 方法时,它会尝试将列表中的所有元素连接成一个单一的字符串,其中每个元素之间用指定的分隔符(在这个例子中是 '|')分隔。不能出现整数int()

s2=['hello','python']    #列表
print('|'.join(s2))
print('*'.join(s2))

s3=('hello','python','ros')   #元组
print("*".join(s3))
s4='python'                  #字符串
print('*'.join(s4))

3.字符串的比较操作

运算符包括: > <= < <= == !=

比较规则:从第一个开始比较,直到不等就不往后进行了。

例如:

print('app'<'apple')

标蓝色部分是

比较原理:用ord 可以得到字符的 value

用chr可以得到value值对应的字符 ,看到下图你就想为什么?

3.2 chr()和 ord()

ord:字符串➡数值

print(ord('a'))
print(ord('b'))

chr():数值➡字母:

print(chr(98))
print(chr(97))

3.3 == 和is 的区别

==:比较value是否相等

is: 比较id是否相等

例如:

a=b='python'
c='python'
print(a==b)
print(a == c)
print(a is c  )
print(a is b)

print(id(a))
print(id(c))

id也是一样的,这就是字符串的驻留机制

4.字符串的切片操作

切片将产生新的对象

不具备增删改操作  切记语法结构:对象名+[] 里面是start:stop:step

a= 'hello,python'
a1=a[:5]
a2=a[6:]
a3='!'
s=a1+a2+a3
print(s)
print(a1)
print(a2)
print(a3)
print(id(a))
print(id(a2))

print(s[::2])
print(s[::-1])

运行结果:

hloyhn
!nohtypolleh

这里记住一点吧:步长为正数要正着推,为负数逆推

4.格式化字符串

两种方式:

4.1%作占位符 

%s:字符串      %i %d整数   %f:浮点数   

语法结构:

‘我的名字叫:%s,今年 %d岁了’ % (name,age)   这里的%固定符号

name = '张三'
age= 20
print('我叫%s,今年%d岁了' % (name,age))   字符串 % 元组

4.2 {}作占位符

'我的名字叫:{0},今年{1}岁了,我真的叫:{0}'.format(name,age)

把第一个  ’我的名字叫:%s,今年 %d岁了’ % (name,age) 转成  

’我的名字叫{0},今年 {1}岁了’ .format (name,age)  

name = '张三'
age= 20
print('我叫{0},今年{1}岁了'.format(name,age)) 

这里的0和1表示的是索引位置

----10:01----去剪个头发-------

-----11:06---刚刚剪完头发,买了午饭准备在实验室吃了-----刚发现我还得学carsim-----

--要学的太多了,前面欠的债,都得需要还。

4.3 f-string

  语法结构: f'我叫{name},今年{age}岁了’。

例如:

print(f'我叫{name},今年{age}岁了')

这个多练习几遍吧。以下是又练习了一遍。

4.4 其他描述

语法结构(’%d/f % 数字)以及((’%nd/.或者%.n/m.n f % 数字)

例如:

print('%d'% 99)     #打印99这个整数 

print('%10d' % 99)  #表示10个宽度 

----中午没睡午觉,再整理写一下学校活动的策划案,我是组长,我得把组员们写的各部分策划案精准下。  12:54  加油,成为一名铁人。------不知不觉写到14:19终于写完了 。

开始继续学习:  14:19

4.4 整数和小数的精度写法

记住: print('%nd' % 数字) 

print('%10d' % 99) #表示长度为10的99
print('%.3f' % 3.14159)   #表示保留小数点后三位
print('%10.3f' % 99.52624)  # 表示10个长度以及保留小数点后三位

第二种方式:

不想写这个%,那么第二种表达方式是什么?

语法结构  ‘{ }'.format(数字)

print('%10d' % 99)
print('%.3f' % 3.14159)
print('%10.3f' % 99.52624)
print('{:.3}'.format(3.14159))    #保留三位有效数字
print('{:.3f}'.format(3.14159))   #保留小数点后三位数字
print('{0:.3}'.format(3.14159))   #证明:前面不写和0表达是一样的

print('{:10.3f}'.format(3.14159))   #表示的是保留3位有效数字,宽度一共10位

谨记:这里的{}与:很重要,此外还有.format()

5.字符串的编码与解码

5.1编码:将字符串转换二进制

语法结构: 对象名+.+encode(encoding='GBK')

对象名+.+encode(ending='UTF-8')

例如:

s="天涯共此时"
print(s.encode(encoding='GBK'))
print(s.encode(encoding='UTF-8'))

其中从程序中可知,GBK是两个字符,UTF-8是三个字符 看它的长度。

5.2 解码:将bytes类型的数据转换成字符串  

先编码再解码

先写编码的程序:

s="天涯共此时"
print(s.encode(encoding='GBK'))
print(s.encode(encoding='UTF-8'))

然后解码 就先令一个对象名再把encode换成decode最后再一一对应就可以了。

例如:

s="天涯共此时"
print(s.encode(encoding='GBK'))
print(s.encode(encoding='UTF-8'))
a=s.encode(encoding='GBK')
print(a.decode(encoding='GBK'))   #解码GBK
d=s.encode(encoding='UTF-8')
print(d.decode(encoding='UTF-8'))  #解码UTF-8

需要注意的是,编码和解码用的是一个码,不能你编码和解码用的不是一个,那样就会报错

二、函数

1. 函数的定义与调用

定义:执行特定任务以完成特定功能的一段代码

函数的创建:def 函数名([输入的参数】):    自己起函数名

函数体

【return xxx] 

def al (a,b):   函数名叫al 输入的参数有两个a和b
    o = a+b     函数体(逻辑关系)
    return (o)   返回给函数体
s=al(5,3)       
print(s)

再练习一道

def al (a,b,c):
    p=a+b*c
    return(p)
k=al(5,6,2)
print(k)

1.2函数的参数传递

1.2.1实际参数:简称实参  10 ,20 都是实参
1.2.2形式参数:简称形参   a,b 都是形参

这里的5给了a,8给了b ,这叫 位置实参

还有另外一种

def al (a,b):
    s=a+b
    return(s)
k= al(5,8)
print(k)
p=al(a=8,b=5)     #这叫关键字实参   
print(p)

----刚刚党支部发了通知---需要我们写几篇笔记----去写了 ,想了一下吃完饭回寝室写吧,认真写,实验室没有写字的地方,只有敲代码的地方。

如果是不可变对象,在函数体的修改不会影响实参的值,arg1的修改为100,不会影响n1的值

如果是可变对象,在函数体的修改会影响到实参的值 arg2的修改,append(10),会影响到n2的值

这部分代码这个逻辑有点难理解,认真读吧

def fun(arg1,arg2):
    print('arg1',arg1)
    print('arg2',arg2)
    arg1=100
    arg2.append(10)
    print('arg1',arg1)
    print('arg2',arg2)
n1=10
n2=[22,33,44]
print(n1)
print(n2)
fun (n1,n2)
print(n1)     
print(n2)

1.3函数的返回值

函数返回多个值时,结果为元组

现在是07:45,昨晚一直在写党员笔记,没来得及来实验室,所以想了下,今早把这个文章发出去吧。

  • 13
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值