揭阳网站建设托管discuz做商城网站

当前位置: 首页 > news >正文

揭阳网站建设托管,discuz做商城网站,网站推广服务网,wordpress邮件收不到一、Python介绍 1、Python优点 学习成本低 开源 适应⼈群⼴泛 应⽤领域⼴泛 2、Python解释器 Python解释器作用#xff1a;运行Python文件 Python解释器分类 CPython#xff1a;C语⾔开发的解释器[官⽅]#xff0c;应⽤⼴泛的解释器。 IPython#xff1a;基于CPyth…一、Python介绍 1、Python优点 学习成本低 开源 适应⼈群⼴泛 应⽤领域⼴泛 2、Python解释器 Python解释器作用运行Python文件 Python解释器分类 CPythonC语⾔开发的解释器[官⽅]应⽤⼴泛的解释器。 IPython基于CPython的⼀种交互式解释器。 PyPy基于Python语⾔开发的解释器。 Jython运⾏在Java平台的解释器直接把Python代码编译成Java字节码执⾏。 IronPython运⾏在微软.Net平台上的Python解释器可以直接把Python代码编译成.Net的字节码。 3、PyCharm PyCharm是⼀种Python IDE集成开发环境 1PyCharm新建⽂件 项⽬管理空⽩位置 — 右键 – New – PythonFile 2运⾏⽂件 代码内部 — 右键 – Run 3修改代码⽂字格式 [fifile] – [Settings]/[Default Settings] – [Editor] – [Font] 4Debug⼯具 断点位置⽬标要调试的代码块的第⼀⾏代码即可即⼀个断点即可。 打断点的⽅法单击⽬标代码的⾏号右侧空⽩位置在⽂件内部任意位置 — 右键 – Debug’⽂件名’ — 即可调出Debug⼯具⾯板 – 单击StepOver/F8即可按步执⾏代码。 Debug输出⾯板 Debugger显示变量和变量的细节 Console输出内容 4、查看python版本 cmd – Python3 -V 二、Python基础语法 1、编码 Python 3 源码文件以 UTF-8 编码所有字符串都是 unicode 字符串 2、标识符 第一个字符必须是字母表中字母或下划线 _标识符的其他的部分由字母、数字和下划线组成标识符对大小写敏感可以用中文作为变量名 3、保留字 保留字即关键字我们不能把它们用作任何标识符名称。 Python 的标准库提供了一个 keyword 模块可以输出当前版本的所有关键字 import keywordkeyword.kwlist [False, None, True, and, as, assert, break, class, continue, def, del, elif, else, except, finally, for, from, global, if, import, in, is, lambda, nonlocal, not, or, pass, raise, return, try, while, with, yield]4、注释 Python中单行注释以 # 开头

第一个注释

print (Hello, Python!) # 第二个注释多行注释可以用多个 #号还有 和

第一个注释

第二个注释

第三注释 第四注释第五注释 第六注释5、行与缩进 缩进的空格数是可变的但是同一个代码块的语句必须包含相同的缩进空格数 6、多行语句 Python 通常是一行写完一条语句但如果语句很长我们可以使用反斜杠 \ 来实现多行语句 total item_one \item_two \item_three在 [], {}, 或 () 中的多行语句不需要使用反斜杠 \ total [item_one, item_two, item_three,item_four, item_five]7、空行 函数之间或类的方法之间用空行分隔表示一段新的代码的开始。类和函数入口之间也用一行空行分隔以突出函数入口的开始。 空行与代码缩进不同空行并不是 Python 语法的一部分。书写时不插入空行Python 解释器运行也不会出错。但是空行的作用在于分隔两段不同功能或含义的代码便于日后代码的维护或重构。 空行也是程序代码的一部分。 8、同一行显示多条语句 Python 可以在同一行中使用多条语句语句之间使用分号 ; 分割 name wmh; print(name)9、多个语句构成代码组 缩进相同的一组语句构成一个代码块我们称之代码组。 像if、while、def和class这样的复合语句首行以关键字开始以冒号( : )结束该行之后的一行或多行代码构成代码组。 我们将首行及后面的代码组称为一个子句(clause) 10、print 输出 print 默认输出是换行的如果要实现不换行需要在变量末尾加上 end xa yb

换行输出

print( x ) print( y )print(———)

不换行输出

运算符描述实例赋值运算符c a b 将 a b 的运算结果赋值为 c加法赋值运算符c a 等效于 c c a-减法赋值运算符c - a 等效于 c c - a*乘法赋值运算符c * a 等效于 c c * a/除法赋值运算符c / a 等效于 c c / a%取模赋值运算符c % a 等效于 c c % a**幂赋值运算符c ** a 等效于 c c ** a//取整除赋值运算符c // a 等效于 c c // a

海象运算符 可在表达式内部为变量赋值。Python3.8 版本新增运算符 List [r,e,x,h,a,o] for i in range(Len : len(List)):print(List[i],end)

rexhao4、位运算符摆烂

运算符描述实例按位与运算符参与运算的两个值,如果两个相应位都为1,则该位的结果为1,否则为0(a b) 输出结果 12 二进制解释 0000 1100|按位或运算符只要对应的二个二进位有一个为1时结果位就为1。(a | b) 输出结果 61 二进制解释 0011 1101^按位异或运算符当两对应的二进位相异时结果为1(a ^ b) 输出结果 49 二进制解释 0011 0001~按位取反运算符对数据的每个二进制位取反,即把1变为0,把0变为1。~x 类似于 -x-1(~a ) 输出结果 -61 二进制解释 1100 0011 在一个有符号二进制数的补码形式。左移动运算符运算数的各二进位全部左移若干位由右边的数指定移动的位数高位丢弃低位补0。a 2 输出结果 240 二进制解释 1111 0000右移动运算符把“左边的运算数的各二进位全部右移若干位”右边的数指定移动的位数a 2 输出结果 15 二进制解释 0000 1111 5、逻辑运算符 运算符逻辑表达式描述实例andx and y布尔与 - 如果 x 为 Falsex and y 返回 x 的值否则返回 y 的计算值。(a and b) 返回 20。orx or y布尔或 - 如果 x 是 True它返回 x 的值否则它返回 y 的计算值。(a or b) 返回 10。notnot x布尔非 - 如果 x 为 True返回 False 。如果 x 为 False它返回 True。not(a and b) 返回 False 6、成员运算符 运算符描述实例in如果在指定的序列中找到值返回 True否则返回 False。x 在 y 序列中 , 如果 x 在 y 序列中返回 True。not in如果在指定的序列中没有找到值返回 True否则返回 False。x 不在 y 序列中 , 如果 x 不在 y 序列中返回 True。 7、身份运算符 运算符描述实例isis 是判断两个标识符是不是引用自一个对象x is y, 类似 id(x) id(y) , 如果引用的是同一个对象则返回 True否则返回 Falseis notis not 是判断两个标识符是不是引用自不同对象x is not y 类似 id(x) ! id(y)。如果引用的不是同一个对象则返回结果 True否则返回 False。 id()获取对象内存地址。 is 与 区别is 用于判断两个变量引用对象是否为同一个 用于判断引用变量的值是否相等。 8、运算符优先级 运算符描述(expressions…),[expressions…], {key: value…}, {expressions…}圆括号的表达式x[index], x[index:index], x(arguments…), x.attribute读取切片调用属性引用await xawait 表达式*乘方(指数)x, -x, ~x正负按位非 NOT, , /, //, %乘矩阵乘除整除取余, -加和减, 移位按位与 AND^按位异或 XORin,not in, is,is not, , , , , !, 比较运算包括成员检测和标识号检测not x逻辑非 NOTand逻辑与 ANDor逻辑或 ORif – else条件表达式lambdalambda 表达式:赋值表达式 Pyhton3 已不支持 运算符 六、分支 1、if Python 中用 elif 代替了 else if所以if语句的关键字为if - elif - else 使用缩进来划分语句块相同缩进数的语句在一起组成一个语句块。 在Python中没有switch – case语句。 2、while 在 Python 中没有 do…while 循环 使用 CTRLC 来退出死循环 支持while - else语句break跳出不执行else 3、for for 循环用来遍历任何可迭代对象 break 语句用于跳出当前循环体 range(起始值, 结束值, 步长)创建数字序列 4、pass pass是空语句是为了保持程序结构的完整性。 pass 不做任何事情一般用做占位语句空着会报错 5、迭代器 1迭代器概述 迭代用来访问集合字符串列表或元组对象元素 迭代器一个可以记住遍历的位置的对象 迭代器对象从集合的第一个元素开始访问直到所有的元素被访问完结束只能往前不会后退 迭代器的两个基本的方法iter() 和 next() list[1,2,3,4] it1 iter(list) # 创建迭代器对象 print (next(it1)) # 输出迭代器的下一个元素

1it2 iter(list) # 创建迭代器对象

for x in it2:print (x, end)

1234

2迭代器创建 把一个类作为一个迭代器使用需要在类中实现两个方法 iter() 与 next()
iter() 返回一个特殊的迭代器对象 这个迭代器对象实现了 next() 并通过 StopIteration 异常标识迭代的完成 next() 会返回下一个迭代器对象 创建一个返回数字的迭代器初始值为 1逐步递增 1 class MyNumbers:def iter(self):self.a 1return selfdef next(self):x self.aself.a 1return xmyclass MyNumbers() myiter iter(myclass)print(next(myiter))3StopIteration StopIteration 异常用于标识迭代的完成防止出现死循环 import sys # 引入 sys 模块list[1,2,3,4] it iter(list) # 创建迭代器对象while True:try:print (next(it))except StopIteration:sys.exit()在next()方法中我们可以设置在完成指定循环次数后触发 StopIteration 异常来结束迭代 class MyNumbers:def iter(self):self.a 1return selfdef next(self):if self.a 20:x self.aself.a 1return xelse:raise StopIterationmyclass MyNumbers() myiter iter(myclass)for x in myiter:print(x)6、生成器 生成器使用了 yield 的函数 生成器是一个返回迭代器的函数只能用于迭代操作更简单点理解生成器就是一个迭代器 在调用生成器运行的过程中每次遇到 yield 时函数会暂停并保存当前所有的运行信息返回 yield 的值, 并在下一次执行 next() 方法时从当前位置继续运行

使用 yield 实现斐波那契数列

import sysdef fibonacci(n): # 生成器函数 - 斐波那契a, b, counter 0, 1, 0while True:if (counter n): returnyield aa, b b, a bcounter 1 f fibonacci(10) # f 是一个迭代器由生成器返回生成while True:try:print (next(f), end )except StopIteration:sys.exit()七、函数 1、定义函数 def 函数名参数列表:函数体return [表达式] 结束函数选择性地返回一个值给调用方 不带表达式的 return 相当于返回 None 2、传参 1值传递和引用传递 类型属于对象对象有不同类型的区分变量是没有类型的 不可变类型类似 C 的值传递如整数、字符串、元组。可变类型类似 C 的引用传递如 列表、字典。 python 中一切都是对象严格意义我们不能说值传递还是引用传递我们应该说传不可变对象和传可变对象 2必需参数 必需参数须以正确的顺序传入函数。调用时的数量必须和声明时的一样 3关键字参数 关键字参数允许函数调用时参数的顺序与声明时不一致解释器能够用参数名匹配参数值 def printinfo( name, age ):print (名字: , name)print (年龄: , age)returnprintinfo( age50, namewmh )4默认参数 调用函数时如果没有传递参数则会使用默认参数 def printinfo( name, age 35 ):print (名字: , name)print (年龄: , age)returnprintinfo( namewmh )5不定长参数 你可能需要一个函数能处理比当初声明时更多的参数。这些参数叫做不定长参数和上述 2 种参数不同声明时不会命名。 def functionname([formal_args,] *var_args_tuple ):function_suitereturn [expression]星号 * 的参数会以元组(tuple)的形式导入存放所有未命名的变量参数 def printinfo( arg1, *vartuple ):print (arg1)print (vartuple)returnprintinfo( 70, 60, 50 )

70

(60, 50)加了两个星号 ** 的参数会以字典的形式导入

def printinfo( arg1, **vardict ):print (输出: )print (arg1)print (vardict)returnprintinfo(1, a2,b3)

1

{a: 2, b: 3}参数中星号 * 可以单独出现

def f(a,b,*,c):return abc f(1,2,3) # 报错 f(1,2,c3) # 正常3、匿名函数 使用 lambda 来创建匿名函数 lambda 函数拥有自己的命名空间且不能访问自己参数列表之外或全局命名空间里的参数 虽然 lambda 函数看起来只能写一行却不等同于 C 或 C 的内联函数后者的目的是调用小函数时不占用栈内存从而增加运行效率 lambda [arg1 [,arg2,…..argn]]:expressionsum lambda a,b: a b sum(1,2) # 34、强制位置参数 Python3.8 新增了一个函数形参语法 / 用来指明函数形参必须使用指定位置参数不能使用关键字参数的形式 def f(a, b, /, c, d, *, e, f):print(a, b, c, d, e, f)return f(10, 20, 30, d40, e50, f60) # 对 f(10, b20, c30, d40, e50, f60) # 错b 不能使用关键字参数的形式 f(10, 20, 30, 40, 50, f60) # 错e 必须使用关键字参数的形式