python &操作,例解Python-Python编程快速入门践行指南

  python &操作,例解Python:Python编程快速入门践行指南

  文章0背景1基本概念和操作1.1概念1.2操作2基本数据结构2.1列表2.2元组2.3 dict(字典):2.4 Set(集合)——3354特殊形式的字典2.5相互转换3、循环3.1条件(if) 3.2循环(while) 4函数(def) 5异常(try、exception、else、Finally) 5.1捕捉并处理异常5.2抛出异常6文件和数据管理6。1使用with管理文件读取6.2打开文件的方法(r,r,a,a,w,w) 6.3读写文件6.4使用pickle存储和读取数据6.5数据库6.5.1使用mysql数据库6.5.2使用sqlite数据库

  7(类)7.1创建基类7.2装饰器7.2.1自含属性7.2.1.1属性属性7.2.1.2 static method和classmethod属性7.2.2自定义属性7.2.2.1无返回值,参数7.2.2.2有返回值和参数。

  7.3继承8打印,使用9排序10模块

  0因为项目涉及到做数据分析,需要用到python,所以借此机会学习了一些基本的python语法。学习的参考书是《Head first of python》,以实际小项目为指导,穿插各种基础语法。学起来不枯燥。本文是基于参考书的python通用语法总结。

  1基本概念和操作

  1.1概念1、BIF(内置函数):即内置函数,没有任何导入模块,比如打印函数;2.目标标识符:变量或函数的名称;3.变量不需要声明自己的类型,编译器会自己做类型派生;4、花色:代码块,按缩进分组,例如:num=[1,2,3,4]

  对于n in num:

  Print(n) #操作代码5,区分大小写;6.在命令行中使用ctr/alt p/n查看前后说明;7、字节码:文件后缀命名为pyc,是在导入自己编写的模块时生成的,以防止Python每次运行时重新解析源代码(在__pycache__)的子目录中),为了加快程序运行速度;

  8.检查模块的位置:导入系统

  Print(sys.path)9,切片

  格式:[开始偏移:结束[偏移[:步长]]

  注意:name2=qwer ,带左密封和右开口

  打印(名称2[0:2])

  # Print qw10,打印模块中的所有变量和方法:导入数学

  Print(dir(math))11,它返回全局和本地名称空间中的名称print(locals())。

  Print(globals())12,方法链(从左到右)数据= 12345789

  Print (data.strip()。split(,))13、函数字符串链(从右到左)数据=[1,5,2,4]

  打印(排序(数据))14、工厂功能

  创建某种新的数据行:例如:

  A=dict() #创建字典类型数据

  1.2作业名称=[江, hjx]

  Print(type(name)) #查看数据类型

  Print(len(name)) #检查长度

  is instance(name,list): #确定类型

  打印(“它的列表”)

  Print(id(name)) #打印id

  对于I,n in enumerate(name): #列出数据和数据下标

  print(i: str(i) n: n)

  name2=qwer

  对于i in range(len(name2)): # print字符串range(start,stop[,step])开始、结束、步长

  打印(名称2[i])

  2基本数据结构

  2.1列表功能:可以存储任何类型的数据。

  []操作:

  sch=[]

  Sch.append(中国科技大学)#追加到末尾

  Sch.extend (NTU ,浙江大学)#添加列表

  Sch.insert(1, Fudan) #在第二个位置添加一个元素

  Sch.pop(1) #正在删除第二个元素。

  Shc.remove(浙大)#删除出现的第一个元素。

  Shc.index(中国科技大学)#打印元素的位置

  Shc.count(中国科技大学)#获取指定元素在列表中出现的次数。

  2.2元组(祖先)特征:不可变,可以理解为常量类型列表。

  ()name=(“江雪”)

  2.3 dict(字典):特点:和map一样,有键和值,一个键可以对应多个值。

  {}操作

  Sch={1:南大,2:浙大 }

  Sch.keys() #取出所有键值

  Sch.values() #取出所有值

  #遍历键和值

  对于键,sch.items()中的值:

  print(str(key) : str(value))

  #关键排序

  Sch=sorted (sch.items(),key=lambdasch: sch [0]) #,reverse=true,是降序吗?

  Sch=dict(sch) #复制到idct

  #按值排序

  Sch=sorted (sch.items(),key=lambda x: x [1],reverse=true) # reverse是是否按降序排序。

  sch=字典(sch)

  2.4 Set(集合)——3354字典的特殊形式特征:字典只有关键字,不能重复,唯一。

  a=[1,2,3,1]

  B=set(a) #将列表和元组等迭代对象转换成集合

  2.5相互转换列表转换(字典、祖先、集合):

  a=[5,3,2,4,2]

  b=[c , p , j]

  C=dict(zip(a,b)) # to字典

  打印(类型(c),c)

  D=元组(a) #转换组

  打印(类型(d),d)

  E=集合(a) #变换集合

  Print(type(e),e) # {2,3,4,5}元组变换(同上):

  a=(5,3,2,4,2)

  b=[c , p , j]

  C=dict(zip(a,b)) # to字典

  打印(类型(c),c)

  D=元组(a) #转换组

  打印(类型(d),d)

  E=集合(a) #变换集合

  Print(type(e),e) # {2,3,4,5}字典转换(祖先,列表,集合):

  dict1={1:a ,2:b ,3:c}

  print(list(dict1.keys()))

  打印(list(dict1.values()))

  打印(tuple(dict1.keys()))

  打印(tuple(dict1.values()))

  print(set(dict1.keys()))

  print(set(dict1.values()))

  print(tuple(dict 1 . items())#生成祖先的祖先。

  Print(list(dict1.items())) #以祖先为单位生成一个列表

  print(set(dict 1 . items())#以祖先单位生成集合

  3.条件和周期

  3.1条件(if)格式:

  如果条件:

  #组

  Elif条件:

  #组

  否则:

  # group注意:使用not可以否定条件。

  3.2 while格式:

  对于序列中的目标标识符:

  #组

  函数(def):复用需要复用的代码。

  格式:

  定义函数名(参数列表):

  功能方法

  5异常(尝试、异常、否则、最终)

  5.1捕获和处理异常格式

  尝试:

  #捕捉异常

  #引发IOError

  异常发生时除IOError as err: # execute。

  #处理异常

  print(文件未写入 str(err))

  #法律的反常

  传递# null语句或null语句

  否则:

  打印(“未发生异常”)

  最后:#异常无论发生与否都会被执行。

  打印(“最终”)

  5.2 Throw Exception raise[Exception[,args [,traceback]]]语句中的异常是任何一种类型的异常(例如NameError)参数标准异常,args是其自身提供的异常参数。

  最后一个参数是可选的(实践中很少使用)。如果存在,就是追踪异常对象。

  6.文件和数据管理

  6.1使用with管理文件读入,而不使用with read-in语句:

  尝试:

  data=open(/Users/mac/test.txt )

  print(data.readline(),end= )

  除了IOError作为err:

  print(文件错误: str(err )

  最后:

  If data in locales():#如果文件已打开

  Data.close()使用上下文管理器(无需手动关闭打开的文件):

  尝试:

  #上下文管理

  以(/users/MAC/data science/test . txt , a )为数据:

  打印(它是.文件=数据)

  除了IOError作为err:

  print(文件错误: str(err )

  6.2打开文件的方法(r,r,a,a,w,w)默认的打开方法是r。

  一种方式打开文件,另外一种方式打开。

  答:附加写入模式开启,不可读;答:附加读写模式开启。

  W new write only,w new read and write,这两种方式都会清除文件的内容,即文件不需要预先存在,如果已经存在,就会被覆盖。

  w模式开启,无法读取;我们能读和写

  只读,R读写,不创建,即需要预先存在一个文件进行读写。如果没有文件,将会报告一个错误。

  6.3写入和读取文件的示例:

  导入系统

  def test_print(the_list,f=sys.stdout):

  print(the_list,end= ,file=f)

  尝试:

  #写一个文件

  打开(/Users/MAC/PycharmProjects/hello/test 3 . txt , w )作为文件:

  test_print([1,2, 3],file)

  #文件读出

  打开(/Users/MAC/PycharmProjects/hello/test 3 . txt , r )作为文件:

  data=file.readline()

  打印(数据)

  除了IOError作为err:

  打印(文件错误: str(err )

  6.4 使用泡菜进行数据存储和读出要求以二进制方法打开文件:

  格式:

  进口泡菜

  尝试:

  # 写文件

  以打开(/Users/MAC/PycharmProjects/hello/test。泡菜,世界银行)为数据:

  pickle.dump([1,2, a],数据)

  # 读文件

  以打开(/Users/MAC/PycharmProjects/hello/test。泡菜, rb )为数据:

  a_list=pickle.load(数据)

  打印(列表)

  除了输出异常作为错误:

  打印(文件错误: str(err )

  6.5 数据库

  6.5.1 使用关系型数据库数据库导入已安装

  尝试:

  conn=pymysql。连接(host= 127。0 .0 .1 ,user=root ,passwd=root ,db=db_testAnalyzeData ,port=9996,charset=utf8) #连接数据库

  cur=conn.cursor() #使用游标

  尝试:#执行结构化查询语言语句

  cur.execute(从客户中选择)

  db.commit() #提交修改

  除了:#出现错误,则回滚

  db.rollback()

  data=cur.fetchall()

  对于数据中的d:

  print( cust _ id: str(d[0]) cust _ name: d[2])

  cur.close() #关闭游标

  conn.close() #关闭数据库连接

  例外情况除外:

  打印(查询失败)使用通配符:

  当前执行(

  SELECT quantity,to_big_ratio,is_refund,create_time FROM trans_detail其中com_name=%s ,

  (商品名称))

  6.5.2 使用数据库数据库导入sqlite3

  connection=sqlite3。连接(数据。SQLite’)

  游标=connection .游标()

  # 使用通配符

  光标。执行(插入学校(姓名,出生日期)值(?),(姓名,出生日期))

  cursor.close()

  connection.close()

  七类(类别)类的方法(方法):代码(共享)

  类的属性(属性):数据(不贡献)

  类的实例:实例化后的数据对象

  7.1 基本类的创建其中自己为指向类的指针

  # 类测试

  一级运动员:

  # 构造函数

  def __init__(self,a_name,a_age=None,a_grade=dict()):

  self.name=a_name

  self.age=a_age

  自我等级=a _成绩

  # 析构函数

  def __del__(self):

  self.name=

  self.age=0

  self.grades={}

  # 比较

  def __cmp__(自身,其他):

  如果自我年龄其他年龄:

  打印(你有点年轻)

  elif self.age other.age:

  打印(你有点成熟)

  否则:

  打印(刚刚好)

  # 下面两个方法作用相同,都是打印类信息

  def __repr__(self):

  # 在命令端口输入对象名,也可以输出

  返回("运动员类别:姓名、年龄、成绩")

  def __str__(self):

  # 只能使用打印(对象)

  等级=

  对于键,self.grades.items()中的值:

  grade=str(key) : str(value)

  return (self.name str(self.age) 等级)

  # 对字典进行操作

  def __getitem__(self,key): #返回字典值

  if key==田径:return self.grades[田径]

  elif key==游泳:return self.grades[游泳]

  elif key==健身:return self.grades[健身]

  否则:返回"未知"

  def __setitem__(自身,键,值):#设置字典值

  self.grades[key]=值

  def __delitem__(self,key): #删除字典值

  del self.grades[key]

  a=运动员(韩降雪,42岁,{ 田径:98, 游泳:82, 健身:90})

  b=运动员(詹姆斯,36,{ 田径:90, 游泳:96, 健身:98})

  一个[田径]=92

  del a[游泳]

  打印(一份)

  a.__cmp__(b)

  a.__del__()

  打印(a)共和国和__str__的区别:

  7.2 装饰器

  7.2.1自带属性

  7.2.1.1房产属性使用了财产属性的方法,调用时不需要加(),为的是提供更加友好访问类数据的方式。

  班级人员:

  def __init__(self,name):

  自我. name=name

  自我。_年龄=20岁

  @属性#设置为属性

  定义年龄(自己):

  打印( @property )

  回归自我。_年龄

  @age.setter #设置属性值

  定义年龄(自我,价值):

  如果不是isinstance(value,int):

  提高值错误(年龄非法)

  如果值为0或值为120:

  提高值错误(年龄非法)

  自我.年龄=值

  @age.getter #返回属性值

  定义年龄(自己):

  打印( @age.getter )

  回归自我。_年龄

  @age.deleter #删除属性值

  定义年龄(自己):#删除后就找不到对象属性

  自我年龄

  p=人(詹姆斯)

  打印(字符串(页面))

  人。年龄=60

  打印(字符串(页面))

  德尔佩奇

  打印(字符串(页面))#因为属性被删,会报错,属性错误:年龄

  7.2.1.2静态方法和分类方法属性共同点:

  可以直接调用,而无需实例化该类。

  差异:

  类默认传递一个类本身(cls),所以它可以调用classmethod中的方法和数据而不需要被实例化,并且它可以用于初始化参数和其他目的。

  A类():

  数字=0

  @静态方法

  def静态测试():

  打印(“静态测试”)

  @classmethod #只在类中运行而不在实例中运行的方法

  Classmethod _ test (cls): #参数cls是类本身。

  打印( classmethod_test )

  cls.number=20

  Cls.test() #调用可以不初始化的方法

  定义测试():

  打印(“测试”)

  def print_number(自身):

  print(str(自身编号))

  a=A()

  a .打印编号()

  静态测试()

  A.classmethod_test()

  # a.classmethod_test()

  a .打印编号()

  7.2.2自定义属性的功能:扩展已有功能,无需修改。

  7.2.2.1没有返回值,参数调用的顺序是:run_time— warp— foo。

  导入时间

  定义运行时间(函数):

  定义扭曲():

  start=time.time()

  Temp=func() #执行函数

  end=time.time()

  打印(程序执行时间:,结束-开始)

  打印(“扭曲”)

  返回经线

  @run_time

  def foo():

  打印(“你好”)

  foo()

  #相当于不带装饰器的foo

  # foo=运行时间(foo)

  # foo()

  具有返回值和参数的7.2.2.2用例:

  导入时间

  定义运行时间(函数):

  def warp(*args,**kwargs):

  print(type(args)) #

  打印(类型(夸脱))#

  print(args) # foo的参数列表

  # ({a: 1, b: 2, c: 3},)

  印刷品(夸脱)

  # {arg2: 1234 , arg3 :哈哈哈, arg4 :拉拉拉拉 }

  start=time.time()

  Temp=func(*args,**kwargs) #执行函数

  end=time.time()

  打印(程序执行时间:,结束-开始)

  返回温度

  返回经线

  @run_time

  def foo(n,**kwargs):

  temp_num=2

  return(n[ a ]1)*临时编号

  print(str(foo({a:1, b:2, c:3},arg2=1234 ,arg3=哈哈哈,arg4=拉拉拉拉))

  #相当于不带装饰器的foo

  # foo=运行时间(foo)

  # foo()*args:用于变长参数;

  **kwargs:用于键值参数。

  def test_args(*args):

  打印(类型(参数))

  打印(参数)

  def test_kwargs(**kwargs):

  打印(类型(夸脱))

  印刷品(夸脱)

  test_args(1,2, 1231 )

  test_kwargs(arg1=1,arg2=12 ,arg3=asdf )

  #输出:

  #

  # (1, 2, 1231)

  #

  # {arg1: 1, arg2: 12 , arg3: asdf}

  7.3继承A类(列表):

  def __init__(self,number):

  列表。__init__([]) #初始化父类

  self.number=数字

  a=A([1,2,3])

  a .追加(9)

  打印(一份)

  8打印使用格式:

  导入系统

  print(value,sep= ,end=\n ,file=sys.stdout)sep:

  用于分隔多个对象。默认值是一个空格。您也可以输入特定值(符号、数字、中文)来分隔内容。

  End:用于设置结尾。默认值是换行符 \n 。您也可以输入另一个值来结束。

  文件:输出文件,默认输出到屏幕。

  测试:

  a=qwer

  b=2

  print(a,b,sep= ,end= ,file=open(test23.txt , w ))

  9排序和已排序的区别:

  Sort():就地排序,改变原来的顺序;

  Sorted():复制原始序列,对新序列进行排序,并在不修改原始序列的情况下返回。

  测试:

  a=[1,5,4,2]

  打印(排序(a)) # [1,2,4,5]

  打印(a) # [1,2,4,5]

  排序()

  打印(a) # [1,2,4,5]

  10模块格式:

  导入模块名称

  模块的fromimport函数示例:

  导入数学

  从时间进入睡眠

  math.cos(2)

  Sleep(2) #不要使用包名

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: