学习python的第十二天---函数的进阶

2. 写函数,接收一个参数(此参数类型必须是可迭代对象),将可迭代对象的每个元素以’_’相连接,形成新的字符串,并返回.

例如 传入的可迭代对象为[1,'老男孩','武sir']返回的结果为’1_老男孩_武sir’

# def func(can):
#     if "__iter__" in dir(can): # 判断是否是可迭代的
#         result = ""
#         for item in can: # 传递的参数中的每一个元素 "周杰伦"
#             result += str(item)+"_"
#         return result.strip("_")
#     else: # 不是可迭代的
#         return None # 回去 , 正常来讲这里应该抛出异常.
#
# print(func((1,'老男孩','武sir')))

2,(此题有坑)下面代码打印的结果分别是_________,________,________.

def extendList(val,list=[]):
       list.append(val)
       return list
    list1 = extendList(10)
    list2 = extendList(123,[])
    list3 = extendList('a')

    print('list1=%s'%list1)
    print('list2=%s'%list2)
    print('list3=%s'%list3)

[10,a] [a] [10,a]

 

打印一个金字塔

# n = int(input("请输入你要打印多少行"))
# for i in range(1, n+1):
#     # 方案一
#     for k in range(n-i):
#         print(" ", end="")
#     for j in range(2 * i - 1):
#         print("*", end="")
#     print() # 换行
#
#
#     # 方案二
#     print(" " * (n - i) + "*" * (2 * i - 1))

# 求1-100内所有的质数的和(升级题)

# def func(n): # 只能被1和自身整除的数
#     if n == 1: # 特殊处理的
#         return False
#     # n / 2, 3, 4, 5, 6, 7, 8, 9....n-1
#     for i in range(2, n):
#         if n % i == 0: # 不是质数
#             return False
#     else:
#         return True
#
# print(func(2))
# sum = 0
# for i in range(1, 101):
#     if func(i): # 如果是质数. 帮我累加
#         sum += i
#
# print(sum)

 

 

 

posted @ 2018-11-01 20:50  DanielYang11  阅读(156)  评论(0编辑  收藏  举报