python-笔试面试考点(一)

1、变量

用一行代码交换a、b变量的值

# 1
a = 1
b = 2

tmp = a
a = b
b = tmp
print(a, b)

# 2

c = 1
d = 2
c, d = d, c
print(c ,d)


2、如何用多个变量接受列表和元组的值

li = [1, 2, 3]
# 三个变量接受
val1, val2, val3 = li
print(val1, val2, val3)  # 1 2 3
# 两个变量接受
val4, *val5 = li
print(val4, val5) # 1 [2, 3]

 3、一切皆对象

"""
创建字符串,整型、浮点型、列表、元组、字典、集合、None, 布尔类型
"""

s1 = 'abc'
s2 = str('abc')
print(s2, type(s2))
# str是一个类,通过str实例化一个对象s2,s2可以调用str类中的实例方法,
# s1 = 'abc'只是s2 = str('abc')的简写法,s1也是str的实例化对象
# 下面即相同的概念

f1 = 0.01
f2 = float(0.01)
print(f2, type(f2))

li1 = [1, 2, 3]
li2 = list([1, 2, 3])
print(li2, type(li2))

# tuple(), set(), dict(), bool()

4、字符串相关操作

# 1、切片
print(s[::])  # s[0]-s[len(s)-1]--hello world
print(s[0:])  # s[0]-s[len(s)-1]--hello world
print(s[0:2])  # s[0]-s[1]--he
print(s[:-1])  # s[0]-s[len(s)-2]--hello worl
print(s[::2])  # s[0]、s[2]、s[4]、s[6]、s[8]、s[10]----hlowrd
print(s[::-1])  # s[len(s)-1]-s[0] ----dlrow olleh

# 2、字符串倒序
s1 = 'abcdef'
print(s1[::-1])


def Reverse1(s: str):
    new_s = ''
    for i in range(len(s) - 1, -1, -1):
        new_s += s[i]
    return new_s


def Reverse2(s: str):
    new_s = ''
    for i in range(len(s) - 1, -1, -1):
        new_s += new_s.join(s[i])
    return new_s


print(Reverse1(s1))  # fedcba
print(Reverse2(s1))  # fedcba

# 3、分割 :将北京 上海 广州 深圳 转换为 北京、上海、广州、深圳

s2 = '北京 上海 广州 深圳'
split_list = s2.split(' ')
print(split_list)
print(','.join(split_list)) # 北京,上海,广州,深圳

 5、零值概念

 每一个数据类型都有且只有一个布尔值为False的对象

# 零值概念
# 每一个数据类型都有且只有一个布尔值为False的对象

# 整型:0
print(bool(0))
print(bool(1))
print(bool(-1))
if 1:
    print(1)
# 字符类型:空字符串
print(bool(''))
print(bool('1'))
print(bool(','))
if '1':
    print('1')
# 列表类型:空列表
print(bool([]))
print(bool([1, 2]))
print(bool(['.']))
if [1]:
    print([1])
# 字典:空字典
print(bool(dict({})))


# 结果
False
True
True
1
--------------------
False
True
True
1
--------------------
False
True
True
[1]
--------------------
False

6、短路运算

1)与运算:


前后同为True,整体返回True、否则整体返回False
    前面为False,不往后判断直接返回前面,整体返回False
    前面为True,往后判断,整体是True还是False取决于后面,但不管后面为True或False都返回后面

"""
1、与运算: 前后同为True,整体返回True、否则整体返回False
    前面为False,不往后判断直接返回前面,整体返回False
    前面为True,往后判断,整体是True还是False取决于后面,但不管后面为True或False都返回后面
"""
print(True and True)
print(True and False)
print(0 and 2)
print(1 and 2)
print(2 and 0)
print('-' * 20)

# 结果
True
False
0
2
0

2)或运算

前面为True,不再往后判断,整体返回True, 返回前面
前面为False, 往后判断:
    如果后面为True,整体返回True,返回后面
    如果后面为False, 整体返回False, 返回后面

print(True or False)
print(False or True)
print(1 or 2)
print(0 or 2)
print(0 or [])

# 结果
True
True
1
2
[]

3)非运算

# 3、非运算(返回True,False)
print(0 != True)
print(0 != False)
print(0 != 2)
print(0 == 2)

# 结果
True
False
True
False

4)运算等级

非>与>或

print(0 or 1 and 5 != 3)
print(0 or 1 and 5) # 1 and 5 >> 5 , 0 or 5 >>> 5
print(1 or 0 and 5) # 0 and 5 >> 0 , 1 or 0 >>> 1

# 结果
True
5
1

5)短路运算应用

需求:后端从数据库中获取用户,如果存在返回用户名,不存在返回匿名用户

# 5、短路运算应用
def get_user():
    """后端从数据库中获取用户,如果存在返回用户名,不存在返回匿名用户"""
    user = None
    # if user:
    #     return user
    # else:
    #     return '匿名用户'
    return user or '匿名用户'


print(get_user())

# 结果
匿名用户

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值