【python018--函数参数】
1、形参和实参
>>> def MyFirstFunction(name):
    '函数定义过程中的name是叫形参'
    #因为Ta只是一个形式,表示占据一个参数位置
    print('传递进来的'+name+'叫做实参,因为Ta是具体的参数值!')
    
>>> MyFirstFunction('尘封')
传递进来的尘封叫做实参,因为Ta是具体的参数值!
>>> MyFirstFunction('尘封')
传递进来的尘封叫做实参,因为Ta是具体的参数值
2、函数文档:目的是使人更好的理解函数
>>> MyFirstFunction.__doc__
'函数定义过程中的name是叫形参'
".__doc__"指系统的特殊属性
3、关键字参数
>>> def SaySome(name,word):
    print(name+'-->'+word)
>>> SaySome(word='让编程改变世界',name='尘封')
尘封-->让编程改变世界
>>>
解释:word='让编程改变世界',name='尘封,word=和name=就是关键字,优点在于打印的参数不会随着顺序输出,而是根据关键字输出
4、默认参数:定义了默认值的参数
>>> SaySome(word='让编程改变世界',name='尘封')
尘封-->让编程改变世界
>>> def SaySome(name='尘封',word='让编程改变世界'):
    print(name +'-->'+word)
>>> SaySome()        #设置默认参数,是为了调用时忘记传入参数也能输出结果,并且也可以对默认参数进行改变
尘封-->让编程改变世界
>>> SaySome('苍井空','我脱光衣服躺在镜头前,是为了生存,而你衣冠楚楚的站在镜头前,却只是为了私欲和欺骗!')
苍井空-->我脱光衣服躺在镜头前,是为了生存,而你衣冠楚楚的站在镜头前,却只是为了私欲和欺骗!
>>>
5、收集参数
def SaySome(*parame,ext):     #收集函数用*   号
    print('参数的长度是:',len(parame))
    print('第二个参数是:',parame[1])
>>> SaySome('尘封','泪无痕','无名','冰点','破冰','一直播','战鲨',ext='小咖秀')
参数的长度是: 7
第二个参数是: 泪无痕
二、练习题
1、编写一个符合以下要求的函数:
a、计算打印所欲参数的和乘以基数(base=3)的结果
b、如果参数中最后一个参数为(base=5),则设定基数为5,基数不参与求和计算
def mFun(*param,base=3):
    result = 0
    for each in param:
        result += each
result *= base
print('结果是:',result)
mFun(1,2,3,4,5,base=5)
===================== RESTART: /Users/wufq/Desktop/参数.py =====================
结果是: 75
2、题目要求:如果一个三位数等于其各位数字的立方和,则称这个数为水仙花数。例如153=1^3+5^3+3^3,因此153是一个水仙花数。编写一个程序,找出所有的水仙花数
def Narcissis():
    for each in range(100,1000):
        temp = each
        sum = 0
       
        while temp:
            sum = sum + (temp%10)**3 #"%"取余
            temp = temp // 10   #“//”取整
            
        if sum == each:
            print(each , end = '\t')
print("所有的水仙花分别是:",end = ' ')
Narcissis()
3、编写一个函数findstr(),该函数统计一个长度为2的字符串在另一个字符串中出现的次数,例如:嘉定输入的字符串为“you cannot inprove your past,but you can inprove your future。Once time is wasted ,lift is wasted” ,字符串为“im”,函数执行后打印
“子字母串在目标字符串中共出现了多少次”
代码设计思路:
1、函数有两个字符串
2、一个字符串在另外一个字符串出现的次数,必然会有一个统计的默认值
3、判断:a、一个字符串不在另外一个字符串的情况,b、在的情况下,先从字符串的第一个字符开始找,然后在从第二个字符串开始找,全部满足后自增1
4、打印输出结果
def findStr(desStr, subStr):  #函数包含两个参数
    count = 0 #设定一个统计的初始值
    length = len(desStr)   #获取第一个参数的长度
    if subStr not in desStr:   #判断第二个参数不再第一个参数里面
        print('在目标字符串中未找到字符串!')
    else:
        for each1 in range(length-1):  #遍历所有字符,因为有两个字符,所以到倒数第二个字符为止    
            if desStr[each1] == subStr[0]: #找到第一个字符存在的位置
                if desStr[each1+1] == subStr[1]:#如果第一个if成立,也就找到了第一个字符,第二个字符在第一个字符的后一位继续找
                    count += 1   #如果第二个if成立,说明找到了目标字符,计数自增1
                    
        print('子字符串在目标字符串中共出现 %d 次' % count)  #最后打印出现的次数
desStr = input('请输入目标字符串:')
subStr = input('请输入子字符串(两个字符):')
findStr(desStr, subStr)
【python018--函数参数】的更多相关文章
- Delphi_08_Delphi_Object_Pascal_基本语法_06_函数参数
		发现Delphi中关于函数参数部分的内容还是比较多的,暂时说到这篇随笔为止吧,以后再继续讨论一下函数的参数部分的内容. 一 工程文件 program DefaultParameter; {$APPTY ... 
- 深入理解javascript函数参数与闭包(一)
		在看此文章,希望先阅读关于函数基础内容 函数定义与函数作用域 的章节,因为这篇文章或多或少会涉及函数基础的内容,而基础内容,我放在函数定义函数作用域 章节. 本文直接赘述函数参数与闭包,若涉及相关知识 ... 
- php与js中函数参数的默认值设置
		php函数参数默认值设置: <?phpfunction test($val=3){ echo $val."<br/>";}test(11);test();?& ... 
- JS中的函数(二):函数参数(你可能不知道的参数传递)
		前言: 函数分为有参有返回值,有参无返回值,无参无返回值,无参有返回值:那么对于无参数的函数你想使用函数的调用怎么办呢?如果你想封装一个代码,实现多种功能,但是形参大于实参或者实参大于形参又该如何?本 ... 
- Python函数参数学习笔记
		1.Python中函数参数类型可分为五种: f(x):x为位置参数: f(x,n=2):n为默认参数,调用时可以省略参数n,如f(5); f(*args):*args表示把args这个list或tup ... 
- C语言指针变量作为函数参数
		0x01 指针变量作为函数参数的作用是:将一个变量的地址传送到另一个函数中. 0x02 简单的例子:虽然都能实现功能,但意义不同. 正确的写法: #include <stdio.h> vo ... 
- 深入理解javascript函数系列第二篇——函数参数
		× 目录 [1]arguments [2]内部属性 [3]函数重载[4]参数传递 前面的话 javascript函数的参数与大多数其他语言的函数的参数有所不同.函数不介意传递进来多少个参数,也不在乎传 ... 
- Python函数参数默认值的陷阱和原理深究"
		本文将介绍使用mutable对象作为Python函数参数默认值潜在的危害,以及其实现原理和设计目的 本博客已经迁移至: http://cenalulu.github.io/ 本篇博文已经迁移,阅读全文 ... 
- 速战速决 (3) - PHP: 函数基础, 函数参数, 函数返回值, 可变函数, 匿名函数, 闭包函数, 回调函数
		[源码下载] 速战速决 (3) - PHP: 函数基础, 函数参数, 函数返回值, 可变函数, 匿名函数, 闭包函数, 回调函数 作者:webabcd 介绍速战速决 之 PHP 函数基础 函数参数 函 ... 
- java函数参数默认值
		java函数参数默认值 今天,需要设定java函数参数的默认值,发现按照其它语言中的方法行不通 java中似乎只能通过函数的重载来实现 函数参数默认代码 
随机推荐
- composer----------composer初体验,如何安装,如何下载
			最近PHP里面比较火的一款框架laravel,想学一下看下这个框架到底哪里好.这款框架的中文官网激励推荐composer,没办法就去学了一些composer.结果整了半天,还不如看一段短视频学的容易. ... 
- Nginx的介绍和安装详解
			[介绍+安装]Nginx的介绍和安装详解 == 介绍和安装 == Nginx是一个自由.开源.高性能及轻量级的HTTP服务器及反转代理服务器, 其性能与IMAP/POP3代理服务器相当.Nginx ... 
- FileFilter文件过滤器
			引入:将E:\java目录下的所有.java文件复制到E:\jad目录下,并将原来的文件的扩展名从.java改为.jad package com_2; import java.io.File; imp ... 
- c# Tuple新特性
			class Operation { internal Tuple<int, int> FindMinMax(List<int> list) ... 
- GCD (RMQ + 二分)
			RMQ存的是区间GCD,然后遍历 i: 1->n, 然后不断地对[i, R]区间进行二分求以i为起点的相同gcd的区间范围,慢慢缩减区间. #include<bits/stdc++.h&g ... 
- 实战http切换成https
			Server端使用Nginx + Tomcat Niginx SSL on Tomcat SSL non 步骤: 1.修改代码,将外部引用的http js css 文件修改为https,若外部链接不支 ... 
- 基于TCP/IP协议的socket通讯client
			package com.ra.car.utils; import java.io.BufferedReader; import java.io.IOException; import java.io. ... 
- Spark学习之路 (十三)SparkCore的调优之资源调优JVM的基本架构
			一.JVM的结构图 1.1 Java内存结构 JVM内存结构主要有三大块:堆内存.方法区和栈. 堆内存是JVM中最大的一块由年轻代和老年代组成,而年轻代内存又被分成三部分,Eden空间.From Su ... 
- qt5.5.1 移植4412的问题过程
			1.编译错误: ../WTF/wtf/unicode/wchar/UnicodeWchar.h: In function 'bool WTF::Unicode::isAlphanumeric(UCha ... 
- 51nod 1057 N的阶乘 (大数运算)
			输入N求N的阶乘的准确值. Input 输入N(1 <= N <= 10000) Output 输出N的阶乘 Input示例 5 Output示例 120 压位: 每个数组元素存多位数 ... 
