Python刻意练习 20190522

Python刻意练习 20190522

# 编写一个可以计算总和的函数:
# 收到n个数字的列表,返回数字总和
# 如果未提供参数,则返回数字1..100的总和。
def sum_numbers(numbers=None): 
  pass

assert sum_numbers() == 5050
assert sum_numbers([1, 2, 3]) == 6
  • 解题思路
    • 判断参数是否为None,如果为True,则计算 range(1,101)的总和
    • 计算numbers 的总和
def sum_numbers(numbers=None): 
  if numbers == None:
    return sum(range(1,101))
  return sum(numbers)
  • 将if语句简化为单行 if else
def sum_numbers(numbers=None): 
  return sum(numbers) if numbers != None else sum(range(1,101)) 
  # 另一种写法 return sum( range(1,101) if numbers == None else numbers) 

思考

  • C语言,Java等都有三元操作符
int A,B,C; 
A=2; 
B=3; 
C=A>B ? 100 :200;
  • 在Python语言中没有三元操作符 ?: , 可能的原因是Python语言的发明者Guido认为三元操作符可以使用现有语法实现
  • 因此我们使用if else来实现相同功能
A,B = 2,3
if A > B:
    C = 100
else:
    C = 200
print(C)
  • 使用单行 if else
C = 100 if A > B else 200
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容