Python 基础语法:
print("hello world!")
:打印默认会换行逗号添加 end=''
解除
定义变量:python 定义变量不需要关键字只需要定义变量名和赋值。python 中用 #
作为注释
print("hello world!\n" * 3)
:python 中字符串可以做乘法
input("请输入:")
:接受键盘的输入,返回输入的字符串
类型转换:int(表达式)
、 str(表达式)
、 float(表达式)
,bool 值True==1
、 False==0
import random
: 引入模块 random.randint(1,10)
使用模块方法产生随机数
基本数据类型:str
、 int
、 float
、 bool
类型判断: type(表达式)
返回其类型的字符串, isinstance(表达式,数据类型)
判断参 1 的值是否是参 2 的数据类型
运算符:**
乘方,//
除法(向下取整), 非 not
或 or
且and
if
:
1 2 3 4 5 6 7 8 if 条件: 语句 elif 条件: 语句 else : 语句
1 2 3 4 5 6 msg="123" + \ +"45" for s in msg: print (s) else :
for 循环常搭配 range([sta]默认0,end,[步进])
一起使用:
1 2 3 4 5 6 7 8 9 10 11 for s in range (5 ): print (s,end='' ) for s in range (2 ,5 ): print (s,end='' ) for s in range (1 ,5 ,2 ): print (s,end='' )
Str(字符串):
字符串,列表,元组,在 python 中都是序列。
python 中字符串可以用单双三引号三种方式定义, r"str\n"
等于 "str\\n"
1 2 3 4 5 6 7 8 9 str ='hi' str ="hello" str =""" hello world\n """ str =r"hello world\n"
1 2 3 4 str [0 ] str [5 :] str [-10 :-1 ] str [::-1 ]
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 len (str ) str .strip() str .lower() str .upper() str .swapcase() str .replace('hello' ,'hi' ) str .split('\n' ,num) print ("hello" in str ) print ("hello" not in str ) str .capitalize() str .count("str" ) print (str .find("w" )) print (str .index("w" )) "123abc" .isalnum() "abc" .isalpha() "123" .isdigit() lists=("1" ,"2" ,"3" ) print ("-" .join(lists)) d={"name" :"ruoxi" ,"value" :"123" } print ("+" .join(d))
字符串格式化: 因为 python 中字符串不允许与数字相加组成新的字符串 str+1 #报错
,此时我们可借助字符串格式化来完成。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 print ("{}hello{}world" .format (1 ,"ha" ))print ("{1}hello{0}world{0}" .format (1 ,"ha" ))print ("{a}hello{b}world{a}" .format (a=1 ,b="ha" ))f'Hello {name} ' site = {"name" : "name" , "url" : "www" } print ("网站名:{name}, 地址 {url}" .format (**site))lists=['name' , 'www' ] print ("网站名:{0[0]}, 地址 {0[1]}" .format (lists)) print ('value 为: {0.value}' .format (obj))print ("{0:.2f}" .format (3.1415926 )) print ("{0:+.2f}" .format (3.1415926 )) print ("{:0>2d}" .format (3 )) print ("{0:x<4d}" .format (3 )) print ("%dhello world%s" %(12 ,1234 )) print ("%(key1)d hi world %(key2)s" % {'key1' :12 ,'key2' :123 }) print ("%-4d" % 5 ) print ("%+8.3f" % 2.3 )
List(列表): 创建一个列表:
1 2 3 4 5 lists1=[0 ,'1' ,"2" ,[3 ,4 ,5 ]] lists2=['str' ,'hi' ] print (lists2[1 ])print (lists1)print (lists1+lists2)
运行结果:
1 2 3 hi [0, '1', '2', [3, 4, 5]] [0, '1', '2', [3, 4, 5], 'str', 'hi']
可以看出一个列表可接受任何类型的数据,并且两个列表之间可以向加。
常用方法:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 lists2.append("world" ) print (len (lists2)) lists2.extend(['list' ]) lists2.insert(1 ,'hello' ) lists2.remove('str' ) lists2.pop() lists2.pop(1 ) lists2.sort() lists2.reverse() lists1.count('2' ) lists1.index('2' ) lists1.index('2' ,1 ,4 ) print (lists2)print ('2' in lists1) del lists1[0 ]
切片:
1 2 3 4 5 lists1[:] lists1[:3 ] lists1[1 :] lists1[2 :3 ] lists1[::-1 ]
Tuple(元组): 元组和列表类似,但是不同的是元组不能修改,元组使用小括号。 元组中的元素值是不允许修改的,元组之间可相加。
1 2 3 t1=(0 ,'1' ,"2" ,[3 ,4 ,5 ]) t2=('str' ,'hi' ) print (t1+t2)
当元组只有一个元素时在后面添加一个 ‘,’
才能表示它是一个元组。
1 2 3 num=(1 ) t3=(1 ,) t4=1 ,2
序列: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 (list1,list2)=("1" ,"2" ) print (list1,list2) str ="hello" print (list ()) print (list (str )) print (tuple (str )) print (tuple (list (str ))) len (tuple (str )) print (max (list (str ))) min (str ) sum ((1 ,2 ,3 ,4 )) list (reversed (str )) print (list (enumerate (str ))) a=(1 ,2 ,3 ,4 ) b=("一" ,"二" ,"三" ) print (list (zip (a,b))) import randomrandom.shuffle(lst) random.choice(seq)
Set(集合): 集合是无序和无索引的集合。在 Python 中,集合用花括号编写。 可以使用 for
循环遍历 set 项目,或者使用 in
关键字查询集合中是否存在指定值。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 sets={"set1" ,"set2" } set (sets) set () print (sets)for item in sets: print ("iemt : " +item) print ("set2" in sets) a=set ('abc' ) b=set ('bcd' ) print (a - b) print (a | b) print (a & b) print (a ^ b)
常用方法:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 sets=set ("abcde" ) len (sets) print ('a' in sets) sets.copy() sets.clear() sets.add("a" ) sets.update({'b' :'2' ,'c' :'3' },'e' ,[1 ,2 ]) sets.remove("a" ) sets.discard("f" ) sets.pop() a={1 ,2 ,3 } b={1 ,2 } a.isdisjoint(b) a.issuperset(b) b.issubset(a)
Dictionary(字典): 键必须是唯一的,但值则不必。值可以取任何数据类型,但键必须是不可变的,如字符串,数字或元组。
1 2 3 4 5 6 7 d={'a' :1 ,2 :2 ,(1 ,2 ):3 } print (d[(1 ,2 )]) print ("a" in d) d["b" ]='b' del d['a' ] len (d)
常用方法:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 d.get("a" ,False ) d.setdefault('c' ,'c' ) d.update({'b' :'c' ,'d' :'d' }) d.pop('b' ,False ) d.popitem() d.copy() d.keys() d.values() d.items() d.clear() t=(1 ,2 ,3 ) d=d.fromkeys(t,'def' ) print (d) del d
时间 datetime: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 from datetime import datetimedatetime.now() datetime(2024 , 3 , 4 , 13 , 11 , 56 , 654634 ) datetime.now().timestamp() datetime.fromtimestamp(t) datetime.strptime('2015-6-1 18:19:59' , '%Y-%m-%d %H:%M:%S' ) datetime.now().strftime('%Y-%m-%d %H:%M:%S' ) from datetime import datetime, timedelta, timezonenow = datetime.now() now + timedelta(days=2 , hours=12 ) datetime.now().astimezone(timezone(timedelta(hours=8 ))).strftime('%Y-%m-%d %H:%M:%S' ) import pytzdatetime.now(pytz.timezone('Asia/Shanghai' )).strftime("%Y-%m-%d %H:%M:%S" )
函数
python 中使用 def
定义函数,并且允许设置的默认值。 *变量名
允许传入任意个的值,此变量名管理一个元组。
__name__
当前模块的命名空间
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 def fun (name="long" ,value="yes" ,*var ): '函数第一行字符串作为函数的文档,通过help方法可以查看' print (name+value) for s in var: print (s) return name if __name__ == '__main__' : help (fun) fun(value="ha" ,name="zhang" ) fun("1" ,"2" ,1 ,2 ) def fun2 (*var,str ="s" ): for s in var: print (s) print (str ) fun2(1 ,str ="ha" )
函数细节:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 def fun (): global count count=2 print ("fun() = %d" %count) count =1 fun() print ("main() = %d" %count) def func1 (): x=2 def func2 (): nonlocal x x *=x print (x) return func2() func1() def f1 (): return 1 f=lambda : 1 print (f())
File(文件):
打开文件:参 1 文件路径名,参 2 文件打开模式,参 3 编码格式(默认 win 上 gbk)
f = open("E:/test/qq.html", "r", encoding='utf-8')
关闭文件 : f.close()
模式:
模式
功能
r
只读,指针指向开头
w
只写,指针指向开头。文件不存在将创建文件
a
追加,指针指向结尾。文件不存在创建新文件
可附加模式
“+”:用于读写,”b”:以二进制打开文件
常用方法: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 f = open ("E:/test/str.txt" ,"r" ,encoding='utf-8' ) print (f.closed,f.name,f.mode) print (f.read()) print (f.readline()) print (f.readlines()) f.write(str ) f.writelines(['第一行\n' ,'第二行' ]) f.tell() f.seek() f.truncate() f.flush() f.close()
OS 模块: python 提供了 OS
模块可以应对不同的操作系统,对文件做更多的操作。通过 import os
:导入 OS 模块
常用方法:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 import os print (os.sep) print (os.linesep) print (os.name) print (os.curdir) print (os.getcwd()) os.chdir("e:" + os.sep) os.system('cmd' ) print (os.stat(r'E:\test\test.txt' )) print (os.listdir()) os.mkdir('e:/a' ) os.makedirs('e:/a/b/c/d' ) os.rmdir('e:/a/b/c/d' ) os.removedirs('e:/a/b/c' )
os.path: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 import osfile = "e:/test/test.txt" os.path.abspath("." ) os.path.basename("." ) os.path.dirname(file) os.path.split(file) os.path.splitext(file) os.path.join("e:\\" ,"test" ,"test.txt" ) os.path.getatime(file) os.path.getctime(file) os.path.getmtime(file) os.path.getsize(file) os.path.exists(file) os.path.isabs(file) os.path.isdir(file) os.path.isfile(file) os.path.islink(file) os.path.ismount(file)
异常处理: 1 2 3 4 5 6 7 8 9 10 try : raise Exception except : print ("except" ) raise else : print ("else" ) finally : print ("finally" )
一些对象定义了标准的清理行为,无论系统是否成功的使用了它,一旦不需要它了,那么这个标准的清理行为就会执行。 如打开一个文件对象:
1 2 3 4 with open ("myfile.txt" ) as f: for line in f: print (line, end="" )
1 2 3 4 5 6 7 class MyError (Exception ): def __init__ (self, value ): self.value = value def __str__ (self ): return repr (self.value) raise MyError("my define error" )
面向对象:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 class Class (object ): name='' def __init__ (self,name ): Class.name="hi" self.name=name self.age=10 def show (self ): print ('name=' ,self.name,',age=' ,self.age) c=Class('world' ) c.show() Class.name="Class" c.name="self" print (Class.name)
1 2 3 4 5 6 7 8 9 class Class2 (Class ): def __init__ (self,name ): super ().__init__(name) def show (self ): print (self.name) c2=Class2("Class2" ) c2.show()
1 2 3 4 5 6 7 8 9 issubclass (Class2,Class) isinstance (c,Class) hasattr (Class,"name" ) hasattr (c,"name" ) getattr (Class,"name" ) setattr (Class,"name" ,"value" ) delattr (Class,"name" )
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 class Test : def __init__ (self ): self.num=1 def __str__ (self ): return str (self.num) def __del__ (self ): print ("实例被del" ) def getnum (self ): return self.num def setnum (self,num ): self.num=num def delnum (self ): del self.num x=property (getnum,setnum,delnum) test=Test() print (test) print (test.x) test.x=30 print (test)del test.x del test