python函数作用域与闭包_python基础-08-内置函数、作用域、闭包、递归

python基础-内置函数、作用域、闭包、递归

1.常见的内置函数

常见的内置函数:

查看内置函数:

print(dir(__builtins__))

常见函数

type() 数据类型

print() 打印

help()查看方法详细用法

id() 查看内存地址

range() 求值范围

len 求长度

min 求最小值

max 求最大值

sorted 排序

reversed 反向

sum 求和

abs 取绝对值的

round 四舍五入

进制转换函数:

bin() 转换为二进制

oct() 转换为八进制

hex() 转换为十六进制

ord() 将字符转换成对应的ASCII码值

chr() 将ASCII码值转换成对应的字符

补充:

#1.enumerate() #返回一个可以枚举的对象

li=["a","c","b"]

>>> li

['a', 'c', 'b']

>>> type(enumerate(li)) #枚举类型

>>> list(enumerate(li))

[(0, 'a'), (1, 'c'), (2, 'b')]

#2.filter() #过滤器

li=[1,2,3,6,7,8]

def test(x):

return x>5

>>> list(filter(test,li)) #过滤大于5的

[6, 7, 8]

#3.map() #加工。对于参数iterable中的每个元素都应用fuction函数,并返回一个map对象

li=[1,2,3,6,7,8]

>>> list(map(lambda x:x+1,li)) #所有元素加上1

[2, 3, 4, 7, 8, 9]

#4.zip() #将对象逐一配对

>>> li=[1,2,3]

>>> li2=["a","b","c"]

>>> list(zip(li,li2))

[(1, 'a'), (2, 'b'), (3, 'c')]

>>> dict(zip(li,li2)) #转化成字典

{1: 'a', 2: 'b', 3: 'c'}

2.函数内变量的作用域

变量的作用域与其定义的方式有关:

局部变量: 变量在函数内部定义,则变量的作用域在函数内部

全局变量:变量在函数外部定义的,则变量的作用域是全局

a=3#全局变量

def test():

b=5 #局部变量

#global:用来在函数或其他局部作用域中,声明全局变量。 (作用于全局)

#第一种:函数内部改变全局变量

a=3#全局变量

def test():

global a#全局声明

a+=1#需要修改全局变量,需要加global声明

print(a)

#第二种:函数外调用函数内部变量

def test():

global b

b=4

b+=1

print(b)

>>> test()

5

>>> b

5

#nonlocal:用来在函数或其他作用域中,声明外层(非全局)变量。(作用于局部)

#内切函数

def test():

c=2

print("外层",c)

def test1():

d=5

print("内层",d)

test1()

#nonlocal声明

def test():

c=2

print("外层C=",c)

def test1():

d=5

print("内层D=",d)

nonlocal c #内层局部修改外层局部的时候

c+=1

print("内层C=",c)

test1()

使用global情况:

全局变量可以在函数内部访问,但是不能改变

如果在函数内部想修改全局变量,可以用 global 来修饰变量

局部变量只能在局部进行访问和修改。

如果在函数外部,想访问局部变量,也可以用 global,将局部变量声明为全局变量

使用nonlocal的情况:

当里层局部,需要修改外层局部时,需要使用nonlocal。 (如嵌套函数)

总结:

global :函数中,需要修改全局变量时,用global

nonlocal:当里层局部,需要修改外层局部时,需要使用nonlocal。

(局部调用局部,使用nonlocal)

3.内嵌函数和闭包

#内嵌函数: 在函数内部定义函数,就是函数里面嵌套函数

闭包:一个闭包就是你调用了一个函数A,这个函数A返回了一个函数B给你。这个返回的函数B就叫做闭包。(但是B函数,一定要是嵌套在函数A里面) 。你在调用函数A的时候传递的参数就是自由变量。

总结:一个函数里面嵌套一个函数,调用外面这个函数,就返回里面嵌套的函数。

#闭包

def test(name):

def test1(age):

print("name=%s,age=%s"%(name,age))

return test1

>>> test("a")("15")

name=a,age=15

4.递归函数

递归: 函数调用自己本身

'''

例题:有5个人坐在一起,问第五个人多少岁?他说比第4个人大2岁。

问第4个人岁数,他说比第3个人大2岁。

问第三个人,又说比第2人大两岁。

问第2个人,说比第一个人大两岁。

最后问第一个人,他说是10岁。

请问第五个人多少岁?

'''

#递归函数

def age(n):

if(n==1):

return 10

else:

return age(n-1)+2

a=age(5)

递归的核心:

1.递归推导式

2.递归终止条件

5.python3函数大全

#1.abs() 绝对值或复数的模

abs(-1) >>> 1

#2.all() 接受一个迭代器,如果迭代器的所有元素都为真,那么返回True,否则返回False

all([1,2,3]) >>> True

#3.any() 接受一个迭代器,如果迭代器里有一个元素为真,那么返回True,否则返回False

any([0,0]) >>> False

#4.ascii() 调用对象的__repr__()方法,获得该方法的返回值

ascii('ab') >>> "'ab'"

#5.bin() 将十进制转换为二进制

bin(10) >>> '0b1010'

#6.bool() 测试一个对象是True还是False

bool([]) >>> False

#7.bytearray() 字节数组 字节是计算机的语言,字符串是人类语言,它们之间通过编码表形成一一对应的关系

a = 'python'

>>> bytearray(a,'utf8')

bytearray(b'python')

>>> list(bytearray(a,'utf8'))

[112, 121, 116, 104, 111, 110]

>>> b'python'[0]

112

#8.bytes() 将一个字符串转换成字节类型

st = 'python'

a = bytes(st,encoding='utf-8')

>>> a

b'python'

#9.callable() 判断对象是否可以被调用,能被调用的对象就是一个callables对象,比如函数

callable(str) >>> True

#10.chr() 查看十进制数对应的ASCII字符

chr(10) >>> '\n'

#11.classmethod() 用来指定一个方法为类的方法,由类直接调用执行,只有一个cls参数,执行类的方法时,自动将调用该方法的类赋值给cls.没有此参数指定的类的方法为实例方法

#12.compile() 将字符串编译成python能识别或可以执行的代码,也可以将文字读成字符串再编译

compile(source, filename, mode, flags=0, dont_inherit=False, optimize=-1)

'''

将source编译为代码或者AST对象。代码对象能过通过exec语句来执行或者eval()进行求值。

参数source:字符串或者AST(abstract syntax trees)对象。

参数filename:代码文件名称,如果不是从文件读取代码则传递一些可辨认的值。

参数model:指定编译代码的种类。可以指定'exec', 'eval', 'single'。

参数flag和dont_inherit:这两个参数为可选参数

'''

st = 'python'

r = compile(st,'','exec')

>>> r at 0x000001841735E810, file "", line 1>

#13.complex() 创建一个值为real + imag * j的复数或者转化一个字符串或数为复数。如果第一个参数是字符串,则不需要指定第二个参数

complex(1,2) >>> (1+2j)

complex('12') >>> (12+0j)

#14.copyright() 版权

#15.credits() 支持

#16.delattr() 删除对象的属性

#17.dict() 创建数据字典

dict(a=1) >>> {'a': 1}

#18.dir() 不带参数时返回当前范围内的变量,方法和定义的类型列表,带参数时返回参数的属性,方法列表

#19.divmod() 分别取商和余数

divmod(5,2) >>> (2, 1)

#20.enumerate() 返回一个可以枚举的对象,该对象的next()方法将返回一个元组

li = ['a','b','c']

>>> enumerate(li)

>>> list(enumerate(li))

[(0, 'a'), (1, 'b'), (2, 'c')]

#21.eval() 1.将字符串str当成有效的表达式来求值并返回计算结果2.取出字符串中内容

>>> eval("{'a':1}")

{'a': 1}

>>> eval('1 + 2 + 3')

6

#22.exec() 执行字符串或complie方法编译过的字符串,没有返回值

>>> st = '''

z = 4

a = x + y + z

print(a)

'''

>>> exec(st,{'x':0,'y':0},{'y':10,'z':10})

14

>>> st = '''

a = x + y + z

print(a)

'''

>>> exec(st,{'x':0,'y':0},{'y':10,'z':10})

20

#23.exit() 退出

#24.filter() 过滤器,构造一个序列,等价于[ item for item in iterables if function(item)],在函数中设定过滤条件,逐一循环迭代器中的元素,将返回值为True时的元素留下,形成一个filter类型数据

'''

filter(function or None, iterable) --> filter object

参数function:返回值为True或False的函数,可以为None

参数iterable:序列或可迭代对象

'''

>>> filter(lambda x:x+1,[1,2])

>>> list(filter(lambda x:x+1,[1,2]))

[1, 2]

>>> filter(lambda x:x>10,[9,12])

>>> list(filter(lambda x:x>10,[9,12]))

[12]

#25.float() 讲一个字符串或整数转换为浮点数

>>> float(11)

11.0

#26.format() 格式化输出字符串,format(value, format_spec)实质上是调用了value的__format__(format_spec)方法

>>> format(12)

'12'

>>> format(12,'5d')

' 12'

#27.frozenset() 创建一个不可修改的集合

'''

frozenset([iterable])

set和frozenset最本质的区别是前者是可变的,后者是不可变的。当集合对象会被改变时(例如删除,添加元素),只能使用set,

一般来说使用fronzet的地方都可以使用set

'''

>>> frozenset([1,2,3])

frozenset({1, 2, 3})

#28.getattr() 获取对象的属性

'''

getattr(object, name[, default]) -> value

获取对象object名为name的特性,如果object不包含名为name的特性,将会抛出AttributeError异常;如果不包含名为name的特性

且提供default参数,将返回default。

参数object:对象

参数name:对象的特性名

参数default:缺省返回值

'''

#29.globals() 返回一个描述当前全局变量的字典

>>> st = 'python'

>>> globals()

{'__name__': '__main__', '__doc__': None, '__package__': None, '__loader__': , '__spec__': None, '__annotations__': {}, '__builtins__': , 'a': b'python', 'li': ['a', 'b', 'c'], 'i': 'zip', 'st': 'python', 'r': at 0x000001841735E810, file "", line 1>}

#30.hasattr() hasattr(object,name)判断对象object是否包含名为name的特性(hasattr是通过调用getattr(object,name))是否抛出异常来实现的

>>> hasattr(list,'pop')

True

#31.hash() 哈希值hash(object)注意:可哈希的即不可变数据类型,不可哈希即可变数据类型

'''

如果对象object为哈希表类型,返回对象object的哈希值。哈希值为整数,在字典查找中,哈希值用于快递比价字典的键。

两个数值如果相等,则哈希值也相等

'''

>>> hash('ab')

2766084925433962145

>>> hash(12)

12

#32.help() 返回对象的帮助文档

'''

调用内建的帮助系统,如果不包含参数,交互式帮助系统将在控制台启动。如果参数为字串,则可以是模块,类,方法等名称,并且帮助页面将会在控制台打印。参数也可以 为任意对象

'''

#33.hex() 将十进制转换为十六进制

hex(16) >>> '0x10'

#34.id() 返回对象的内存地址

>>> id(1)

1726850144

#35.input() 获取用户输入内容

>>> input('请输入:')

请输入:abc

'abc'

#36.int() 将一个字符串或数值转换为一个普通整数

'''

int(x=0) -> integer

int(x, base=10) -> integer

如果参数是字符串,那么它可能包含符号和小数点。参数base表示转换的基数(默认是10进制)。

它可以是[2,36]范围内的值,或者0。如果是0,系统将根据字符串内容来解析。

如果提供了参数base,但参数x并不是一个字符串,将抛出TypeError异常;

否则,参数x必须是数值(普通整数,长整数,浮点数)。通过舍去小数点来转换浮点数。

如果超出了普通整数的表示范围,一个长整数被返回。

如果没有提供参数,函数返回0

'''

>>> int('12')

12

#37.isinstance() 检查对象是否是类的对象,返回True或False

>>> isinstance('a',str)

True

#38.issubclass() 检查一个类是否是另一个类的子类。返回True或False issubclass(sub, super)

>>> issubclass(str,object)

True

#39.iter() 返回一个iterator对象

'''

iter(iterable) -> iterator

iter(callable, sentinel) -> iterator

'''

>>> a = iter([1,2,3])

>>> next(a)

1

>>> a = iter([1,2,3,4,5])

>>> b = iter(a.__next__,3)

>>> next(b)

1

>>> next(b)

2

>>> next(b)

Traceback (most recent call last):

File "", line 1, in

next(b)

StopIteration

#40.len() 返回对象长度,参数可以是序列类型(字符串,元组或列表)或映射类型(如字典)

>>> len([1,2,3])

3

#41.license() 软件的历史

#42.list() 列表构造函数

>>> list('abc')

['a', 'b', 'c']

#43.locals() 打印当前可用的局部变量的字典

>>> locals()

{'__name__': '__main__', '__doc__': None, '__package__': None, '__loader__': , '__spec__': None, '__annotations__': {}, '__builtins__': , 'a': , 'b': }

#44.map() 对于参数iterable中的每个元素都应用fuction函数,并将结果作为列表返回

'''

如果有多个iterable参数,那么fuction函数必须接收多个参数,这些iterable中相同索引处的元素将并行的作为function函数的参数。

如果一个iterable中元素的个数比其他少,那么将用None来扩展改iterable使元素个数一致。

如果有多个iterable且function为None,map()将返回由元组组成的列表,每个元组包含所有iterable中对应索引处值。

'''

>>> li = [1,2,3]

>>> a = map(str,li)

>>> a

>>> list(a)

['1', '2', '3']

#45.max() 返回给定元素里最大值

>>> max(1,2,3,4)

4

#46.memoryview() 本函数是返回对象obj的内存查看对象。所谓内存查看对象,就是对象符合缓冲区协议的对象,为了给别的代码使用缓冲区里的数据,而不必拷贝,就可以直接使用

>>> memoryview(b'aabc')

>>> list(memoryview(b'abc'))

[97, 98, 99]

#47.min() 返回给定元素里最小值 具体用法跟max()相同

>>> min([1,2,3,4])

1

#48.next() 返回一个可迭代数据结构(如列表)中的下一项

>>> a = iter([1,2,3,4])

>>> next(a)

1

#49.object() 获取一个新的,无特性(geatureless)对象。Object是所有类的基类。它提供的方法将在所有的类型实例中共享

#50.oct() 将十进制转换为八进制

oct(8) >>> '0o10'

#51.open() 打开文件 open(file, mode='r', buffering=-1, encoding=None, errors=None, newline=None, closefd=True, opener=None)

#52.ord() 查看某个ascii对应的十进制数

ord('a') >>> 97

#53.pow() 幂函数pow(x, y, z=None, /) 幂函数,表示取x得y次幂,如果存在第三个参数z,则表示乘方结果对第三个参数取余

>>> pow(2,8)

256

>>> pow(2,8,3)

1

#54.print() 输出函数

#55.property() 类方法可以当作属性调用

#56.quit() 退出

#57.range() 根据需要生成一个指定范围的数字,可以提供你需要的控制来迭代指定的次数

>>> list(range(10))

[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

#58.repr() 将任意值转换为字符串,供计时器读取的形式

#59.reversed() 反转,逆序对象

#60.round() 四舍五入

>>> round(1.556,2)

1.56

#61.set() 将对象转换成集合

#62.setattr() 与getattr()相对应

#63.slice() 切片功能

>>> li = [1,2,3,4,5,6]

>>> slice(1,3,li)

slice(1, 3, [1, 2, 3, 4, 5, 6])

#64.sorted() 排序

>>> li

[1, 2, 3, 4, 5, 6]

>>> sorted(li,key = int,reverse = True)

[6, 5, 4, 3, 2, 1]

#65.staticmethod() 方便将外部函数集成到类体中,美化代码结构,重点在不需要类实例化的情况下调用方法

#66.str() 将字符类型/数值类型等转换为字符串类型

>>> str(12)

'12'

#67.sum() 求和

>>> sum([1,2])

3

#68.super() 调用父类的方法

#69.tuple() 元组构造函数

>>> tuple([1,2,3])

(1, 2, 3)

#70.type() 显示对象所属的类型

>>> type(1)

#71.vars() 本函数是实现返回对象object的属性和属性值的字典对象。如果默认不输入参数,就打印当前调用位置的属性和属性值,相当于locals()的功能。如果有参数输入,就只打印这个参数相应的属性和属性值

>>> class ob:

i = 1

>>> vars(ob)

mappingproxy({'__module__': '__main__', 'i': 1, '__dict__': , '__weakref__': , '__doc__': None})

>>> a = ob()

>>> vars(a)

{}

#72.zip() 将对象逐一配对

>>> li = [1,2,3]

>>> tu = ('a','b','c')

>>> zip(tu,li)

>>> list(zip(tu,li))

[('a', 1), ('b', 2), ('c', 3)]

>>> dict(zip(tu,li))

{'a': 1, 'b': 2, 'c': 3}

如何获取的:

>>> li = dir(__builtins__)

>>> li = li[li.index('abs'):]

>>> for i in range(len(li)):

print('#%s.%s()'%(i+1,li[i]))

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/507123.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

linux 配置trac界面显示为中文,安装back|track 5 r3并配置中文界面简单教程

最近更新:29th 4月, 2013最近对bt比较感兴趣,看到不少朋友说,bt早都出10了11了我说我怎么就不知道。官方网站打开一看,果然还是BT5,不过已经r3了。听说现在BT5的支持已经很好了,于是也就下载了一个&#xf…

ue4玻璃材质_UE4-材质

本文中,我们将首先讨论基于物理的渲染,什么是材质域,什么是材质,什么是材质实例,什么是主材质,我们将讨论材质的一些建议和禁忌。最后,我们将了解一些材质概念,你可以将其用于各类项…

suse linux11 改ip,suse11如何修改hostname[Linux基础]

1.修改当前的hostname可以用hostname myname此时只是修改了内存内部的,下次启动又恢复了2.机器在启动的时候会调用/etc/rc.d/boot.localnet脚本看后面的附录,这个脚本会判断当前的$HOSTNAME变量是否设置,没有设置就会读取/etc/HOSTNAME来设置…

为啥linux分区是nvme0n1,NAS 篇五:尝试达成最终目标: 黑裙+万兆网卡+Nvme 存储空间的实现与测试...

NAS 篇五:尝试达成最终目标: 黑裙万兆网卡Nvme 存储空间的实现与测试2020-01-18 18:49:2346点赞248收藏80评论创作立场声明:1. 本系列文章讨论NAS与局域网, 请小编高抬贵手不要分类到无线网络去2. 如果你读了开头, 有“…

检查虚ip跟实ip之间网络问题_虚电路有哪些特点 虚电路原理介绍【详解】

虚电路,虚电路的特点,虚电路的原理是什么?虚电路是交换网络(ATM、帧中继、IP或因特网)上两个终端站之间的点对点通信链路。虚电路的设计是在交换网络上仿真物理电路的特性。家中与电话公司中心局之间的模拟电话线路就是物理电路的例子。它是专用于单个呼叫的物理线路,没有其他…

linux 常用参数,Linux 常用命令及参数整理

1.. cat -t2.. ls -t -u3..uniq -c-u -d4..sort -k-u -t -f -n5.. tail head6.. rpm -q -ql -qf -qc7.. find8.. sz 从服务器上下载文件9.. du 和 df 命令区别1.. cat-t 相当于 -vT 作用是显示文件中的tab符号,通常和-v参数一起使用。[rootwatchout2 ~]# cat -t…

固态硬盘上安装centos_自己动手丰衣足食 手把手教你安装M.2固态硬盘

为了追求更快的速度、更好的性能,很多用户都为电脑升级或者更换了M.2固态硬盘。但是,M.2固态硬盘买好了,安装对大部分人来说却是个难题……因此,好多老铁通过微信后台联系小星,想了解一下M.2固态硬盘的安装教程。OK&am…

linux美元符号切换为井号,struts2 (# % $)井号,百分号,美元符号的含义和使用方法举例...

struts2 (# % $)井号,百分号,美圆号的含义和使用举例。struts2 OGNL,struts2 表达式语言,OGNL(Object-Graph Navigation Language),可以方便地操作对象属性的开源表达式语言。本文提要:(1)Struts2 #,表达式…

创建txt文件指令_Linux云计算教程全套视频合集:WORKDIR 指令讲解

WORKDIR 指令用于声明当前的工作目录&#xff0c;以后各层的当前目录就被改为指定的目录。格式为 WORKDIR <工作目录路径>。如该目录不存在&#xff0c;WORKDIR 会帮你建立目录。再次强调&#xff01;不要以为编写 Dockerfiel 是在写 shell 脚本。下面是一个错误示例&…

linux通过yum安装nginx,Linux下yum安装nginx教程

本文教程为大家分享了linux下yum安装nginx的详细过程&#xff0c;供大家参考&#xff0c;具体内容如下第一步&#xff0c;在/etc/yum.repos.d/目录下创建一个源配置文件nginx.repo&#xff1a;cd /etc/yum.repos.d/vim nginx.repo填写如下内容&#xff1a;[nginx]namenginx rep…

python怎么写出来的_如何写出优雅又地道的Python代码?【转载】

在Python社区文化的浇灌下&#xff0c;演化出了一种独特的代码风格&#xff0c;去指导如何正确地使用Python&#xff0c;这就是常说的pythonic。一般说地道(idiomatic)的python代码&#xff0c;就是指这份代码很pythonic。Python的语法和标准库设计&#xff0c;处处契合着pytho…

linux awk if 多个条件,linux shell awk 流程控制语句(if,for,while,do)详细介绍

在linux awk的 while、do-while和for语句中允许使用break,continue语句来控制流程走向&#xff0c;也允许使用exit这样的语句来退出。break中断当前正在执行的循环并跳到循环外执行下一条语句。if 是流程选择用法。 awk中&#xff0c;流程控制语句&#xff0c;语法结构&#xf…

vba 自动排序_给VBA字典键值排序,并提取需要的数据

未知的领域很广、风景很美&#xff0c;不要蜷缩在一小块自认为天堂的世界里。待到暮年时安于自欺欺人&#xff0c;要努力提高自己&#xff0c;学习是一件很辛苦的事。要有一颗充满生机的心&#xff0c;把握现在&#xff0c;这才是进取。机会总在等待中出现&#xff0c;越是有意…

linux 带缓存的fwrite,文件IO编程之(六):基于流缓冲 fopen,fwrite,fput

标准IO开发前面分析的文件IO编程都是基于文件描述符的。这些都是基本的IO控制&#xff0c;是不带缓存的。这里要讨论的IO操作是基于流缓冲的&#xff0c;它是符合ANSIC的标准IO处理。标准IO提供流缓冲的目的是尽可能减少使用read和write调用的数量。标准IO提供了3种类型的缓冲存…

vba 提取 json某个值_利用VBA字典,提取两列数据的重复值

大家好&#xff0c;今日我们继续讲解VBA数组与字典解决方案&#xff0c;今日讲解第52讲&#xff1a;利用字典&#xff0c;提取两列数据重复值。有人讲:字典是VBA中最为精华的部分,持这种观点的人肯定有自己的道理,确实,利用字典可以给我的代码带来很大的方便之处,今日我讲解的是…

Linux中存储相关的命令,Linux存储管理命令与HAB相关命令

首先了解Linux中的设备命名规则&#xff1a;在安装和使用Linux的过程中&#xff0c;您必然会接触到不少像hda1、ttyS0、eth0这样的设备名称。在Linux中&#xff0c;每个设备必须在它的驱动程序控制下运行&#xff0c;驱动程序则与/dev目录下的特殊文件联系在一起&#xff0c;尽…

红外倒车雷达原理图_硅光电倍增管 (SiPM) 直接飞行时间 (dToF) 激光雷达平台为工业测距应用提供现成的设计...

点击蓝字关注我们请私信我们添加白名单如果您喜欢本篇文章&#xff0c;欢迎转载&#xff01;推动高能效创新的安森美半导体 (ON Semiconductor&#xff0c;美国纳斯达克上市代号&#xff1a;ON)&#xff0c;推出了由该公司硅光电倍增管 (SiPM) 技术实现的单点直接飞行时间 (dTo…

linux中nslookup命令功能,nslookup

a,最简单的方法[rootrudder ~]# nslookup baidu.comServer: 8.8.8.8Address: 8.8.8.8#53Non-authoritative answer:Name: baidu.comAddress: 123.125.114.144Name: baidu.comAddress: 220.181.111.85Name: baidu.comAddress: 220.181.111.86nslookup&#xff0c;交互方式&#…

用c语言求最大公约数的流程图,如何用c语言求最大公约数和最小公倍数

ag_cd(m,n);if (m>n) //最小公倍数较大的数*(较小的数/最大公约数){bn;b/a;return m*b;}else{bm;b/a;return n*b;}}main(){int p,r,n,m,temp;printf("Please enter 2 numbers n,m:");scanf("%d,%d",&n,&m);//输入两个正整数.if(n在m中.{tempn;n…

visio图标_弱电间机柜原型图整理,可编辑!(Excel,visio,CAD)

有朋友问到机柜原型图&#xff0c;这个我们在弱电vip技术群里面也有朋友提到过&#xff0c;今天我们就整理了弱电系统中常用的机柜原型图&#xff0c;有Excel&#xff0c;visio&#xff0c;CAD版本&#xff0c;可以修改编辑&#xff01;1、Excel机柜原型图(可编辑)机柜布局-1机…