python类型的方法中有一些细节需要谨记,比如列表中的赋值运算,有三种方法,但却有两种截然不同的地方。
比如定义一个列表 a,将a赋值给b,其中牵扯到浅拷贝和深拷贝,直接将a赋值给b,这是将a的引用给b,两个变量的地址完全相同,改其中一个则两个都变化,要想只取其中的值而不改变原来的数值,则要进行深拷贝,如下:
第一种是浅拷贝,一个变则两个都变,第二和第三种则是深拷贝,只取其中的值,而不改变原来的值
a=[1,2,3,4,5]
(1)b=a
(2)b=a.copy()
(3) b=a[ : ]
元组和列表可以相互转化,元组是不可变的列表,其值不可变,但存放值的变量可变,可以将变量重新赋值一组元组即可改变
今天做的一些小题目:
#输入三个整数x,y,z,请把这三个数由小到大输出。 import math def MAX(a,b): if a>=b: return a else: return b a=int(input('输入第一个整数:')) b=int(input('输入第二个整数:')) c=int(input('输入第三个整数:')) print('max is :',MAX(a,MAX(b,c)))
# 打印出所有的"水仙花数",所谓"水仙花数"是指一个三位数, # 其各位数字立方和等于该数本身。例如:153是一个"水仙花数", # 因为153=1的三次方+5的三次方+3的三次方。 import math for i in range(1,10): for j in range(1,10): for k in range(1,10): num=str(i)+str(j)+str(k) my_num=int(num) if my_num==i**3+j**3+k**3: print(my_num)
# 有四个数字:1、2、3、4,能组成多少个互不相同且无重复数字的三位数?各是多少? for i in range(1,5): for j in range(1,5): for k in range(1,5): if i!=j and j!=k and i!=k: print(i,j,k)
解决一个难题有很多方法,但对于于初学者来说,不必追求那么多的方法,用一个自己会的而却程序看起来简单明了的方法即可,等到自己精通的时候再来追求多种方法即可,我们每个人学习都有自己的方法,我也有属于自己的,假如学一门python语言,我会先了解它的基本语言和各个类型及其操作,在适当的做一些小练习,步步为营,当数据类型及其方法学完时,然后就开始大量的练习,这个时候就可以使用多种方法去解析题目,这样有利于巩固所学的知识,进一步提高对python的理解。
希望这些能对大家有所了解,本人也是刚学python不久,希望和大家一起进步和学习。