IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> Python知识库 -> 【Python】Python入门案例第三天(Python基础语法下) -> 正文阅读

[Python知识库]【Python】Python入门案例第三天(Python基础语法下)

传送门: Python入门案例第一天(Python基础语法上).

传送门: Python入门案例第二天(Python基础语法中).

一、Python中的字符串

字符串是python中的基本数据类型,是一个不可变的字符序列

1.字符串的驻留机制

仅保存一份相同且不可变字符串的方法,不同的值被存放在字符串的驻留池中,python的驻留机制对相同的字符串只保留一份拷贝,后续创建相同字符串时,不会开辟新空间,而是把该字符串的地址赋给新创建的变量。
字符串驻留机制的优缺点:
当需要值相同的字符串时,可以直接从字符串池里拿来使用,避免频繁的创建和销毁,提升效率和节约内存,因此拼接字符串和修改字符串是会比较影响性能的。
在需要进行字符串拼接时建议使用str类型的join方法,而非+,因为join()方法是先计算出所有字符串中的长度,然后再拷贝,只new一次对象,效率要比“+”效率高。

a='Python'
b="Python"
c='''Python'''
print(a,id(a))
print(b,id(b))
print(c,id(c))
输出结果:
Python 2990483081904
Python 2990483081904
Python 2990483081904

2.字符串的相关操作

(1)字符串的查询操作:

s='hello,world'
print(s.index('lo'))#3
print(s.find('lo'))#3
print(s.rfind('lo'))#3

(2)字符串的大小写转换操作的方法

a=s.upper() #转换成大写之后,会产生一个新的字符串对象
print(a,id(a))
print(s,id(s))
b=s.lower()
print(b,id(b))
print(s,id(s))
输出结果:
HELLO,WORLD 1906161060080
hello,world 1906160711280
hello,world 1906161060144
hello,world 1906160711280

(3)字符串内容对齐的操作

c='hello,Python'
print(c.center(20,'*'))#居中对齐
print(c.ljust(20,'*'))#左对齐
print(c.rjust(20,'*'))#右对齐
print(c)
输出结果:
****hello,Python****
hello,Python********
********hello,Python
hello,Python

(4)字符串分段操作

d='hello,Python'
lst=d.split()
print(lst)
d='hello|world|Python'
print(d.split(sep='|'))
print(d.split(sep='|',maxsplit=1))
#rsplit()从右边开始分段
print(d.rsplit())
print(d.rsplit("|"))
print(d.rsplit(sep='|',maxsplit=1))
输出结果:
['hello,Python']
['hello', 'world', 'Python']
['hello', 'world|Python']
['hello|world|Python']
['hello', 'world', 'Python']
['hello|world', 'Python']

3.字符串的替换与合并

s='hello,world'
print(s.replace('Python','Java'))
s2='hello,world,Python,Python'
print(s2.replace('Python','java',2))

lst=['hello','java','python']
print('|'.join(lst))
print(''.join(lst))

t=('hello','java','python')
print(''.join(t))

print('*'.join('python'))
输出结果:
hello,world
hello,world,java,java
hello|java|python
hellojavapython
hellojavapython
p*y*t*h*o*n

4.字符串的切片操作

#字符串是不可变类型,不具备增删改等操作,切片操作将产生新的对象。
#切片[start🔚step]

s2='helloworld'
s5=s2[:5] #由于没有指定起始位置,所以从0开始切
s3=s2[6:] #由于没有指定结束位置,所有切到字符串的最后一个位置
s4='!'

newstr=s5+s3+s4
print(s5)
print(s3)
print(s4)
print(newstr)

#切片[start:end:step]
print(s2[1:5:1])
输出结果:
hello
orld
!
helloorld!
ello

5.字符串的比较操作

(1)运算符:>,>=,<,<=,==,!=
(2)比较规则:首先比较两个字符串中的第一个字符,如果相等则继续比较下一个字符,依次比较下去,直到两个字符串中的字符不相等时,其比较结果就是两个字符串的比较结果,两个字符串中所有后续字符将不再被比较。
(3)比较原理:两个字符进行比较时,比较的是其ordinal value(原始值),调用内置函数ord可以得到指定字符的原始值,与内置函数ord对应的是内置函数chr,调用内置函数chr时,指定ordinal value可以得到其对应的字符。

s='hello'
s1='helloworld'
print(s>s1)
print(s<s1)

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

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

6.格式化字符串的3种方式

(1)%作占位符:%s-字符串,%i或%d-整数,%f-浮点数

name='安逸'
age=18
print('我的名字叫:%s,今年%d岁'%(name,age))
输出结果:
我的名字叫:安逸,今年18

(2){}作占位符:‘我的名字叫:{0},今年{1}岁’.format(name,age)

print('我的名字叫:{0},今年{1}岁'.format(name,age))
输出结果:
我的名字叫:安逸,今年18

(3)#f-string

print(f'我的名字叫:{name},今年{age}岁')
输出结果:
我的名字叫:安逸,今年18
print('%10d' %99)#10表示的是宽度
print('%.3f'%3.1415926)#.3表示的是小数点后三位
print('%10.3f'%3.1415926)#同时表示宽度和精度

7.字符串的编码转换

#str在内存中以Unicode表示
#编码与解码的方式
#编码:将字符串转换成二进制数据(bytes)
#解码:将bytes类型的数据转换成字符串类型

#编码
s='努力赚钱'
print(s.encode(encoding='GBK'))#在GBK格式中一个中午占两个字节
print(s.encode(encoding='UTF-8'))#在UTF-8格式中一个中午占3个字节

#解码
#byte代表就是一个二进制数据(字节类型的数据)
byte=s.encode(encoding='GBK') #先编码
print(byte.decode(encoding='GBK')) #解码,解码格式要与编码格式一致,否则会报错
输出结果:
b'\xc5\xac\xc1\xa6\xd7\xac\xc7\xae'
b'\xe5\x8a\xaa\xe5\x8a\x9b\xe8\xb5\x9a\xe9\x92\xb1'
努力赚钱

二、python中的函数

1.函数的创建和调用

#什么是函数:函数就是执行特定任务和以完成特定功能的一段代码
#函数的作用:复用代码;隐藏实现细节;提高可维护性;提高可读性便于调试
(1)函数的创建:

def calc(a,b):
    c=a+b
    return c
print(calc(1,2))

(2)函数参数的传递:
a,b称为形式参数,简称形参,形参的位置是在函数定义处
1,2称为实际参数,简称实参,实参的位置是在函数调用处.
(3)函数的返回值:
1)如果函数没有返回值[函数执行完毕之后,不需要给调用处提供数据],return可以省略不写
2)函数的返回值,如果是1个,直接返回原类型
3)函数返回多个值时,结果为元组
(4)函数的参数定义:
#函数定义默认值参数:函数定义时,给形参设置默认值,只有与默认值不符的时候才需要传递实参。
1)个数可变的位置参数:(只能一个)
定义函数的时候,可能无法事先确定传递的位置实参的个数时,使用可变的位置参数可以解决
使用*定义个数可变的位置形参
结果为一个元组

def fun(*args):
    print(args)

fun(10)
fun(10,20,30)
输出结果:
(10,)
(10, 20, 30)

2)个数可变的关键字形参:(只能一个)
定义函数的时候,可能无法事先确定传递的关键字实参的个数时,使用可变的关键字形参可以解决
使用**定义个数可变的关键字形参
结果为一个字典

def fun2(**args):
    print(args)

fun2(a=10)
fun2(a=10,b=20)
输出结果:
{'a': 10}
{'a': 10, 'b': 20}

2.变量的作用域

程序代码能访问该变量的区域
根据变量的有效范围可分为:
局部变量:在函数内定义并使用的变量,只在函数内部有效,局部变量使用global声明,这个变量就会成为局部变量。
全局变量:函数体外定义的变量,可作用于函数内外。

3.递归函数:

什么是递归函数:如果在一个函数的函数体内调用了该函数本身,这个函数就称为递归函数
递归的组成部分:递归调用与递归终止条件。
递归的调用过程:每递归调用一次函数,都会在栈内存分配一个栈帧,每执行完一次函数,都会释放相应的空间。
递归的优缺点:缺点:占用内存多,效率低。
优点:思路和代码简单。

#计算6的阶乘
def fun(n):
    if(n==1):
        return  1
    else:
        return n*fun(n-1)
print(fun(6))

在这里插入图片描述

若本篇内容对您有所帮助,请三连点赞,关注,收藏支持下。

创作不易,白嫖不好,各位的支持和认可,就是我创作的最大动力,我们下篇文章见!

安逸 | 文

如果本篇博客有任何错误,请批评指教,不胜感激 !

  Python知识库 最新文章
Python中String模块
【Python】 14-CVS文件操作
python的panda库读写文件
使用Nordic的nrf52840实现蓝牙DFU过程
【Python学习记录】numpy数组用法整理
Python学习笔记
python字符串和列表
python如何从txt文件中解析出有效的数据
Python编程从入门到实践自学/3.1-3.2
python变量
上一篇文章      下一篇文章      查看所有文章
加:2021-08-08 11:17:17  更:2021-08-08 11:17:48 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年5日历 -2024/5/17 14:45:30-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码