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

Python学习--Day13--杂记

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

Python学习--Day13--杂记

Day13--杂记
笠用字典映射代替switch case 语句:
# 方法 1
switcher = {
    0: 'Sunday',
    1: 'Monday',
    2: 'Tuesday'
}

print('方法1.请输入:')
day = int(input())
# day_name = switcher[day]  # 使用下标访问
day_name = switcher.get(day, 'Unknown') # 输入值若不存在,返回Unknown
print(day_name)


# 方法 2   使用函数方式
def get_sunday():
    return 'Sunday'


def get_monday():
    return 'Monday'


def get_tuesday():
    return 'Tuesday'


def get_default():
    return 'Unknown'


switcher1 = {
    0: get_sunday,
    1: get_monday,
    2: get_tuesday
}

print('方法2.请输入:')
day1 = int(input())
# day_name = switcher[day]  # 使用下标访问
day_name1 = switcher1.get(day1, get_default)()  # 输入值若不存在,返回Unknown
print(day_name1)
笠列表推导式:
# 列表推导式

a = [1, 2, 3, 4, 5, 6, 7, 8]

# i*i == i**2,  i*i*i == i**3
b = [i*i for i in a]
print(b)    # [1, 4, 9, 16, 25, 36, 49, 64]

# 条件筛选 a列表中 >=5的数字,平方后放入b

b = [i**2 for i in a if i >= 5]
print(b)    # [25, 36, 49, 64]

# 集合set也可以被推倒
a = {1, 2, 3, 4, 5, 6, 7, 8}
b = [i**2 for i in a if i >= 5]
print(b)    # [25, 36, 49, 64]

b = {i**2 for i in a if i >= 5}
print(b)    # {64, 25, 36, 49}
# 同理 字典和元组也可以
字典的列表推导式:
# 字典的列表推导式

students = {
    '曹操': 28,
    '刘备': 25,
    '孙权': 18
}

b = {key for key,value in students.items()}
print(b)    # {'刘备', '孙权', '曹操'}

# key, value 互换
b1 = {value: key for key, value in students.items()}
print(b1)   # {28: '曹操', 25: '刘备', 18: '孙权'}
笠空字符串 和 判空
'''
None    空

从 类型,值 讲   None 不等同于 空字符串、空列表 0 False
'''

a = 0
b = ''
c = []
d = False

print(a == None)
print(b == None)
print(c == None)
print(d == None)
# ------输出------
# False
# False
# False
# False

print(type(None))   # 

# 判空操作
def fun():
    return None

# a = fun()
a = []
if not a:
    print('T')
else:
    print('F')

if a is None:
    print('T')
else:
    print('F')

# 判空一般使用
'''
if a:
...
if not a:
'''
笠注意误区: 对象存在不一定是True:
# 对象存在不一定是True

# 对象默认是True 
class Test():
    pass


test = Test()
print(bool(test))   # True
if test:
    print('T')  # T
    
# -----------------------------------------------------
class Test1():
    def __len__(self):
        return 0


test1 = Test1()
print(bool(test1))   # False
if test1:
    print('T')  #
else:
    print('F')  # T

# 因为此时Test1() 返回值是0,所以test1的布尔值为False


# 类似的
class Test2():
    def __bool__(self):
        return False


test2 = Test2()
print(bool(test2))   # False
if test2:
    print('T')  #
else:
    print('F')  # T
__len__ 与 __bool__ 内置方法
class Test():
    def __len__(self):
        return True         # __len__函数可以返回 True or False


# 此时的打印输出结果取决于 __len__函数
print(bool(Test()))     # True
print(len(Test()))      # 1


class Test1():
    def __len__(self):
        return 8

    def __bool__(self):
        return False        # __bool__函数 不可以返回0 or 1


# 此时的打印输出结果取决于 __bool__函数
print(bool(Test1()))     # False
print(len(Test1()))      # 8

Python 基础与进阶到了这里就结束了
敬请期待 Python进阶与强化
QWQ

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/918770.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

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

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