python(day010——函数3)

def count_upper_letters(n):
    "判断n中有多少个大写字母"
    import string
    result=0
    if not isinstance(n,str):
        return
    for i in n:
        if i in string.ascii_uppercase:
            result+=1
    return result

print(count_upper_letters("jfFeiEFAEG"))
import time
import random
def count_multi_float_multiply_time():
    "计算随机的一万个小数相乘,所产生的的耗时"
    start_time=time.time()
    for i in range(10000):
        random.random()*random.random()
    end_time=time.time()

    return end_time-start_time

print("函数的调用时间是%s秒" %int(count_multi_float_multiply_time()))

1.有参函数:必备参数、命名参数、缺省参数、不定长参数。

2.list的引用和复制

>>> a=[1,2,3]
>>> b=a  #引用
>>> b is a
True
>>> c=a[:]  #复制
>>> c
[1, 2, 3]
>>> c is a
False

3.函数传参,参数是不可变类型,则函数外变量和内变量不相互关联,即修改后互不影响。

参数是可变类型,那么函数外变量和内变量有关联关系,修改后相互影响。

可变:列表、集合、字典

不可变:元组、数字、字符串

>>> a=10   #不可变参数
>>> def func(s):
...     a=s+100
...     print(a)
...
>>> func(a)
110
>>> a  #互不影响
10
>>> a=[]  #可变参数
>>> def func(s):
...     s.append(100)
...     print(s)
...
>>> func(a)
[100]
>>> a  #相互影响
[100]

*练习:写一个函数,打印10个“*”,通过参数指定打印行数,默认值5.

def print_stars(n=5):
    if not isinstance(n,int):
        return
    for i in range(n):
        print("*"*10)


print(print_stars("j"))
print(print_stars(7))

*建议,不要使用可变类型的值作为默认参数值

def add_end(L=[]):
    #修改
    """
def add_end(L=None):
    if L is None:
       L=[]
    """
    L.append("end")
    return L

print(add_end([1,2,3]))
print(add_end(["x","y","z"]))
print(add_end())
print(add_end())
print(add_end())
"""运行结果:默认参数如果是可变类型,那么所有的默认值调用都会操作内存中同一个变量值
[1, 2, 3, 'end']
['x', 'y', 'z', 'end']
['end']  #调用正常
['end', 'end']  #调用不正常
['end', 'end', 'end']  #调用不正常
"""

*练习:写一个函数,参数传入一个字符串,统计一下数字个数,数字排重后,返回个数和出现的数字。

def count_int(a=None):
    if not isinstance (a,str):
        return None
    count=0
    number_list=[]
    for i in a:
        if i in "0123456789":
            count+=1
            number_list.append(i)
    number_list=list(set(number_list))
    return count,number_list

print(count_int("jeiefifa1322"))

*获取函数提示信息

>>> def add():
...     "加法"
...     return
...
>>>
>>> add.__doc__
'加法'
>>> add
<function add at 0x0000018E66562948>
>>>

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值