# 方法 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)) #笠注意误区: 对象存在不一定是True:# 判空操作 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
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



