21李刚python第四章

import random
#希望该函数返回3个随机的大写字符
def test():
#生成3个随机的大写字符
c1 = chr(random.randint(65,90))
c2 = chr(random.randint(65,90))
c3 = chr(random.randint(65,90))

#以元组形式返回
return c1,c2,c3

r = test() #r就是一个元组
print®
print(test()) #元组
#多返回值函数,即可用多个变量接受返回值,也可用单个变量接受返回值
#多个变量,执行自动解包
c1,c2,c3 = test()
print(c1)
print(c2)
print(c3)
c1, *c2 = test()
print(c1,c2)

def info (name,age,height)
print(“name”,name)
print(“age”,age)
print(“height”,height)
#位置参数
info(‘fkjava’,24,183)
#关键字参数(命名参数)—不需要顺序
#优势:1、不需要按顺序2、可读性更高
info(age = 30,name = ‘dsad’,height = 178)
#混合使用
#混合使用的错误:关键参数必须位于位置参数的后面
#为参数指定默认值之后,调用时候可省略该参数指定参数值(该参数将会使用默认值)
#如果你希望省略给前面的参数指定参数值,后面的参数应该用关键字参数来传入参数值

#books参数支持收集,它可接受多个参数值
def test(num,books):
print(‘num’,num)
print(“books”,books)
#将多个值自动封装成元组
test(5,‘fkjava’,‘crazyit’,‘wawa’)
#如果你要为参数收集之后的参数传入参数值,需要用关键字参数
#否则所有参数都会被参数收集成元组
#每个函数只能有一个参数支持普通的参数收集
#如果python支持在一个函数定义多个支持参数收集的参数,那么python将搞不清楚谁来收集参数

def test(a,b):
print(a)
print(b)
vals = (20,40)
#调用函数时,python不会对元组自动解包
#默认情况下,元组是一个整体
#*对元组进行解包
test(*vals)
#用字典的逆向收集,以关键字参数的形式为参数传入参数值

#locals是获取当前范围的所有局部变量
#因此全局范围调用locals(),它返回全部的全局变
(global () name)

def foo():
def bar():
#bar表视函数本身(函数也相当与一个值,是function类型的值)
return bar
#局部函数只在它所在封闭函数内有效
r = foo()
r()
foo()()

#默认情况下,局部函数再次定义局部变量,此时局部变量就会hide 函数内的局部变量

#对于递归函数来说,必须保证在某个条件下,函数不再调用自身,递归结束

import functools
def fn(x,y)
def fract (n)
if n < 1:
print(‘n不能小于1’)
return
else:
#retun functools.reduce(fn,range(1,n+1))
#lambda x,y:xy的本质就是一个函数
return functools.reduce(lambda x,y:x
y,range(1,n+1))

matrix = [[1,2,3,4],[5,6,7,8],[9,10,11,12]]
def printmatrix(m):
#是列表嵌套列表,因此ele也是列表
for ele in m:
#打印一行
for e in ele:
print("%2d" % e, end= ’ ‘)
print(’ ')

def transformmatrix(m):
#m[0]有几个元素,说明原矩阵有多少列
#列转成了行
rt =[[] for i in m[0]]
for ele in m:
for i in range(len(ele)):
#rt[i]代表新矩阵的第i行
#ele[i]代表原矩阵当前行的第i列
rt[i].append(ele[i])
return rt

def transformmatrxi(m):
#zip([1,2,3,4],[5,6,7,8],[9,10,11,12]) -> (1,5,9),…
#逆向参数收集,将矩阵中多个列表转换成多个参数,传给zip
return list(zip(*m))

def tansformmatixx(m):
#使用numpy的transpose()函数
import numpy
return numpy.transpose(m).tolist()
printmatrix(matrix)
printmatrix((transformmatrxi(matrix))
printmatrix((transformmatrixx(matrix))
printmatrix((transformmatrix(matrix))

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值