向内看自己,永远看自己的进步!
好!开始!
五、函数
def定义函数,函数分为有无参数、有无返回值。函数先后顺序执行,先定义函数在调用函数。
函数的本质是一个地址,函数的参数可以为另一个函数,函数作为变量时不带括号。还可以利用返回值作为参数。带括号的函数的类型是函数的返回值类型。函数可以有多个返回值。return之后的语句不会被执行。
位置参数和名称参数。按照顺序输入参数,或指定名称输入参数。数字,字符串当作参数传递时,原来的数字,字符串不会改变。
全局变量和局部变量。调用全局变量时,需要改变全局变量的值或者在函数内声明全局变量利用global进行修饰,不加global修饰则全局变量直接调用即可。在函数嵌套时,内层函数需要调用外层函数声明的局部变量,先利用nonlocal进行修饰。否则相当于声明一个新的变量。
#判断120-150之前,每个数拆分为质数相加和
ulimit = 0#定义上界,利用globcl进行改变
llimit = 0#定义下界,利用globcl进行改变
def judge(num):#判断是否为质数
if num <= 0 or num == 1:
return False
elif num == 2 or num == 3:
return True
else:
flag = True
for i in range(2,num):
if num%i == 0:
flag = False
break
return flag
def classify(num):#得到和为num的两个数
for i in range(1,num):
if judge(i) and judge(num - i):
print(str(num)+"的质数相加为"+str(i)+" "+str(num - i))
def major():#得到范围内的数
global ulimit,llimit
ulimit = 151
llimit = 120
for i in range(llimit,ulimit):
classify(i)
major()
函数参数为(*num),表示输入的是一个序列,装多个。
def newadd(*num): #*num代表一个序列,装多个
lastnum=0
for data in num:#data 遍历每一个插入的数据
lastnum+=data
print(lastnum)
newadd(1)
newadd(1,2)
newadd(1,2,3)
六、常用的数据类型
元组、集合、列表和字典
集合set,用大括号进行表示{}。集合中的元素不可以重复,集合不支持索引。
set1 = {1,2,3,4,5}#数据不可以重合
set2 = {2,2,5,8,9}
print(set1)
print(set2)
print(type(set1))
for data in set1:
print("------",data)#集合不能索引
print(set1-set2)#差集,set1有set2没有
print(set2-set1)#差集,set2有set1没有
print(set1 | set2)#并集
print(set1 & set2)#交集
print(set1 ^ set2)#set1,set2并集-交集
元组tuple,用小括号进行表示()。元组中的元素不可以改变,元组支持索引。
mytuple = (2,3,4,5,6)
mytuple1 = (1,)#python特例(1)是int、()(1,)是元组
print(mytuple)
print(type(mytuple))
print(len(mytuple))#得到元组的长度
for i in mytuple: #遍历元组中的元素
print(i,end=" ")
print("")#换行
for i in range(len(mytuple)):#通过下标遍历元组中的元素
print(mytuple[i],end=" ")
print("")
#mytuple[0]=10 #tuple不可以修改内部的值
print(mytuple[:])#输出全部元素
print(mytuple[0:4])#索引截取,默认的情况不会包含最后一个
print(mytuple[:4])#不输入开头,默认的情况不会包含最后一个
print(mytuple[2:-1])#从后往前索引为-1,-2,-3,...
print(mytuple[2:])#不输入结尾
print(mytuple*2)#复制两次
print(mytuple+mytuple[2:4])#元组相叠加,
列表list,用中括号进行表示[]。列表与元组不同的就是列表中的元素可以改变,列表支持索引。
mylist =[1,2,3,4,5,6,7]
print(mylist)
print(len(mylist))#列表,容纳多个数据
for data in mylist: #循环遍历列表
print("------",data)
for i in range(len(mylist)): #按照下标遍历
print("------", mylist[i])
mylist[1]=10 #list可以修改
print(mylist[1:7])#索引截取
print(mylist[4:-1])
print(mylist[:]) #全部
print(mylist[:4]) #默认不输入开头,不包含最后一个索引
print(mylist[4:]) #默认不输入结尾,包含最后一个索引
print(mylist*2)#复制两次
print(mylist+mylist[4:6])#列表相叠加
字典dict,用大括号进行表示{}。字典是有自己的特点,有<key,value>。
mydict={"abcdefg":10, "123456":2,"xyzhjk":3,"123456":10}
print(type(mydict))#dict是set的强化版 左边是key,不允许重复,右边value重复
print(mydict)
print(mydict["abcdefg"]) #根据key取出value
print(mydict.values()) #值
for key in mydict: #遍历字典
print(key,mydict[key])
在努力一点点!