| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> Python知识库 -> python基础知识总结(零基础必看) -> 正文阅读 |
|
[Python知识库]python基础知识总结(零基础必看) |
命令行模式和Python交互模式 命令模式:它的提示符类似 交互模式:在命令行模式下敲命令 在交互模式的提示符 用 执行一个 交互模式的代码是输入一行,执行一行,而命令行模式下直接运行 输入和输出 用
以 当语句以冒号 Python程序是大小写敏感的,如果写错了大小写,程序会报错 数据类型 如果 如果字符串内部既包含 ‘I\’m\”ok”\!’表示I’m “ok”! 转义字符
Python允许用 在Python中,可以直接用 布尔值可以用 空值是Python里一个特殊的值,用 变量本身类型不固定的语言称之为动态语言,与之对应的是静态语言。静态语言在定义变量时必须指定变量类型 在Python中,通常用全部大写的变量名表示常量
还有一种除法是 单个字符的编码,Python提供了 在Python中,采用的格式化方式和C语言是一致的,用 "Hi,%s,you have $%d."%("wangpeng",100000) 另一种格式化字符串的方法是使用字符串的 数据类型:列表list是一种有序的集合,可以随时添加和删除其中的元素 classmates=['王明','李明','赵明','张明'] 索引:classmates[0],是从0开始 用 如果要取最后一个元素,除了计算索引位置外,还可以用 classmates[-1]? == classmates[len(classmates)-1] 往list追加元素,默认到末尾 classmates.append('小铭') 插入元素到指定位置 classmates.insert(1,'小红') 删除list末尾元素,用pop()默认删除最后一个 classmates.pop() 删除list指定元素,用pop(i)删除第i个,第一个序号为0 classmates.pop(1) 替换列表中的元素,用赋值的方式 classmates[0]=‘王明1’ 列表中的元素数据类型可以不同 列表里面可以添加其他列表,但是只能算作一个“大“元素 另一种有序列表叫元组:tuple。tuple和list非常类似,但是tuple一旦初始化就不能修改 获取元素的方法和list是一样的,你可以正常地使用 List使用的是[ ]初始化,而tuple使用的是()初始化,两者都是有序列表,前者可以增加删除修改元素,后者一旦初始化就不能改变元素的值,查找方式相同 如果要定义一个空的tuple,可以写成 条件判断: if <条件判断1>: ??? <执行1> elif <条件判断2>: ??? <执行2> elif <条件判断3>: ??? <执行3> else: <执行4>
birth=int(birth) Python的循环有两种,一种是for...in循环,依次把list或tuple中的每个元素迭代出来 所以
for x in 列表名: 循环体 第二种循环是while循环,只要条件满足,就不断循环,条件不满足时退出循环 While 条件: 循环体 在循环中,
死循环解决方法:可以用 dict的使用(dict全称dictionary)使用键-值(key-value)存储,具有极快的查找速度 字典名称={‘键‘:值, ‘键‘:值, ‘键‘:值, ‘键‘:值} 查找方法:字典名称[‘键‘] 把数据放入dict的方法,除了初始化时指定外,还可以通过key放入 字典名称[‘键‘]=值,之前的值会被后面的值所覆盖掉 判断键是否存在,方式一用 in的方式,会返回布尔值 使用方式:键 in 字典名称 二是通过dict提供的 字典名.get(‘键’,’不存在-1’) dict内部存放的顺序和key放入的顺序是没有关系的,dict的key(键)必须是不可变对象 set和dict类似,也是一组key的集合,但不存储value。由于key不能重复,所以,在set中,没有重复的key set可以看成数学意义上的无序和无重复元素的集合,因此,两个set可以做数学意义上的交集、并集等操作 用& 和 |做运算 添加key用set名.add(key)? 删除key用set名.remove(key) set和dict的唯一区别仅在于没有存储对应的value,但是,set的原理和dict一样,所以,同样不可以放入可变对象 函数 绝对值的函数 函数 数据类型转换函数,比如 函数名其实就是指向一个函数对象的引用,完全可以把函数名赋给一个变量,相当于给这个函数起了一个“别名” 调用函数方式:函数名(参数) 传入的参数务必保证个数正确,数据类型正确,否则报错 定义一个函数要使用 def my_abs(x): ??? if x >= 0: ??????? return x ??? else: ??????? return -x 在Python交互环境中定义函数时,注意Python会出现 空函数 def None(): ???????? pass
Python的函数返回多值其实就是返回一个tuple,但写起来更方便。 定义函数时,需要确定函数名和参数个数;如果有必要,可以先对参数的数据类型做检查;函数体内部可以用 默认函数参数,放在必选参数后,默认参数必须指向不变对象! 可变参数的实现是通过在调用函数时,传入参数为一个list或者tuple形式。
关键字参数,**key, 以传入任意个数的关键字参数 函数原型: def person(name, age, **kw): ??? print('name:', name, 'age:', age, 'other:', kw) extra = {'city': 'Beijing', 'job': 'Engineer'} person('Jack', 24, **extra) name: Jack age: 24 other: {'city': 'Beijing', 'job': 'Engineer'} person('Bob', 35, city='Beijing') name: Bob age: 35 other: {'city': 'Beijing'} 这些关键字参数在函数内部自动组装为一个dict 函数参数部分需要加深理解 如果一个函数在内部调用自身本身,这个函数就是递归函数。 def fact(n): if n==1: return 1 else: return n*fact(n-1) 递归调用的次数过多,会导致栈溢出 Python标准的解释器没有针对尾递归做优化,任何递归函数都存在栈溢出的问题。 切片操作符 例如:>>>L[0:3]表示取L这个list中,从索引 倒数第一个元素的索引是 >>> L[:10]表示取前十个数0~9如果第一个索引是 >>>L[:10:2]表示前十个数,每两个取一个 甚至什么都不写,只写 tuple也可以用切片操作,只是操作的结果仍是tuple 字符串 迭代: 如果给定一个 默认情况下, d = {'a': 1, 'b': 6, 'c': 8} for key in d: ??? print(key) ?????//默认情况下迭代键 for value in d.values(): print(value)? ??//迭代值用for value in d.values() for k,v in d.items(): ?????? print(k,v)? //同时迭代键和值 字符串也可迭代 for x in 'ABC': ?? print(x) 判断一个对象是可迭代对象,方法是通过 >>>from
Python内置的 上面的 列表生成式是Python内置的非常简单却强大的可以用来创建list的生成式 例如创建list[1,2,3,4,5,6,7,8,9,10]
要生成 方式一:循环 >>>L=[] >>>for x in list(range(1,11)): ?????? L.append(x*x) >>>L 方式二: 列表生成式则可以用一行语句代替循环生成上面的list >>> [x * x for x in range(1, 11)] 写列表生成式时,把要生成的元素 生成偶数列表 [x*x for x in range(1,10) if x%2==0] 使用两层循环,可以生成全排列: [m+n for n in 'ABC' for n in 'xyz'] 运用列表生成式,可以写出非常简洁的代码。 >>>Import os //导入os模块 >>>[x for x in os.listdir(‘.‘)]? // os.listdir()可以列车文件和目录
列表生成式也可以用两个变量来生成list 把一个list中所有的字符串变成小写
>>>[ 列表生成式[]中, 使用内建的
在Python中,这种一边循环一边计算的机制,称为生成器:generator 生成器:不必创建完整的list,从而节省大量的空间。 创建方式 把列表生成式的[ ]改为( )便是一个生成器 >>>[ x for x in range(1,11)]? //列表生成式 >>>(x for x in range(1,11))?? //生成器 通过 上面这种不断调用 for x in g: print(x) 而生成器不但可以作用于 可以直接作用于 可以被 生成器都是 凡是可作用于 凡是可作用于 集合数据类型如 Python的 函数式编程的一个特点就是,允许把函数本身作为参数传入另一个函数,还允许返回一个函数! 函数本身也可以赋值给变量,即:变量可以指向函数。 函数名其实就是指向函数的变量!对于 把 既然变量可以指向函数,函数的参数能接收变量,那么一个函数就可以接收另一个函数作为参数,这种函数就称之为高阶函数。 def add(x, y, f): ??? return f(x) + f(y) 调用 (x) + f(y) ==> abs(-5) + abs(6) ==> 11 编写高阶函数,就是让函数的参数能够接收别的函数 Python内建了
>>> def f(x): ???? return x * x >>> r = map(f, [1, 2, 3, 4, 5, 6, 7, 8, 9]) >>> list(r) [1, 4, 9, 16, 25, 36, 49, 64, 81]
在一个列表中去掉偶数 用
>>>sorted([36, 5, -12, 9, -21], key=abs) key指定的函数将作用于list的每一个元素上,并根据key函数返回的结果进行排序 默认情况下,对字符串排序,是按照ASCII的大小比较的,由于'Z' < 'a',结果,大写字母Z会排在小写字母a的前面 忽略大小写来比较两个字符串,实际上就是先把字符串都变成大写(或者都变成小写),再比较。通过 返回函数:函数作为结果值返回。 匿名函数 现在,假设我们要增强
import >>> >>> 64 偏函数:把一个函数的某些参数给固定住(也就是设置默认值),返回一个新的函数,调用这个新函数会更简单。 当函数的参数个数太多,需要简化时,使用 在Python中,一个.py文件就称之为一个模块(Module) ?自己创建模块时要注意命名,不能和Python自带的模块名称冲突。例如,系统自带了sys模块,自己的模块就不可命名为sys.py,否则将无法导入系统自带的sys模块 模块是一组Python代码的集合,可以使用其他模块,也可以被其他模块使用。创建自己的模块时,要注意: 模块名要遵循Python变量命名规范,不要使用中文、特殊字符; 模块名不要和系统模块名冲突,最好先查看系统是否已存在该模块,检查方法是在Python交互环境执行import abc,若成功则说明系统存在此模块。 导入模块 Import 模块名 ,必须牢记类是抽象的模板,比如Student类,而实例是根据类创建出来的一个个具体的“对象”,每个对象都拥有相同的方法,但各自的数据可能不同。 |
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/16 4:44:02- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |