十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
先说说函数定义,我们都知道,下面的代码定义了一个函数funcA
创新互联建站专注为客户提供全方位的互联网综合服务,包含不限于成都网站制作、网站建设、外贸网站建设、南丹网络推广、小程序定制开发、南丹网络营销、南丹企业策划、南丹品牌公关、搜索引擎seo、人物专访、企业宣传片、企业代运营等,从售前售中售后,我们都将竭诚为您服务,您的肯定,是我们最大的嘉奖;创新互联建站为所有大学生创业者提供南丹建站搭建服务,24小时服务热线:18980820575,官方网址:www.cdcxhl.com
def funcA():
pass
显然,函数funcA没有参数(同时啥也不干:D)。
下面这个函数funcB就有两个参数了,
def funcB(a, b):
print a
print b
调用的时候,我们需要使用函数名,加上圆括号扩起来的参数列表,比如 funcB(100, 99),执行结果是:
100
99
很明显,参数的顺序和个数要和函数定义中一致,如果执行funcB(100),Python会报错的:
TypeError: funcB() takes exactly 2 arguments (1 given)
我们可以在函数定义中使用参数默认值,比如
def funcC(a, b=0):
print a
print b
在函数funcC的定义中,参数b有默认值,是一个可选参数,如果我们调用funcC(100),b会自动赋值为0。
OK,目前为止,我们要定义一个函数的时候,必须要预先定义这个函数需要多少个参数(或者说可以接受多少个参数)。一般情况下这是没问题的,但是也有在定义函数的时候,不能知道参数个数的情况(想一想C语言里的printf函数),在Python里,带*的参数就是用来接受可变数量参数的。看一个例子
def funcD(a, b, *c):
print a
print b
print "length of c is: %d " % len(c)
print c
调用funcD(1, 2, 3, 4, 5, 6)结果是
1
2
length of c is: 4
(3, 4, 5, 6)
我们看到,前面两个参数被a、b接受了,剩下的4个参数,全部被c接受了,c在这里是一个tuple。我们在调用funcD的时候,至少要传递2个参数,2个以上的参数,都放到c里了,如果只有两个参数,那么c就是一个empty tuple。
好了,一颗星我们弄清楚了,下面轮到两颗星。
上面的例子里,调用函数的时候,传递的参数都是根据位置来跟函数定义里的参数表匹配的,比如funcB(100, 99)和funcB(99, 100)的执行结果是不一样的。在Python里,还支持一种用关键字参数(keyword argument)调用函数的办法,也就是在调用函数的时候,明确指定参数值付给那个形参。比如还是上面的funcB(a, b),我们通过这两种方式调用
funcB(a=100, b=99)
和
funcB(b=99, a=100)
结果跟funcB(100, 99)都是一样的,因为我们在使用关键字参数调用的时候,指定了把100赋值给a,99赋值给b。也就是说,关键字参数可以让我们在调用函数的时候打乱参数传递的顺序!
另外,在函数调用中,可以混合使用基于位置匹配的参数和关键字参数,前题是先给出固定位置的参数,比如
def funcE(a, b, c):
print a
print b
print c
调用funcE(100, 99, 98)和调用funcE(100, c=98, b=99)的结果是一样的。
好了,经过以上铺垫,两颗星总算可以出场了:
如果一个函数定义中的最后一个形参有 ** (双星号)前缀,所有正常形参之外的其他的关键字参数都将被放置在一个字典中传递给函数,比如:
def funcF(a, **b):
print a
for x in b:
print x + ": " + str(b[x])
调用funcF(100, c='你好', b=200),执行结果
100
c: 你好
b: 200
大家可以看到,b是一个dict对象实例,它接受了关键字参数b和c。
首先按下“Win+R”组合键,打开运行窗口。在打开文本框输入“cmd”,点击确定。在打开的cmd窗口中,输入:“python”,点击Enter键。在Python环境中,输入:“x = format(0.5, '%')”,点击Enter键。在Python环境中,输入:“print(x)”,详细步骤:
1、首先按下“Win+R”组合键,打开运行窗口。
2、在打开文本框输入“cmd”,点击确定。
3、在打开的cmd窗口中,输入:“python”,点击Enter键。
4、在Python环境中,输入:“x = format(0.5, '%')”,点击Enter键。
5、在Python环境中,输入:“print(x)”。
6、点击Enter键,即可使用Python内置的format函数把数字0.5格式化为百分比值。
要求n的位数count和各位数之和s,可以使用Python中内置的函数len()和sum()来实现。
例如,对于数字12345,可以这样写:
n = 12345
count = len(str(n))
s = sum(int(i) for i in str(n))
在这个例子中,count的值为5,因为数字12345有5位;s的值为15,因为1+2+3+4+5=15。
需要注意的是,len()函数只能用于求字符串的长度,因此需要先把数字n转换为字符串。此外,sum()函数默认求的是序列中所有元素的和,因此需要使用列表推导式来把n的各个位数转换为整数再求和。
# coding=gbk
import numpy as np
inputStr = input("请输入多个整数,以空格分隔:")
# 使用列表推导式将输入的内容以空格分隔,如果有小数,则通过int函数变为整数
input_lists = [int(num) for num in inputStr.split(" ")]
# 通过sort方法,并使用参数reverse=True,来将列表的数据以降序排列
input_lists.sort(reverse=True)
# 由于通过",".join()连接的列表不能有整数元素,所以通过列表推导式将列表每个元素通过str转为字符串后,再联接为以逗号分隔的字符串
print(",".join([str(num) for num in input_lists]))
# 使用numpy的median函数来得到中位数
print(np.median(input_lists))
解答如下#! usr/bin/python3.5# -*- coding:utf-8 -*-a = input("请输入一个整数:")#python中input函数输出的是一个字符串,而只有通过int进行强制转换a = int(a)b = input("请输入一个整数:")b = int(b)"""divmod()函数用法def divmod(x, y): # known case of builtins.divmod""" Return the tuple (x//y, x%y). Invariant: div*y + mod == x. """return (0, 0)函数返回的是两个值,第一个是一个x//y的整数,而x%y是一个求余"""n, r = divmod(a, b)if __name__ =='__main__':print("n=", n, "r=", r)补充知识:python输入一个三位数以上的整数,输出其百位以上的数字(同每个位置上的数字)例如用户输入1234,则程序输出12x=input('请输入一个三位以上的数')x=int(x)if 0print('请重新输入一个三位以上的数')else:x=x//100print(x)这个题目用到的是整除运算的思想。同样的 我们可以举一反三:x=x//10x=x//1000那么如果我们想将各个位置上的数字提取出来那就更简单了,连续组合整除运算就OK啦!x=x//10//10