python语言篇(8练习2)

# 1. 写一个函数 mysum 此函数的功能是返回:
#    1 + 2 + 3 + 4 + 5 + ..... + n 的和
# def mysum(n):
#     ....

# print(mysum(100))  # 5050


def mysum(n):
    # 定义一个局部变量,让其值初始化为0
    s = 0
    for x in range(1, n + 1):
        s += x
    # 返回结果
    return s

print(mysum(100))  # 5050

print(mysum(10000))

 

# 2. 写一个函数 mysum2 此函数可以传入一个参数,两个参数和三个参数:
# 1) 当传入一个参数时,这个参数代表 终止数
# 2) 当传入两个参数时,第一个参数代表起始值,第二个参数代表终止值
# 3) 当传入三个参数时,第三个参数代表步长
# 此函数的功能是返回从开始到终止值的和
# 如:

# print(mysum2(5))  # 10  (0+1+2+3+4)
# print(mysum2(4, 6))  # 9 (4+5)
# print(mysum2(5, 10, 2))  # 21 (5+7+9)

# 方法1
# def mysum2(*args):
#     if len(args) == 1:  # 处理只有一个参数传入的情况
#         s = 0
#         for x in range(args[0]):
#             s += x
#         return s
#     elif len(args) == 2:
#         s = 0
#         for x in range(args[0], args[1]):
#             s += x
#         return s
#     elif len(args) == 3:
#         s = 0
#         for x in range(args[0], args[1], args[2]):
#             s += x
#         return s

# 方法2
# def mysum2(*args):
#     s = 0
#     if len(args) == 1:  # 处理只有一个参数传入的情况
#         r = range(args[0])
#     elif len(args) == 2:
#         r = range(args[0], args[1])
#     elif len(args) == 3:
#         r = range(args[0], args[1], args[2])
#     else:
#         return None

#     for x in r:
#         s += x
#     return s

# 方法3 使用缺省参数定义形参
# def mysum2(start, stop=None, step=1):
#     # 如果没有传入第二个实参,则重新定义start,和stop
#     if stop is None:
#         stop = start
#         start = 0
#     s = 0
#     for x in range(start, stop, step):
#         s += x
#     return s


# 方法4 使用缺省参数定义形参
# def mysum2(start, stop=None, step=1):
#     # 如果没有传入第二个实参,则重新定义start,和stop
#     if stop is None:
#         stop = start
#         start = 0
#     return sum(range(start, stop, step))

# 方法五
def mysum2(*args):
    return sum(range(*args))

print(mysum2(5))  # 10  (0+1+2+3+4)
print(mysum2(4, 6))  # 9 (4+5)
print(mysum2(5, 10, 2))  # 21 (5+7+9)
# print(mysum2(1,2,3,4,5,6,6))

 

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值