python底子学习

分享
手机软件开发 2024-9-12 03:25:52 113 0 来自 中国
根本语法

解释:

单行:
# 单行
多行:
'''
第一行
第二行
'''
"""
第一行
第二行
"""
六种数据范例

不可变数据(3 个):Number(数字)、String(字符串)、Tuple(元组);
可变数据(3 个):List(列表)、Dictionary(字典)、Set(集合)。
type()大概isinstance()判断数据范例
del var_1,var_2  删除单个或多个对象

  • number(数字)
    包罗int,float,bool,complex(复数)四种
数值运算:
>>>5 + 4  # 加法9>>> 4.3 - 2 # 减法2.3>>> 3 * 7  # 乘法21>>> 2 / 4  # 除法,得到一个浮点数0.5>>> 2 // 4 # 除法,得到一个整数(整除)0>>> 17 % 3 # 取余 2>>> 2 ** 5 # 乘方32

  • string(字符串)
    用'大概"括起来,\转义特殊字符
+号:字符勾通接符
*号:赋值当前字符串,紧跟的数字代表赋值次数
字符串索引:
索引:变量[下标] 从前去后:0n,从后往前-1-n
截取:变量[头下标:尾下标]
str = 'Runoob'print (str)          # 输出字符串print (str[0:-1])    # 输出第一个到倒数第二个的所有字符print (str[0])       # 输出字符串第一个字符print (str[2:5])     # 输出从第三个开始到第五个的字符print (str[2:])      # 输出从第三个开始的后的所有字符print (str * 2)      # 输出字符串两次print (str + "TEST") # 毗连字符串print (r'Ru\noob')   # 加上r表现原样输出不转义反斜杠()可以作为续行符,表现下一行是上一行的连续。也可以使用 """...""" 大概 '''...''' 超过多行。
字符串中的元素不可变,好比不能如许赋值:str[1] = 'a'

  • list(列表)
列表中元素的范例可以不雷同,它支持数字,字符串以致可以包摆列表(嵌套)
list = [ 'abcd', 786 , 2.23, 'runoob', 70.2 ]可以和字符串一样截取、索引和拼接,差别的是列表内的元素是可变的,可以举行赋值利用:list[1]='b'
删除一个元素:del list[2]

  • tuple(元组)
    和列表雷同,差别之处在于元素不可变,不能修改
tuple=('abcd', 786 , 2.23, 'runoob', 70.2 )固然元组不可修改,但可以包罗可变的元素,好比列表。
特殊规则:
tup1 = ()    # 空元组tup2 = (20,) # 一个元素,须要在元素后添加逗号

  • set(集合)
    一个无序不重复元素的序列,
student = {'Tom', 'Jim', 'Mary'}a = set('abcde')b = set('bcdf')print(a - b)     # a和b的差集 print(a | b)     # a和b的并集print(a & b)     # a和b的交集print(a ^ b)     # a和b中差别时存在的元素

  • dictionary(字典)
列表是有序的对象集合,字典是无序的对象集合。两者之间的区别在于:字典当中的元素是通过键来存取的,而不是通过偏移存取。
在同一个字典中,键(key)必须是唯一的。
定义:
dict = {}dict['one'] = "1 - 菜鸟教程"dict[2]     = "2 - 菜鸟工具"tinydict = {'name': 'runoob','code':1, 'site': 'www.runoob.com'}取值:
print (dict['one'])       # 输出键为 'one' 的值print (dict[2])           # 输出键为 2 的值print (tinydict)          # 输出完备的字典print (tinydict.keys())   # 输出所有键print (tinydict.values()) # 输出所有值

  • 范例转换
运算符
算数运算符:+、-、、/、%、*、//
比较运算符:==、!=、>、<、>=、<=
赋值运算符:=、+=、-=、=、.=、/=、%=、*=、//=
位运算符:&、|、^、~、<<、>>
逻辑运算符:and、or、not
成员运算符:in、not in
身份运算符:is、is not
if语句(没有switch)

if condition_1:    statement_block_1elif condition_2:    statement_block_2else:    statement_block_3while语句(没有do...while)

while condition:    statement_blockwhile condition:    statement_block1else:    statement_block2for循环

for <variable> in <sequence>:    <statements>else:    <statements>break跳出循环
continue跳过当前循环剩余语句,继续下一轮循环
pass空语句
迭代器和天生器iter,yield

自定义函数

def 函数名(参数列表):    函数体

  • python 函数的参数转达:

  • 不可变范例:雷同 c++ 的值转达,如 整数、字符串、元组。如fun(a),转达的只是a的值,没有影响a对象本身。好比在 fun(a)内部修改 a 的值,只是修改另一个复制的对象,不会影响 a 本身。
  • 可变范例:雷同 c++ 的引用转达,如 列表,字典。如 fun(la),则是将 la 真正的传已往,修改后fun外部的la也会受影响
  • 必须参数:
入参方式:test(123)  严酷按照序次匹配,不填会报错

  • 关键字参数:
入参方式:test(name="123",sex="boy")   序次可变,会主动辨认

  • 默认参数:
定义方式def test(name="123")
入参方式:test()

  • 不定长参数
定义方式:
def test(a,*b,c) b以元组情势传入
def test(a,**b,c) b以字典情势传入
注:不定长参数反面的c参数肯定要用关键字参数传入(c=X)。
匿名函数:

lambda [arg1 [,arg2,.....argn]]:expression
例:
# 可写函数阐明sum = lambda arg1, arg2: arg1 + arg2# 调用sum函数print ("相加后的值为 : ", sum( 10, 20 ))return语句:退出函数并返回一个表达式。不带参数的return返回None
变量作用域

L (Local) 局部作用域
E (Enclosing) 闭包函数外的函数中
G (Global) 全局作用域
B (Built-in) 内建作用域
以 L –> E –> G –>B 的规则查找
只有模块(module),类(class)以及函数(def、lambda)才会引入新的作用域
全局变量和局部变量

定义在函数内部的变量拥有一个局部作用域,定义在函数外的拥有全局作用域。
当内部作用域想修改外部作用域的变量时,用global和nonlocal(嵌套作用域时使用)关键字
模块

可以明白为一个.py末了的文件,内里定义了一些参数或方法供外部引用。
import module1,module2,...  引入整个文件from module import func1,func2   引入部分方法from module import *  引入全部name属性

一个模块被另一个步伐第一次引入时,其主步伐将运行。如果我们想在模块被引入时,模块中的某一步伐块不实行,我们可以用name属性来使该步伐块仅在该模块自身运行时实行。
内置函数dir()找到模块内定义的所著名称


一种管理 Python 模块定名空间的情势
目次只有包罗一个叫做 init.py 的文件才会被认作是一个包
import sound.effects.echofrom sound.effects import echo从一个包中导入*
init.py中设置参数:
__all__ = ['echo','reverse'];输出

str()print()write()format() zfill() ljust() rjust() center()等方法格式化输出
输入

input() 从键盘读入open() 从文件读入错误处理惩罚

try:    f = open('myfile.txt')    s = f.readline()    i = int(s.strip())except OSError as err:  //处理惩罚对应错误    print("OS error: {0}".format(err))except (TypeError,ValueError):  //可以同时处理惩罚多个    print("Could not convert data to an integer.")except:   //default错误    print("Unexpected error:", sys.exc_info()[0])    raiseelse:  //放在最反面,没有发生任何错误时实行    print("NO Error")finally:  //无论怎样都会实行的清算步伐    print("goodbye")抛出一个非常

raise NameError('msg')面向对象

定义类:

class Name:    ....类对象

变量/方法
init方法:实例化时主动调用
类的方法与寻常的函数只有一个特殊的区别——它们必须有一个额外的第一个参数名称, 按照惯例它的名称是 self(可以自定义),代表类的实例。
class Test:    def prt(self):        print(self)        print(self.__class__) t = Test()t.prt()继续:

class DerivedClassName(BaseClassName1):    ....    class DerivedClassName(moduleName.BaseClassName1):class DerivedClassName(BaseClassName1,BaseClassName2):若是父类中有雷同的方法名,而在子类使用时未指定,python从左至右搜刮 即方法在子类中未找到时,从左到右查找父类中是否包罗方法
子类可以重写父类的方法,super()方法用来调用父类的方法。
私有属性/私有方法:用__开头,只能在类内部调用
__privateattrs
def __privatemethod
您需要登录后才可以回帖 登录 | 立即注册

Powered by CangBaoKu v1.0 小黑屋藏宝库It社区( 冀ICP备14008649号 )

GMT+8, 2024-10-19 08:52, Processed in 0.142645 second(s), 32 queries.© 2003-2025 cbk Team.

快速回复 返回顶部 返回列表