函数的作用
Python第四阶段
洗衣服的过程
返回值
a = input()
def Sum(a,b):
#将a和b参数进行相加,并将结果返回到调用程序的地方
return a + b
#将计算结果保存在c变量中进行使用
c = Sum(4,5)
print(c)
def name(first_name,last_name):
full_name=first_name+" "+last_name
return full_name
print(name("zhang","san"))
#运行结果:
#zhang san
请设计一个绝对值absolute( )函数,如果输入-5返回5,如果输入5返回5
字典类型
还是上面的例子,返回一个表示人的字典:
def name(first_name,last_name,):
full_name={"first":first_name,"last":last_name}
return full_name
print(name("zhangsan","lisi"))
#运行结果为:
#{'first': 'zhangsan', 'last': 'lisi'}
列表类型
函数传递列表,传递列表在函数中很有用,在列表中包含数字、名字甚至更复杂的对象,下面举一个例子:
def f(names):
for i in names:
print("Hello"+" "+i+"!!")
f(["zhangsan","lisi","wangwu"])
#运行结果:
#Hello zhangsan!!
#Hello lisi!!
#Hello wangwu!!
None类型
如果在所设计的函数中,没有return[返回值]
,那么Python在编译时会自动返回处理成return None
,相当于返回了一个None
def greeting(name):
print("Hi",name,"Good Morning")
ret_value = greeting("Nelson")
print("greeting()返回值",ret_value)
print(ret_value,'的类型:',type(ret_value))
使用return返回函数数据时,也允许返回多个数据,各个数据用逗号进行分开即可
def mutifunction(x1,x2):
addresult = x1 + x2
subresult = x1 - x2
mulresult = x1 * x2
divresult = x1 / x2
return addresult,subresult,mulresult,divresult
#利用同时赋值进行接收
a,b,c,d = mutifunction(2,3)
#利用单个变量进行接收
e = mutifunction(2,3)
print(a)
print(e)
请扩展一下该案例,新添加一个参数,该参数用于控制是做加法、减法、乘法和除法运算
请扩展一个该案例,让它可以重复执行,直到输入运算是q时,程序才执行结束
对于变量来说,我们需要去区分清楚变量的作用域,作用域指的是这个变量能够使用的范围有多大
根据变量不同的作用域(作用范围),将变量分成两种类型局部变量
和全局变量
#words是一个全局变量
words = 'hello,world'
def f():
#w是一个局部变量
words = "hello"
print(words)
f()
#运行结果:
#hello
#words是一个全局变量
words = 'hello,world'
def f():
#w是一个局部变量
w = "hello"
print(w)
f()
print(words)
当程序运行时,首先会找程序内部有没有局部变量,如果有,则调用,如果没有,才会去调用全局变量
#words是一个全局变量
words = 'hello,world'
def f():
#w是一个局部变量
w = "hello"
print(w)#words是一个全局变量
words = 'hello,world'
def f():
#w是一个局部变量
words = "hello"
print(words)
f()
#运行结果:
#hello
f()
print(words)
当程序运行时,首先会找程序内部有没有局部变量,如果有,则调用,如果没有,才会去调用全局变量
#words是一个全局变量
words = 'hello,world'
def f():
#w是一个局部变量
print(words)
f()
#运行结果:
#hello,world
判断下面程序的输出结果
#words是一个全局变量
words = 'hello,world'
def f():
print(words)
def a():
words = 'world'
print(words)
a()
f()
如果在函数当中,直接对全局变量进行赋值,则相当于是新建了一个同名的局部变量,是不能正常进行修改的,如果在函数当中,想要对全局变量的内容进行修改,则需要使用global关键字
word = "hello,world"
def f():
#声明,要使用的是全局变量word,而不是新建一个局部变量
global word
word = "hello"
f()
print(word)
写出一个函数,判断两个字符串是否可以通过改变字母的顺序,变成一样的字符串。
答案
def anagram(s,t):
set_s = [0] * 256
set_t = [0] * 256
for i in range(len(s)):
set_s[ord(s[i])] += 1
for i in range(len(t)):
set_t[ord(t[i])] += 1
for i in range(256):
if set_s[i] != set_t[i]:
return False
return True
s = 'abcd'
t = 'dcba'
print(anagram(s,t))
编写一个函数,参数是给定一个正整数,输出它的补数。补数是将原数字的二进制形式按位取反,再转回十进制后得到的新数
答案
def number(n):
result = ""
temp = bin(n)[2:]
for i in range(len(temp)):
if temp[i] == '1':
result += '0'
else:
result += '1'
return int(result,2)
print(number(5))
绘制一个满天星图