经常碰到的函数问题 (不让用print,所以全部都是return结尾)
def是函数标志,行内称为方法,后面跟函数名,接跟圆括号(),()里面的变量称为参数.
可以使用默认值,但是只允许从()里面最后一个参数定义默认值(调用方法的时候,没有输入这个值,比如2D绘图中pygame模块里面的width = 1设置一个图形的默认宽度常用)并且带缩进
def Myinformation(name,age,tel):
if...
带默认值的参数
def Myinformation(name,age,tel=12345678901):
for...
def Comparison_2(num1, num2):
a = num1
b = num2
if a > b:
min = b
elif a < b:
min = a
else:
min = a
return min
参考#3.1 3.2的使用方法
def Comparison_3(num1, num2, num3):
a = num1
b = num2
c = num3
if a > b:
min = b
elif a <= b:
min = a
if min > c:
min = c
elif min <= c:
min = min
else:
min = a
return min
#参考#3.1 3.2的使用方法
和两个数的用法一样的
#这里需要注意的是,函数里面,必须进行输入的格式化处理,否则若输入两个数字,结果是两个数字相加的和,若输入的一个是数字,一个是字符串,就会报错
def StrConnection(String1, String2):
result = str(String1) + str(String2)
return result
有两种方式使用这个函数:
3.1使用input,代码如下:
a = input('请输入第一个字符: ')
b = input('请输入第二个字符: ')
str = StrConnection(a, b)
print(str)
3.2直接套用,代码如下:
print(Comparison_2('ewqreq', '674jshj走'))
#返回小于5的值输出
def strOutput(String):
for i in str(String):
if len(str(String)) < 5:
return '少于5个字符'
else:
return str(String)[0:5]
这里我开始想多了,So…就出现了一下的公式
seal = money + (money * 0.03) # n= 1 year
seal = money + ((money * 0.03) + money) * 0.03 # n= 2
sael = money + (((money * 0.03) + money) * 0.03) * 0.03 # n= 3
#银行计算利率,返回存款
def bankRate(money, year):
y = year
while y > 0:
money = money*1.03
y = y - 1
print(money)
print(bankRate(6000,3))
定义money=6000
#6180.0
#6365.400000000001
#6556.362000000001
以下会用到这个列表,因为,后面涉及到数学计算,so全是int数字,随便按的…
list = [2, 378, 45, 32, 32, 10, 87, 378, 0, 6, 43634, 450]
这里使用了冒泡的写法,for语句更容易理解(如果大的往右边排列,更换以下代码第四行为大于号(>)就可以了)
#定义一个函数max,参数为list,返回list中的最大值
def max(list):
for i in range(len(list)-1):
for j in range((len(list)-1)-i):
if list[j] < list[j+1]: #大的数往左边靠,返回第一个最大的数
list[j], list[j+1] = list[j+1], list[j]
return list[0] #输出数列第一个字符 []为从0开始计数
运行结果:
如果是要求排列,改为(这个max是函数名,是自定义的,可以随便,但是调用时也变了)
def pai_lie(list):
for i in range(len(list)-1):
for j in range((len(list)-1)-i):
if list[j] < list[j+1]: #大的靠左
list[j], list[j+1] = list[j+1], list[j]
return list
print(pai_lie(list))
突发奇想…
list = [2, 378, 45, 32, 32, 10, 87, 378, 0, 6, 43634, 450]
def how_many_lie(list):
for n in range(len(list)):
if n >= 0:
None
return n+1
def sum(list):
s = 0
for i in range(len(list)):
s = s + list[i]
# for n in list: #第二种写法
# s = s + n
return s
def S_nl(n):
m = 1
r = 1
if n < 0:
return '输入有误!!!'
elif n == 0:
return 0
else:
while m <= n:
r = r * m
S = r
m += 1
return S
初始值r = 0,如果不重新赋值,那么最后return = 0
这里输出的是最后的值,所以return 放在跳出while循环的位置就行,例如:
print(S_nl(10))
若有错误,请欢迎大家在下方指出,谢谢—