你的Python语言程序,有一处错误,就是function1函数中的i-=1语句,应该移出if语句块放到while循环中
成都创新互联公司是一家专业从事网站制作、网站建设、网页设计的品牌网络公司。如今是成都地区具影响力的网站设计公司,作为专业的成都网站建设公司,成都创新互联公司依托强大的技术实力、以及多年的网站运营经验,为您提供专业的成都网站建设、营销型网站建设及网站设计开发服务!
你的程序我都加了注释,并且解释了运行结果,你看看吧.
def main(): #函数main
i=0 #i赋初值0
while i=4: #当i小于等于4时,执行下面操作
function1(i) #调用function1函数
i+=1 #i=i+1
print("i is",i) #打印i的值
def function1(i): #函数function1 i为传进来的参数
line=" " #line赋初值" "
while i=1: #当i大于等于1时,执行下面操作
if i%3!=0: #如果i除以3的余数不等于0,也就是i不能被3整除,,执行下面操作
line+=str(i)+" " #line=line+str(i)+" ",line加字符串i加空格
i-=1 #i=i-1
print(line) #打印line
main() #调用main函数
源代码(注意源代码的缩进)
运行结果分析
#i等于0时,调用function1(0),i1,所以打印空格
i is 1 #i+=1后i等于1,打印的i的值1
1 #i等于1时,调用function1(1),i==1,while循环1,(1)不能被3整除,所以打印空格1空格
i is 2 #i+=1后i等于2,打印的i的值2
2 1 #i等于2时,调用function1(2),i=1,while循环2,1,(2,1)不能被3整除,所以打印空格2空格1空格
i is 3 #i+=1后i等于3,打印的i的值3
2 1 #i等于3时,调用function1(3),i=1,while循环3,2,1,(2,1)不能被3整除,所以打印空格2空格1空格
i is 4 #i+=1后i等于4,打印的i的值4
4 2 1 #i等于4时,调用function1(4),i=1,while循环4,3,2,1,(4,2,1)不能被3整除,所以打印空格4空格2空格1空格
i is 5 #i+=1后i等于5,打印的i的值5,i4,从主函数main中退出
1 map()函数的简介以及语法:
map是python内置函数,会根据提供的函数对指定的序列做映射。
map()函数的格式是:
map(function,iterable,...)
第一个参数接受一个函数名,后面的参数接受一个或多个可迭代的序列,返回的是一个集合。
把函数依次作用在list中的每一个元素上,得到一个新的list并返回。注意,map不改变原list,而是返回一个新list。
2 map()函数实例:
del square(x):
return x ** 2
map(square,[1,2,3,4,5]) ---- -要打印结果需要 print(*map(square,[1,2,3,4,5])),这块打印了再打印就会为空
# 结果如下:
[1,4,9,16,25]
通过使用lambda匿名函数的方法使用map()函数:
map(lambda x, y: x+y,[1,3,5,7,9],[2,4,6,8,10])
# 结果如下:
[3,7,11,15,19]
通过lambda函数使返回值是一个元组:
map(lambdax, y : (x**y,x+y),[2,4,6],[3,2,1])
# 结果如下
[(8,5),(16,6),(6,7)]
当不传入function时,map()就等同于zip(),将多个列表相同位置的元素归并到一个元组:
map(None,[2,4,6],[3,2,1])
# 结果如下
[(2,3),(4,2),(6,1)]
通过map还可以实现类型转换
将元组转换为list:
map(int,(1,2,3))
# 结果如下:
[1,2,3]
将字符串转换为list:
map(int,'1234')
# 结果如下:
[1,2,3,4]
提取字典中的key,并将结果放在一个list中:
map(int,{1:2,2:3,3:4})
# 结果如下
[1,2,3]
原文链接:
有
当然有,这就是Python函数图像工具(EXE)。 本程序运用Python中最令人喜爱的数据处理工具numpy和超强的图像库matplotlib,实现13种不同类别函数的分类图像整理,展示图像均可以保存为图片的形式,具备拖动、放大等功能
python的一切数据类型都是对象。但是python的对象分为不可变对象和可变对象。python的变量是引用,对python变量的赋值是引用去绑定该对象。
可变对象的数据发生改变,例如列表和字典,引用不会更改绑定对象,毕竟本身就是用于增删改查的,频繁地产生新对象必然导致开销巨大,只需要该对象内部变化就行;但对于绑定了不可变对象的引用,对象一旦改变就会使引用绑定新的对象。
这一点也会反应到函数的参数上。python的传值方式是“传对象”引用。python的函数,形参实际上是引用,实参便是对象绑定到该引用上。本质是形参会被作为函数的局部变量,在开辟的函数的栈内存中被声明。
简要来讲:
如果参数是数,则类似值传递,
如果参数是列表和字典,则类似引用传递。
每个对象都会有个id, 可以用id()验证以上说法:
这个函数的参数是列表,是可变对象。
查看python内置函数的方法:1、打开Python IDLE编辑器;2、输入" dir(__builtins__)"命令,按下回车键(Enter)得到Python全部内置变量和函数。
如何查看 Python 全部内置变量和内置函数?
1 如图,打开 Python IDLE,我用的 是 Python 3.7 ,界面有个性定制。你的版本不同,界面有差异,但是操作方法应该是一样的。
2 输入 dir(__builtins__)
按下回车键(Enter)。
3 也可以:
import builtins
dir(builtins)
按下回车键(Enter)。
得到的结果和 dir(__builtins__) 是一样的。
4 那么这返回的一大堆到底是什么东西?
可以看到,返回的结果是以 [ 开头以 ] 结尾,说明是个列表,我们看看这列表里一共有多少个元素?
输入:
len(dir(__builtins__))
得到一个数字,154 ,说明当前版本的 Python 内置的常量和函数总数是 154 。
5 我们再重新输出一下这个列表,逐个打印出来,更好看一点。
for item in dir(__builtins__):
print(item)
按下两次回车键(Enter)。按照默认的字母顺序,先是大写字母 A-Z,然后是下划线(_)开头的,然后是小写字母 a-z ,为什么是这个顺序?因为按照 ASCII 码表,表示小写字母的数字比表示大写字母的数字要大,而表示下划线(_)的数字居中,所以如此。
6 print() 就是 Python 3 的默认函数。我们试试:
print('Hello World')
builtins.print('Hello World')
__builtins__.print('Hello World')
运行结果如下,可以看到,结果是一样的。
dir()本身就是 Python 的内置函数,利用它,我们可以查看对象的全部方法和属性,对于掌控全局,了解全貌很有用。
课程推荐:Python快速教程之从入门到精通