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

学习笔记4-python字符串补充及函数传参(部分面试题)

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

学习笔记4-python字符串补充及函数传参(部分面试题)

1. [x for x in range(5)]和(x for x in range(5))有什么区别?
print([x for x in range(5)])
print((x for x in range(5)))

运行结果:

[0, 1, 2, 3, 4]
 at 0x0000019A55ED9DD0>

一个生成列表,一个生成迭代器对象
迭代器一定是可迭代对象,但是可迭代对象不一定是迭代器

2. 字符串系统功能 2.1 简述列表,元组,字典,集合和字符串的区别?

列表的本质:list,是一种有序的,可变的,可以存储重复元素的,可以存储不同类型的集合;

  • 元组的本质:tuple,是一种有序的,不可变的,可以存储重复元素的,可以存储不同类型的集合;
  • 字典的本质:dict,是一种有序的【Python3.7之后】,可变的,key不可以重复,但是value可以重复,key只能是不可变的数据类型,value可以是任意的类型的集合;
  • 集合的本质:set,是一种无序的,可变的,不可以存储重复元素的,可以存储不同类型的集合;
  • 字符串的本质:str,是一种有序的,不可变的,可以存储重复字符的集合。
比较项列表元组字典集合字符串
是否可变可变不可变可变可变不可变
是否有序有序有序python3.7之前:无序,python3.7之后有序无序有序
存储重复元素可以可以key:不可以重复,value可以重复不可以可以
数据类型任意类型任意类型key:不可变的数据类型,value:任意类型任意类型-------------
2.2 转义字符
"""
n ----->n  换行
t ----->t  制表符【tab键】
r ------>r  回车
b ------>b  backsapce
"""
  • 注意:r"xxx",可以将字符串中的特殊字符进行转义,无需手动转义,常用于路径的表示或者正则表达式中
2.3 系统功能 2.3.1 转换

eval():将str转换为有效的表达式,eval(str):可以识别一个字符串str中的有效的python语句并执行该语句
upper():将小写字母转换为大写
lower():大—》小
swapcase():大—》小 小----》大
capitalize():首单词的首字母大写,其他全部小写,英文句子
title():每个单词的首字母大写,其他全部小写
chr(num):获取数字num在ASCII表中对应的字符
ord(ch):获取字符ch在ASCII表中对应的十进制数字

2.3.2 查找

find():从左往右进行检索,返回被查找的子字符串在原字符串中第一次出现的位置,如果查找不到返回-1;
rfind():从右往左进行检索;
index():从左往右进行检索,返回被查找的子字符串在原字符串中第一次出现的位置,如果查找不到则直接报错;
rindex():从右往左进行检索。

2.3.3 填充

center(width[,fillchar]):用fillchar填充指定的字符串,填充之后的长度为width,原字符串居中显示;
ljust(width[,fillchar]):用fillchar填充指定的字符串,填充之后的长度为width,原字符串居左显示;
rjust(width[,fillchar]):用fillchar填充指定的字符串,填充之后的长度为width,原字符串居右显示;
zfill(width):原字符串居右显示,剩余的字符默认用0填充

2.3.4 提取

strip():去除一个指定字符串中两端指定的子字符;
lstrip():去除一个指定字符串中左边指定的子字符
rstrip():去除一个指定字符串中右边指定的子字符

2.3.5 合并和分割

join():使用指定的子字符串将列表中的元素连接【列表-----》字符串】
split():使用指定的子字符串将原字符串进行分割,得到一个列表 【字符串-----》列表】

2.3.6 替换

replace(old,new):将原字符串中的old替换为new
映射替换:
maketrans():生成映射表
translate():根据映射表将指定字符串中的指定字符替换为映射表中对应的字符

3.7判断

isalpha():一个字符串非空并字符全部是字母才返回True
isalnum():一个字符串非空并字符是字母或者数字才返回True
isupper()/islower()/istitle():和upper,lower,title有关
isdigit()/isdecimal():一个字符串非空并字符全部是数字才返回True
startswith():判断一个字符串是否是以指定自字符串开头【前缀】
endswith():判断一个字符串是否是以指定自字符串结尾【后缀】

2.3.8 编码和解码

encode():编码:将字符串类型转换为字节类型,实现方式:bytes()或encode()
decode():解码:将字节类型转换为字符串类型,实现方式:str()或decode()

2.3.9 格式化

占位符:%d,%s,%f
format()
f""

3. 参数传递 3.1简述值传递和引用传递的区别
  • 值传递:传参的时候,传递的是不可变的数据类型,如:int/float/str/tuple/bool,当形参发生修改,对实参没有影响;
  • 引用传递:传参的时候,传递的是可变的数据类型,如:list/dict/set等,当形参中的元素发生修改,则实参会随着修改。
# 1.值传递
def func1(num):
 print(f"修改之前,num的地址:{id(num)}")
 num = 100
 print(f"修改之后,num的地址:{id(num)}~~~~")

temp = 45
func1(temp)
print(f"temp的值:{temp}")

# 2.引用传递
def func1(num):
 print(f"修改之前,num的地址:{id(num)}")
 num[1] = 100
 print(f"修改之后,num的地址:{id(num)}~~~~")

temp = [2,3,4]
func1(temp)
print(f"temp的值:{temp}")
3.2 return
  • return是一个关键字,可以单独作为一条语句,只能使用在函数中,表示结束函数
  • 同级的情况,在return的后面不添加任何语句,否则永远没有执行的机会
  • 不同级的情况下,只要return有可能执行不到,return的后面是可以添加语句的
  • 如果函数没有设置返回值,则函数调用完毕之后,默认返回None
  • 函数调用完毕之后,可以使用一个变量将返回值接出来
3.3 return和break
  • return:使用在函数中,表示结束函数,不管return处于多少层循环中,只要执行到return,函数都会结束;
  • break:使用在循环中,表示结束当前循环;
4. 函数的封装
def xxx(形参):
 函数体【要实现的需求】
 return 返回值
  • 如果要封装一个函数,需要注意两个方面:
    • 是否需要设置形参:如果需求中有未知项参与运算,则设置为形参
    • 是否需要设置返回值:如果需求运算完是否有结果,如果有结果,则设置返回值
5. 匿名函数
  • 概念:不再使用def这种标准形式定义函数,而是使用lambda表达式来创建函数,该函数没有函数名,被称为匿名函数,匿名函数也被称为lambda表达式

  • 语法:lambda 形参列表:返回值

  • 说明:
    ​ a. lambda只是一个表达式,用一行代码实现一个简单的逻辑,可以达到对函数的简化【优点】
    ​ b. lambda主体是一个表达式,而不是一个代码块,只能封装有限的逻辑【缺点】
    ​ c. lambda拥有自己的命名空间,不能访问自有列表之外或者全局命名空间里的参数

6. 函数/方法
  • 在一个完整的项目中,某些功能可能会被反复使用,如果将反复出现的代码封装成函数,以后如果要继续使用该功能则直接使用函数即可,另外,如果要修改需求,只需要修改函数
  • 本质:对某些特殊功能的封装
  • 优点:
    a.简化代码结构,提高应用的模块性
    b.提高了代码的复用性
    c.提高了代码维护性
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/965831.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

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

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