python面试题手动总结答案锦集
数据类型
字符串
1、列举python中的基本数据类型
数字:int
布尔值:bool
字符串:str
列表:list
元组:tuple
字典:dict
集合:set
然后我们需要了解一些运算符,应为这些基本类型常常会用于一些运算等等
一、运算符
运算度可以根据最终获得的值不同,可以分为两类,即结果为具体的值,结果为bool值,那么那些结果为具体的值--> 算数运算, 赋值运算,那些结果又为bool值
--> 比较运算、逻辑运算和成员运算
1、算数运算
2、赋值运算
3、比较运算
4、逻辑运算
5、成员运算
二、基本数据类型
1、数字 ---> int
在 python2 中,整数的大小是有限的,即当数据超过一定的范围不再是 int 类型,而是 long 类型,而在 python3 中,无论值针对整数的大小长度为多少,统称为整形int。
2、布尔值 ---> bool类
对于bool 值,只有两种结果即 True 和 False ,期分别对应与二进制中的 0 和 1,而对于真即 True 的值太多了,我们只需要了解加急假 即 False 的值 有哪些
---> None 、空(即【】/()/“”/{})、0
# 以下结果为假
>>>bool(None)
False
>>> bool(‘’)
False
>>>bool([])
False
>>>bool(0)
False
>>>bool({})
False
3、字符串 --> str
关于字符串是python 中最常用的数据类型,其用途也很多,我i们可以使用单引号‘’ 或者 "" 类创建字符串
字符串是不可修改的,所有关于字符我们可以从索引、切片、长度、遍历、删除、分割、清除空白、大小写转换,判断以什么开头等方面对字符串进行介绍。
创建字符串
name = “little_five”
print(name)
切片
# 获取切片,负数戴白哦倒数第几个,从 0 开始
>>> name = ‘little_live’
>>> name[1]
'i'
>>> name[0: -2] # 从第一个到倒数第二个, 不包含倒数第二个
‘little_fi’
索引 --> index()、find()
name = ‘little_five’
# index -> 获取索引,第二个参数指定获取该字符串或者子序列的第几个
print(name.index('i'm, 2)) # 结果为 4 # find 其作用与index 相似
print(name.find('i', 2)) # 结果为 4
index 和 find 的不同之处在于:若索引的该字符或者序列不在字符串中,对于 index --> ValueError: subdtring not found, 而 对于 find --> 返回 -1
长度:len()
删除: del
判断字符串内容 --.> isslnum()、isalpha()、isdigit()
# 判断是否全为数字
>>> a = ""
>>>a.isdigit()
True
>>> a = "a123"
>>>a.isdigit()
False # 判断是否全为字母
>>>d = 'alx--e'
>>>d.isalpha()
False
>>>c = 'alex'
>>>c.isdigit()
True # 判断是否全为数字或字母
>>> e = "abc123"
>>> e.isalnum()
True
join()
# joni() 连接字符串。将字符串,元组、列表中的元素以指定的字符(分隔符),连接生成一个新的字符串 # 字符串
>>>name = “littlefive”
>>> ‘-’。join(name)
'l-i-t-t-e-f-i-v-e' # 列表
>>> info = ['xiaozhou', 'say','hello', 'world']
>>> '--'.join(info)
'xiaowu--say--hello--world'
5、元组 ---> tuple()
元组即为不可修改的列表、其特性跟list相似、其使用远括号而不是方括号来标识
# 元组
name = ('hello', 'world')
print(name[0])
6、字典 -- dict
字典是一系列的 键值对,每个键值对用逗号隔开,每个建都与一个值相对应,可以通过键来获取值,字典是无序的
键的定义必须是可变的,既可以数字、字符串、也可以是元组,还有布尔值等等
而值的定义可以是任意的数据类型
# 字典的定义
info = {
1:""Hello world“, # 键为 数字
(”hello world"):1, # 键为元组
False:{
”name“:"james",
} ,
"age": 26
}
遍历 --> items 、 keys、 values
7、set 集合
关于集合set的定义,在我看来集合就像一个篮子,你可以往里面村东西也可以从里面取东西,但是这些东西又是无序的,你很难指定单独取某一样东西,同时它又可以通过一定的人方法选取获得您需要的那部分东西
故集合可以创建、增、删、改、关系运算
集合的特性:
1、去重
2、无序
3、每个元素必须是不可变类型(hashable类型,可作为字典的key)
创建:set、frozenset
# 1、创建、将会自动去重、其元素为不可变数据类型、即数字,字符串、元组
rest1 = {”zhangsan“, "list1", '',("hello", 'world', ), True}
test2 = set({”zhangsan“, "list1", '',("hello", 'world', ), True}) # 2 、不可变集合创建
test = frozenset(”zhangsan“, "list1", '',("hello", 'world', ), True)
增: add、 update
# 更新单个值
names = {'zhangsan', 'lisi', "wangwu "}
names.add("james") # 其参数类型必须是hashtable类型
print(names) # 更新多个值 --> update()
names = {"zhangsan", 'luisi', 'wangwu'}
names.update({'alex'},'james') # 其参数必须为集合
print(names)
删除:pop、remove、discard
# 随机山输 pop
names = {"zhangsan","lisi","wangwu","alex","james"}
names.pop()
perint(names) # 指定删除,若要删除元素不存在,则报错
names = {"zhangsan","lisi","wangwu","alex","james"}
names.remove('lisi')
print(names) # 指定删除,如要删除元素不存在,则无视改方法
names = {"zhangsan","lisi","wangwu","alex","james"}
names.discard('hello')
print(names)
关系运算:交集、并集|、差集-、交集补集^, issubset、issuperset
比如两个班英语班和数学班,我们需要统计两个班中的报名情况,例如即报名了英语班又报名了数学班的同学名字等等,这是后就可以应用到集合的关系运算:
endlish_c = {’zhangsan‘, lisi‘, 'wangeu', 'James', 'Alex'}
math_c = {"wangwu", 'liudehua', 'james', 'alex'} # 1、交集 --> in a and in b
# 统计即报了英语班又报了数学班的同学
print( english_c & math_c)
print(english_c.intersection(math_c))
# 输出为: {’Alex‘, 'James'} # 并集 in a or in b
# 统计报名了两个班的所有同学
print(english_c | math_c)
print(english.union(math_c)) # 差集 in a not in b
# 统计只报了英语班的同学
print(english_c - math_c)
print(english_c.difference(math_c)) # 交差集
# 统计值报名一个班的同学
print(englisj_c ^ math_c)
判断两个集合关系是子集、父集 --> issubset、 issuperset
# issubset -- > n 是否为 m 的子集
# n 是否为 m 的父集
n = {1,2,3,4,8,10}
m = {2,4,6}
i = {1,2,11} print(n >= m)
print( m <= n)
最新文章
- JS仿淘宝星星评价
- 基于Spark ALS构建商品推荐引擎
- POJ 1195
- div+css 定位浅析
- HOWTO:保存nohup日志
- 【错误】:Could not open JDBC Connection for transaction; nested exception is: Communications link failure;The last packet sent successfully to the server was 1 milliseconds ago
- waitFor和waitForAny的实现
- 什么是git?window下安装git
- QQ空间掉帧率优化实战
- Android开发学习之路--异步消息Handler,Message,Looper和AsyncTask之初体验
- 【原创】大叔问题定位分享(2)spark任务一定几率报错java.lang.NoSuchFieldError: HIVE_MOVE_FILES_THREAD_COUNT
- 传统、VHD、VHDX性能对比测试(转帖)
- 小程序实践(二):swiper组件实现轮播图效果
- dbms_redefinition在线重定义表结构 可以在表分区的时候使用
- python系统编程(二)
- 重写equals() 和 hashCode()方法
- NYOJ 47:过河问题(思维)
- mysql dbcp Caused By: com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: The last packet successfully received
- css动画,展开折叠图标
- STM32用有源蜂鸣器实现闹钟的声响