常用的基本数据类型:
int,str,float,bool,list,tuple,dict,set。整型,字符串,小数,bool,列表,元组,资源,Set集合
命名推荐使用驼峰法及下划线命名
格式化输出:类似C系:%s:输出字符串。%d:输出int类型数字。%f:输出浮点数。%x:输出16进制数据 。 str/double/float
print("你的名字:%s" %name)
循环中常用的是for..in功能,遍历元组,set集合等。此外还有一个range函数。for i in range(5):从1加到5。
字符串
字符串中,可以利用下标取到对应的元素,想要截取到一段元素就要用到切片片。切片的语法 :[起始:结束:步长] name[:10],name[1:10],name[1:-1]
字符串常用方法:name.find("abc",0,10) 从0-10的下标中找出含有abc的索引,不在则会返回-1,index与find含义一致,只是不存在则会抛出异常。
1.count:计算数量 mystr.count("kkb")
2.replace:字符串替换:mystr.replace(str1,str2,my.count(str1))
3.split字符串分割:mystr.split(str=" ", 2)
4.capitalize:第一个字符大写 mystr.capitalize()
5.title:返回标题的方式,也就是首字母大写,其余的字母小写
6.startswith/endwith
列表
1.有序集合,可以是不同类型的。可以与java做一个对比,一般java中的list都是存放范型的对象。
2.可以用切片片来取得其中的数据,用for.int来遍历其中的数据
3.添加元素.使用append/extend/insert即可添加元素,区别如下:append是将集合整体添加到另一个集合中。extend是将集合中的元素依次添加到另外一个集合中,inser可以指定位置添加元素。
mylist = ["ff","ww","yz"]
appendlist = ["xiaowang","xiaofan"]
print("添加前的mylist:")
print(mylist)
print("append后的mylist")
mylist.append(appendlist)
print(mylist)
print("extend后的mylist")
mylist.extend(appendlist)
print(mylist)
添加前的mylist:
['ff', 'ww', 'yz']
append后的mylist
['ff', 'ww', 'yz', ['xiaowang', 'xiaofan']]
extend后的mylist
['ff', 'ww', 'yz', ['xiaowang', 'xiaofan'], 'xiaowang', 'xiaofan']
Process finished with exit code 0
4.删除元素用del/pop/remove: del根据下标删除。pop删除最后一个。remote是根据值删除。
5.排序:sort方法是从小到大排序,参数reverse=True可以改为倒叙。
元组tuple(一旦初始化就不能修改)请严格记住元组和集合的书写
1.定义:t=() 定义空的元组,无append,inser等方法。定义t=(1):代表t=1这个数,只有一个元素的tuple时必须加一个逗号,t=(1,)在只有一个元素的tuple时也要加一个逗号。可以将tuple中的值进行修改。
字典:
1.定义:根据花括号的方式:a{"wff":"100","ff":"80"} 如果想取得value:a[wff] = 100 即可
2.删除:对字典进行删除操作:以下两种方式:del与clear: del info["name"] del info:清空整个字典 info.clear()
3.keys:返回一个包含所有key的列表。
4.values:返回一个包含字典左右value的列表,
5.items:返回一个包含所有元组的列表。
集合set:无序不重复
1.创建方式:使用大括号或者set()函数创建,如果是空的,那么必须用set()。
2.搞清楚列表list,元组tuple与集合set之间的区别。
函数:
1.如果使用默认参数时,必须指向不可变对象,因为改变了对象之后下一次计算时就不是默认的对象了,因此可以将参数设置为不可变的None,Str等对象,
2,可变参数:可以做简化:例如传递一个list或者tuple:
def cal(number):
count = 1
for x in number:
count = count * x
return count
print(cal((1,2,3)))
此时如果写成cal(1,2,3)就会报错,那么修改函数定义,将number前加入*number即可:
def cal(*number):
count = 1
for x in number:
count = count * x
return count
print(cal(1,2,3))
注意:表明是将list中的所有元素当做可变参数传进去,写法很有用,也很常见。因此可以这样写: cal(mylist)即可。
还可以命名关键字参数,通过kw进行检查,到底传入了哪些参数。此时需要key时,需要使用*的方式,例如:
def person(name, age , **kw):
if 'city' in kw:
pass
if 'add' in kw:
pass
print("name:",name,'age: ',age,"other:",kw)
person("wv",22,city='chengdu',add="chaoyang",zipcode=111)
def person1(name,age,*,city,address):
print(name,age,city,address)
person1("name",22,city="xj",address="wlmq")
3.参数组合:
可选参数顺序:必选参数/默认参数/可变参数/关键字参数和命名关键字参数
def f1(a,b,c=0,args,*kw)
def f2(a,b,c=0,,d,*kw) 可以根据传递的参数顺序和类型一一对应填入即可
面向对象
1.匿名函数函数没名,增加效率,返回值不需要添加return。
匿名函数:result = (lambda a,b,c:a+b+c)(1,2,3) print(result)
共有的类属性就是基本的属性。私有的类属性:__age=12即可是私有属性。
属性分为类属性和对象属性,同时方法也是分为静态方法和类方法:类方法:@classmethod即可,一般第一个参数喜欢用cls来修饰。可以通过实例对象和类访问。静态方法:通过修饰器:@staticmethod来修饰,可以通过对象和类来访问。区别:一般类方法的第一个参数是cls,实例方法的第一个参数是init,静态方法不需要额外定义参数。