计算下列返回值,并判断变量的类型
def save_money(money):
""" 存钱 """
allMoney = 100
print("存钱前:", allMoney)
allMoney += money
print("存钱后:", allMoney)
def view_money():
"""查询金额"""
allMoney = 500
print("查询金额:", allMoney)
if __name__ == '__main__':
save_money(50)
view_money()
allMoney = 100
def save_money(money):
"""存钱"""
global allMoney
print("存钱前:", allMoney)
allMoney += money
print("存钱后:", allMoney)
def view_money():
"""查询金额"""
print("查询金额:", allMoney)
if __name__ == '__main__':
save_money(50)
view_money()
- 不使用global声明全局变量时不能修改全局变量?
Q: 为什么operator不需要声明为全局变量呢?
A: 因为 operator 是可变数据类型,不需要声明,其所有修改都在同一个内存
allMoney = 100
operator = []
def save_money(money):
"""存钱"""
global allMoney
print("存钱前:", allMoney, operator)
allMoney += money
operator.append('存钱操作')
print("存钱后:", allMoney, operator)
def view_money():
"""查询金额"""
operator.append("查询金额操作")
print("查询金融:", allMoney, operator)
if __name__ == '__main__':
save_money(50)
view_money()
0和非0项数组排序
"""
给定一个整形数组, 将数组中所有的0移动到末尾, 非0项保持不变;
在原始数组上进行移动操作, 勿创建新的数组;
输入: 数组的记录;0 7 0 2
输出: 调整后数组的内容; 7 2 0 0
思路如下:
0 7 0 2
1 0 1 0 - rule: ( 1 if num == 0 else 0 )
0 0 1 1
7 2 0 0 - after sort
"""
nums = [0, 7, 0, 2]
result = sorted(nums, key= lambda num: 1 if num == 0 else 0)
print(result)
nums = [0, 7, 0, 2]
nums.sort(key=lambda num : 1 if num == 0 else 0)
print(nums)
奇数偶数数组排序
nums = [0, 7, 0, 2]
result = sorted(nums, key=lambda num : 0 if num%2==0 else 1)
print(result)
nums = [0, 7, 0, 2]
nums.sort(key=lambda num : 0 if num%2 == 0 else 1)
print(nums)
nums = [0, 7, 0, 2]
nums.sort(key=lambda num : 0 if num%2 == 0 else 1, reverse=True)
print(nums)