前面已经接触过Python了,现在从头把python学一遍,巩固一下基础知识。因为学了很多语言了,更多的是熟悉语法。

Python基础(一)

变量定义
# 多个变量赋值
# 默认大写的是常量  最好不要修改
#空值 None
A,b,c = 100,200,300
print(A,b,c)
字符串
print(",".join(("a","b","c")))  #字符串拼接
print("{}{}{}".format("aa","bb","cc"))   #字符串格式化
print("{:.2f}".format(3.1415))
print("{1:.2f}".format(3.1415,5.1415))
print("{1:.2%}".format(0.1415,0.415))
name,age="lisi","12"
print(F"${name}|${age}")
print(len("abcd"))  #字符串长度
print(max("abcd")) #最大值
print(min("abcd")) #最小值
print("abcdefg".find("c"))  #第一次出现的字符串下标
print("abcdefg".find("c",0,60))  #第一次出现的字符串下标   加范围约束
print("abcdefg".count("c"))  #字符串出现的次数
print("abcdefg".count("c",0,60))  #字符串出现的次数
print("aaabbbcccdd".replace("a","m"))  #字符串替换
print("aaabbbcccdd".upper())  #字符串转换为大写
print("AAABBBCCCDD".lower())  #字符串转换为小写
print("a,b,c,d,e".split(","))  #字符串分割 第二个参数是分割的次数
print(" a,b,c,d,e ".strip())  #字符串去除左右空格  第二个参数可以是去除相应的字符串
print("123456"[0:3])#123  下标0开始 右边开
print("123456"[3:])#456   下标3开始,一直到末尾
print("123456789101112"[1:9:2])#2468   下标1开始,一直到末尾,每次跳跃2
print("123456789"[::-1])#987654321   字符串反转
print("111"*5)#111111111111111   字符串重复
print("4" in "1234")
print("4" not in "1234")
列表
list=["a",2,[4,5,6]]
print(list[2])      #列表元素第二个
print(list[2][2])   #列表元素第二个  在列表的第二个
print(len(list))    #列表长度
list[2]=100         #更改列表的元素
print(list)
list2=[7,8,9]
print(list+list2)   #两个列表元素相加
print(list2*2)       #列表元素重复
print([1,2,3,4,5,6,7][1:4])  #从第一个元素截取到第四个
print([1,2,3,4,5,6,7][1:])    #从第一个元素截取到最后一个
print([1,2,3,4,5,6,7][:])      #整个列表
print([1,2,3,4,5,6,7][0::2])      #整个列表
print([1,2,3,4,5,6,7][::-1])      #整个列表
a=[1,2,3]
del a
print(a)        #删除变量
del list[0]
print(list)      #删除列表中的元素
list.append("10")  #列表最后插入元素
print(list)
list.insert(0,"10"#列表开始插入元素
print(list)
list.clear()        #列表清空
print(list)
list.remove(9)  #列表移除元素,重复元素只能移除第一个
print(list)
data = list.pop(2)  #列表移除元素,移除固定下标,可以返回移除元素
print(list,data)
print([1,2,3,4,5,5,7].index(5))  #返回第一次匹配到的下标
print([1,2,3,4,5,5,7].index(5,1,3))  #返回第一次匹配到的下标  23参数查找范围
list.reverse()  #列表反转
print(list)
+:新建一个列表   extend:在原来列表上相加
list.extend(["m","n"])  #一次添加多个元素到末尾  +相同效果
print(list)
list2=list.copy()  #列表复制操作   =直接就是相同的一个列表
del list2[0]
print(list)
list3=[9,5,2,1,7,8]
list3.sort(reverse=True)
print(list3)
print(list.count("a"))  #列表出现的次数
print(len([1234]))  #长度
print(max([1234]))  #最大
print(min([1234]))  #最小
print(1 in [1,2,3,4])
print(1 not in [1,2,3,4])
元组 不可变
t=("a","b",[1,2])
print(t[1])  #元组下标取值
print(("a","b",1)+("a","b",1))  #元组拼接
t[2][0]="abcd"
print(t)      #元组不能改变  但是元组内的列表可以改变
print(len((1234)))  #长度
print(max((1234)))  #最大
print(min((1234)))  #最小
c=(10,)  #必须加,才能表示是元组
print(c)
print(c*5)  #元组重复
print(1 in (1,2,3,4))
print(1 not in (1,2,3,4))
集合 无序,元素唯一
a=set([1,2,3])    #{1, 2, 3}
print(a)
a=set({1,2,3})    #{1, 2, 3}
print(a)
a=set("123")      #{'3', '2', '1'}
print(a)
set={1,2,3,1}        #{1, 2, 3}
set.add("1")       #添加元素
print(set)
print(set.update({'a','b','c'}))  #集合合并
set.remove(1)      #删除元素 没有元素会报错
print(set)
set.pop()           #随机删除
print(set)
set.discard("1")        #删除元素 没有元素不会报错
print(set)
print({1,2,3}&{1})      #集合的交集
print({1,2,3}|{4,5,6})  #集合的并集
print(1 in {1,2,3,4})
print(1 not in {1,2,3,4})
字典
direct={"name":"lisi",12:12,(1,2):"man"}
print(direct)
print(dict((["name","age"],["zhangsan",12])))  #创建字典
空字典{}     空集合建议set()
direct["sex"]="woman"  #字典的增加
print(direct)
direct["sex"]="man"    #字典的修改
print(direct)
print(direct["name"])  #字典的获取
del direct["sex"]      #字典的删除
print(direct)
print(direct.get("name"))  #字典的获取
print(direct.get("score",100))  #字典的获取,并且给默认值
print(direct.items())       #字典的所有元素
print(direct.keys())       #字典的所有key
print(direct.values())      #字典的所有value
print(len(direct))
direct.clear()              #字典的清空
direct2=direct.copy()        #字典的拷贝
direct.clear()
print(direct2)
d={}
d1=d.fromkeys(("name","sex"),(1,2))  #创建新的字典 第二个参数是所有的默认值
print(d1)
direct.pop("name")     #字典的移除
print(direct)
direct.popitem()       #字典的删除最后一条数据
print(direct)
direct.setdefault("sex","man")  #字典添加  保留最新的元素
print(direct)
direct.update({"name":"man"})  #字典之间的添加和更新
print(direct)
print("name" in {"name":"zhangsan","sex":"man"})
print("name" not in {"name":"zhangsan","sex":"man"})
is/is not 判断
#数字/字符串/元组 都是不可变的  表面一样,完全一样
#集合/字典/列表  都是可变的  表面一样,其实不一样
print(1 is 1)                  #True
print(1 is not 1)              #False
print("a" is "b")              #True
print("a" is not "b")          #False
print((1,2,3is (1,2,3))      #True
print((1,2,3is not (1,2,3))  #False
print([1,2,3is [1,2,3])                        #False
print([1,2,3is not [1,2,3])                    #True
print({1,2,3is {1,2,3})                        #False
print({1,2,3is not {1,2,3})                    #True
print({"name":"lisi"is {"name":"lisi"})        #False
print({"name":"lisi"is not {"name":"lisi"})    #True
if elif else判断
if 2>6:
   print("aaa")
elif 4>6:
   print("bbb")
else:
   print("ccc")
数据类型判断
isinstance(myClass,Iterable)//检测类是否式可迭代的类
类是否包含__iter__方法来确定的
迭代方式一:for index in [1,2,3,4]
迭代方式二:value=next(list) 就是最终的使用方法  __iter__
自定义迭代器必须包含两个方法:__iter__   __iter__
data = [x*2 for x in range(10)]
循环
direct={"name":"zhangsan","sex":"man"}
for index in direct:
   print(index)  #只会识别key
for index in direct.items():
   print(index)  #只会识别key
for index in range(0,10): #0-9
   print(index)
for index in range(0,10,2): #02468
   print(index)
data=[1,2,3,[4,5,6]]
for index in data:
   if(isinstance(index,list)):
       for index_item in index:
           print(index_item)
   else:
       print(index)
index = 0
while index < 10:
   index+=1
   print(index)
else:
   print(index,10,index > 10)
for index in "abcd":
   if(index == "c"):
       break
   print(index)
for index in "abcd":
   if(index == "c"):
       continue
   print(index)
for index in "abcd":
   pass#跳过代码
函数默认参数
def my_fun(a=300,b=400):
   return a+b
print(my_fun(100))
print(my_fun(b=100))  #固定位置传递参数
def my_fun(a=300,b=[]):
   b.append(a)
   print(b)
my_fun(100)  #[100]
my_fun(100)  #[100, 100]  继续传递给下一个函数了
def my_fun(a=300,b=None):#修改成不可变的类型
   if(b is None):
       b = []
   b.append(a)
   print(b)
my_fun(100)  #[100]
my_fun(100)  #[100, 100]  继续传递给下一个函数了
def my_fun(a=100,*,b=200,c=200):#修改成不可变的类型
   print(a,b,c)
my_fun(100)
my_fun(100,c=300,b=100)

字典参数
def fun1(*args,**kwargs):##  **就是字典对象
   print(args,"|",kwargs)
def fun2(*args,**kwargs):
   print(args,kwargs)
   fun1(*args,**kwargs)
fun2(10,20,30,40,a=10,b=20)

拆包/解包
def fun1(a,b,c):
   print(a,b,c)
fun1(*"123")    #将参数解析为三个参数
fun1(*(4,5,6))
fun1(*{"aa":"zhangsan","bb":"man","cc":"12"}) #按照名字取解析
可变参数配合 拆包/解包
def fun1(a,*b):
   print(a,b)
fun1("a",*"123")
return
def fun1():#多个参数
   return "a",1
print(fun1())
def fun1():#函数嵌套
   def fun2():
       return 10
   return fun2()
print(fun1())