Python:函数和数据类型转换

一、函数的返回值、文档以及参数的相关知识介绍

不多说,直接上代码哈哈

#函数的参数:

def MySecondFunction(name):
    print (name + "哥哥")    #name是形参,'谢谢你'是实参
MySecondFunction('谢谢你')

def add(name1,name2):
    result = name1 + name2
    print (result)
add(1,2)   


#函数的返回值
def add(name1,name2):
    return (name1 + name2)
print (add(5,6))   
    

#函数的文档:对函数内容的介绍:

def MyFirstFunction1():
    'gegemeimei'
    print ("谢谢你哥哥")
print (MyFirstFunction1.__doc__)


#关键字参数:不会出现顺序乱了

def SaySome(name,words):
    print (name + "就是" + words)
SaySome('弟弟','达达')

def SaySome(name,words):
    print (name + "就是" + words)
SaySome('达达','弟弟')

def SaySome(name,words):
    print (name + "就是" + words)
SaySome(words = '达达',name = '弟弟')

#默认参数

def SaySome(name = '弟弟',words = '达达'):
    print (name + "就是" + words)
SaySome()  #不会报错

def SaySome(name = '弟弟',words = '达达'):
    print (name + "就是" + words)
SaySome('哥哥')

#收集参数

def test(*params):
    print ('参数的长度是:',len(params))
    print ('第二个参数是:',params[1])
test(1,2,3,'哥哥','sister',67,89)

def test(*params,exp):
    print ('参数的长度是:',len(params),exp)
    print ('第二个参数是:',params[1])
test(1,2,3,'哥哥','sister',67,89,exp = 8)

#函数(有返回值)与过程(无)python只有函数没有过程

def hello():
    print ("Hello,my brother!")
temp = hello()
print (temp)      #也会返回None
print (type(temp))

#python可以返回多个值,用列表来打包,或者是元组,不用列表的中括号

def back():
    return (print ([1,2,34,56]))
back()

#函数变量的作用域问题

#局部变量(只是在某个函数里的)和全局变量
#记住:执行完一个函数之后,那个函数会被python自动清空
#若试图在函数里修改全局变量,那么python会自动设置一个和那个全局变量名字一样的局部变量
#这个局部变量和全局变量互不相干(old_price),但是还是有办法在函数里修改全局变量的
count = 10
def myfun():
    count = 5
    print (count)
myfun()
print (count)

二、内嵌函数和闭包


#内嵌函数和闭包
#global关键字
count = 10
def myfun():
    global count
    count = 5
    print (count)
myfun()
print (count)


#内嵌函数:在函数内部再建立一个函数,python支持嵌套

def fun1():
    print ("fun1()正在被调用...")
    def fun2():
        print ("fun2()正在被调用...")
    fun2()
fun1()


def outer():
    def inner():  #可以理解为内部函数
        print("inner")  
    print("outer")
outer()
 
#输出结果:outer


def outer():
    def inner():
        print("inner")
    print("outer")
    inner()
 
outer()
 
#输出结果:outer、inner

#闭包
def FunX(x):
    def FunY(y):
        return (print (x * y))
    FunY(5)
    return x
print (FunX(8))


    #return (print (FunY))
#i = FunX(8)
#print(i(5))

三、分支和循环

用实际题目来体会:按照100分制,实现score>90:A, 80<score<90:B, 60<score<80:C, score<60:D

time = 0
while 1:
    score = int(input('请输入一个分数:'))      #循环体
    time +=1
    if time >= 2:
        print ('\n太多了,我累了,让我歇一会吧\n')
        break
    else:
        if 100 >= score >= 90:
            print ('A')
        elif 90 > score >= 80:
            print ('B')
        elif 80 > score >= 60:
            print ('C')
        elif 60 > score >=0:
            print ('D')
        else:
            print ('输入错误!')

在这里插入图片描述

#条件表达式(三元操作符)
x,y = 4,5
if x < y:
    small = x
else:
    small = y
print (small)

#例子可以改进为:

x,y = 4,5
small = x if x < y else y
print (small)


#断言(assert)比如:assert 3 > 4  运行之后会显示AssertionError
#一般来说我们可以用他在程序中置入检查点,当需要确保程序中的某个条件一定为真才能让程序正常工作的话,assert关键字就非常有用了
  

#for循环

favorite = '哥哥'
for i in favorite:
    print (i,end=' ')

member = ['哥哥','爸爸','妈妈','弟弟','姐姐妹妹']
for each in member:
    print (each,len(each))


#range  不包括5
i = range (5)
print (i)

j = list(range(5))
print (j)

for k in range(5):
    print (k)
    
for h in range(2,6):	#不包括6
    print (h)

for g in range(1,10,2):    #2表示每一次递增的是2
    print (g)


#break和continue

for i in range(10):
    if i%2 != 0:
        print (i)
        break
    i += 2
    print (i)
    
for i in range(10):
    if i%2 != 0:
        print (i)
        continue    #不会循环i += 2,会跳到for,再次判断
    i += 2
    print (i)

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

四、Python的数据类型转换

#整型,浮点,e记法,布尔类型

#e记法
a = 0.0000000000000023
print (a)
print (2+3)
print (1.3e26)

#类型转换
#字符型--整型
a = '520'        #引号表示其为字符串
b = int(a)
print (b)

#浮点型--整型
a = 5.99
b = int(a)
print (b)          #python直接砍尾巴,不会四舍五入

#整型--浮点型
a = 520
b = float(a)
print (b)
c = str(1234)
print (c)

a = 2
if a == 2:print (a);print('print me');print (1)


在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/weixin_45870610/article/details/105241301