【Python】Python基础快速入门

本文介绍了Python编程的基础概念,包括数据类型如整数、浮点数和字符串,以及字符串的表示方法。深入讲解了逻辑行和物理行、缩进规则以及运算符的结合性。还涵盖了流程控制语句如if、while和for循环的使用,以及函数的定义、参数传递和返回值。此外,提到了模块的导入、搜索路径和模块定义的标识符。最后,文章讨论了数据结构如列表、元组和字典,以及异常处理的基本结构。
摘要由CSDN通过智能技术生成
  1. 获取帮助,比如,运行help(str)——这会显示str类的帮助。

  2. 字面意义上的常量。

    • 数:整数、长整数、浮点数和复数
    • 字符串
      • 单引号、双引号:所有的空白,即空格和制表符都照原样保留
      • 三引号('''或"""),可编辑多行字符串,可以在三引号中自由的使用单引号和双引号
      • 自然字符串:r或R开头。r"abcds"
      • Unicode字符串:u或U开头,书写北印度语或阿拉伯语等文本时使用。
      • 连接:字面量间可用空格或不用空格连接,+ 可连接 变量 或字面量。
  3. 逻辑行和物理行:物理行是在编写程序时人所看见的。逻辑行是Python看见的单个语句。Python假定每个 物理行对应一个逻辑行 。

    • 如果你想要在一个物理行中使用多于一个逻辑行,那么你需要使用分号(;)来特别地标明这种用法。分号表示一个逻辑行/语句的结束。
    • 多个物理行变成一个逻辑行,用\放在末尾连接。
  4. 缩进:缩进在python中很重要,不同缩进层次表示不同语句块。

  5. 运算符结合规律:运算符通常由左向右结合,即具有相同优先级的运算符按照从左向右的顺序计算。例如,2 + 3 + 4被计算成(2 + 3) + 4。一些如赋值运算符那样的运算符是由右向左结合的,即a = b = c被处理为a= (b = c)。

  6. 流程控制语句

# if语句
if a > b:
	...
elif a == b:
	...
else:
	...

# python 3.10 及以上支持 match-case 语句
match subject:
    case <pattern_1>:
        <action_1>
    case <pattern_2>:
        <action_2>
    case <pattern_3>:
        <action_3>
    case _:
        <action_wildcard>
        
# while语句
running = True
while running:
	...
	# 支持break和continue
else:
	...# else用处是若while中有break,并生效后,不执行

# for循环
for i in range(1, 5):
	print i
	# 支持break和continue
else:
	...  # else用处是若while中有break,并生效后,不执行

match-case示例
6. 函数
- 函数代码块以 def 关键词开头,后接函数标识符名称和圆括号()。
- 任何传入参数和自变量必须放在圆括号中间。圆括号之间可以用于定义参数,可没有参数。
- 函数的第一行语句可以选择性地使用文档字符串—用于存放函数说明。help(函数名)可显示,或者__doc__属性打印。
- return [表达式] 结束函数,选择性地返回一个值给调用方。不带表达式的return相当于返回 None。
- 函数内部定义的变量都是局部变量,若要使用全局变量,需声明global 变量名

def functionname( parameters ):
	'''函数_文档字符串
	
		巴拉巴拉巴拉'''
   function_suite
   return [expression]
   
print functionname.__doc__

# 默认参数
def func(a, b=5, c=10): 
	print('a is', a, 'and b is', b, 'and c is', c)

func(3, 7)
func(25, c=24)
func(c=50, a=100)

  1. 模块:Python 模块(Module),是一个 Python 文件,以 .py 结尾,包含了 Python 对象定义和Python语句。

    • 模块的引入:import module1[, module2[,... moduleN]]
    • from 语句让你从模块中导入一个指定的部分到当前命名空间中。from modname import name1[, name2[, ... nameN]]from modname import *(如果没有__all__中明确写入下划线开头的对象,则不会引入下划线开头的对象)
    • 可用__all__=[a,_c]定义该模块能被from modname import *引用的对象
    • 搜索路径:模块搜索路径存储在 system 模块的 sys.path 变量中。变量里包含(搜索顺序也如下)
      • 当前目录
      • PYTHONPATH
      • 由安装过程决定的默认目录
    • 每个模块都有一个名称,程序中可用__name__来获取
      • __name____main__时,表示是模块自己运行
      • __name__文件名(即模块名)时,表示被其他模块引用(被import
    • python的包:包就是文件夹,它定义了一个由模块及子包,和子包下的子包等组成的 Python 的应用环境。
      • 包的文件夹下必须存在 __init__.py 文件, 该文件的内容可以为空。__init__.py 用于标识当前文件夹是一个包。
    • dir()函数:用来列出模块定义的标识符。标识符有函数、类和变量。
      • dir( m1) 返回模块m1定义的名称列表。
      • dir( ) 返回当前模块中定义的名称列表。
    • 模块初始化
      • 模块只有第一次被导入的时候才会被执行。
      • 可以把导入模块作为生成一个新的对象
      • 模块变量和类变量都是在模块对象初始化的时候执行的
      • 而函数和类的方法,则不会初始化的时候执行,只有在调用的时候才会执行
      • 如果在你模块中导入了其他的模块,或者导入了其他模块的方法,效果上相当于我们直接在模块中定义了这个模块和方法
  2. 数据结构

    • 列表l1=["a", "b", "c", "d"]
    • 元组t1=(1, 2, 3, 4, 5 )
    • 字典:d1= {'a': 1, 'b': 2, 'b': '3'}
      • 只能使用不可变的对象(比如字符串)来作为字典的键,但是你可以不可变或可变的对象作为字典的值
    • 集合:s1={'b', 'c', 'a', 'r', 'd'}
      -创建一个空集合必须用 set() 而不是 { },因为 { } 是用来创建一个空字典
    • 序列:
      • 列表、元组和字符串都是序列
      • 序列有索引操作l1[1]和切片操作l1[0:3]
    • 数据类型转换
    • 推导式
  3. 拷贝:

    • v1=v2,v1,v2指向同一个对象
    • v1=v2[:],v1,v2指向不同对象
  4. 类和对象

    • 类(Class): 用来描述具有相同的属性和方法的对象的集合。它定义了该集合中每个对象所共有的属性和方法。对象是类的实例。一个模块可包含多个类。
    • 类变量:类变量在整个实例化的对象中是公用的。类变量定义在类中且在函数体之外。类变量通常不作为实例变量使用
    • 实例变量:在类的声明中,属性是用变量来表示的。这种变量就称为实例变量,是在类声明的内部但是在类的其他成员方法之外声明的。
    • 局部变量:定义在方法中的变量,只作用于当前实例的类。
    • 数据成员:类变量或者实例变量, 用于处理类及其实例对象的相关的数据。
    • 继承:即一个派生类(derived class)继承基类(base class)的字段和方法。
    • 实例化:创建一个类的实例,类的具体对象。
    • 对象:通过类定义的数据结构实例。对象包括两个数据成员(类变量和实例变量)和方法。
    • 方法:类中定义的函数。
    • 方法重写:如果从父类继承的方法不能满足子类的需求,可以对其进行改写,这个过程叫方法的覆盖(override),也称为方法的重写。
    • self:类的方法与普通的函数只有一个特别的区别——它们必须有一个额外的第一个参数名称,但是在调用这个方法的时候你不为这个参数赋值。这个特别的变量指实例本身,按照惯例它的名称是self。
    • 初始化:
    • __del__()方法,在对象消逝前调用
    • 默认继承:在Python 3.x中取消了经典类,默认都是新式类,并且不必显式的继承object,也就是说以下一样:
      • class Person(object):pass
      • class Person():pass
      • class Person:pass
class ClassName:
   '类的帮助信息'   #类文档字符串
   class_suite  #类体

#!/usr/bin/python
# -*- coding: UTF-8 -*-
 
class Employee:
   '所有员工的基类'
   empCount = 0 # 类变量,它的值将在这个类的所有实例之间共享。你可以在内部类或外部类使用 Employee.empCount 访问。
 
   def __init__(self, name, salary):
      self.name = name  # 实例变量
      self.salary = salary
      Employee.empCount += 1
   
   def displayCount(self): # 方法
     print "Total Employee %d" % Employee.empCount
 
   def displayEmployee(self):
      print "Name : ", self.name,  ", Salary: ", self.salary


  1. 异常
try:
	<语句>        #运行别的代码
except <名字><语句>        #如果在try部份引发了'name'异常
except <名字> as <数据>: # except (exc1, exc2) as var 可以同时捕获多种类别的异常
	<语句>        #如果引发了'name'异常,获得附加的数据(err)
else:
	<语句>        #如果没有异常发生
finally:
	<语句>        #如果没有异常发生

# except不带异常名字
try:
    正常的操作
except:
    发生异常,执行这块代码  # 捕获所有异常,不推荐
else:
    如果没有异常执行这块代码


# 主动触发异常
raise [Exception [, args [, traceback]]]

# 定义函数
def temp_convert(var):
    try:
        return int(var)
    except ValueError as err:
        print("参数没有包含数字\n", err)

# 调用函数
temp_convert("xyz")

  1. 常用内置函数

  2. 常用标准库:

  3. 特殊的方法:

方法说明
__init__(self,...)这个方法在新建对象恰好要被返回使用之前被调用。
__del__(self)恰好在对象要被删除之前调用。
__str__(self)在我们对对象使用print语句或是使用str()的时候调用。
__lt__(self,other)当使用小于运算符(<)的时候调用。类似地,对于所有的运算符(+,>等等)都有特殊的方法。
__getitem__(self,key)使用x[key]索引操作符的时候调用。
__len__(self)对序列对象使用内建的len()函数的时候调用。
  1. 包裹和解包裹:
    • 包裹参数分为包裹位置参数(对应元组)和包裹关键字参数(对应字典)
    • 包裹(packing)的关键在于定义函数时,在相应元组或字典前加***。所有多余的参数被包裹参数收集,合并成一个元组或字典。
    • 解包裹(unpacking)是指在函数调用时,将元组参数或字典解开。
    • 在定义或者调用参数时,参数的几种传递方式可以混合。但在过程中要小心前后顺序。基本原则是,先位置,再关键字,再包裹位置,再包裹关键字,并且根据上面所说的原理细细分辨。
    • 包裹和解包裹并不是相反操作,是两个相对独立的过程。
# 包裹
def func(a,*name):
    print type(name)
    print name

func(1,4,6)
func(5,6,7,1,2,3)

def func(**dict):
    print type(dict)
    print dict

func(a=1,b=9)
func(m=2,n=1,c=11)

# 解包裹
def func(a,b,c):
    print a,b,c

args = (1,3,4)
func(*args)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值