我是靠谱客的博主 虚幻樱桃,最近开发中收集的这篇文章主要介绍Python 基础语法,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

  • 变量
    • python是弱类型语言,也就是说在程序真正运行的那一刻前,解释器是不知道变量的类型的,需要先进行类型推断
    • python变量可以随意切换数据类型,因为并未指定,所以切换起来也非常方便
    • 与Java不同的是,java是强类型准动态语言,所有变量声明前必须指定数据类型
  • 数据类型
    • 基本数据类型
      • int 整型
      • float 浮点型:精度为小数点后16位
      • boolean 真假 1 or 0
    • 引用数据类型
      • str 字符
      • list 列表
      • tupe 元祖
      • set 集合
      • dict 字典
  • 获取数据类型函数
    • type()
  • 格式化输出
    • 意义:因为是弱类型语言,某些时刻需要规定输出的数据类型的时候,就要使用格式化输出
    • 格式化输出不仅能指代本类型变量 也能将非本类型变量数据类型转换
    • 语法
      • %s 字符串
      • %d 整数 int
      • %f 浮点数 %.2f 小数点后保留两位
      • %03d 保留三位数,如果不够就补零,如果超过就不变
    • 例子
      • println(‘我的名字是%s,我的年龄是%d’ % (a,b))
      • println(f’我的名字是{a}’,我的年龄是{b})
  • 转义字符
    • n 换行
    • t table
    • print(‘hello’,end=’n’) 默认为n 可以自行更换
  • 强制类型转换
    • eval() 执行字符串表达式,并返回结果
    • int() 转整型
    • float() 转浮点型
    • list() 元祖转列表
    • tuple() 列表转元祖
  • 逻辑运算符
    • and => &&
    • or => ||
    • 三目运算符 操作A if 条件语句 操作B
    • not 取反
  • 循环
    • if循环
      • 不用{}修饰,只是用table缩进修饰方法体
        • 语法
        • if 条件语句: +回车
    • while循环
      • 语法
        • whie 条件语句 :+回车
        • continue 跳过本次循环
        • break 终止循环
        • while else
          • 正常操作的时候 运行完毕后会在运行else的程序:break 是非正常运行,break出现执行 else则不执行
          • else没啥用
        • for i in 变量
          • break跳出循环
          • continue跳出循环
          • else 同上
  • 字符串操作
    • 切片
      • str[startindex:endindex:length]
        • 切片,开始下标,结束下标,步长
        • 区间左闭右开
        • length 是-1的时候反方向切片
        • 当区间方向和步长方向不一致的时候不会获取内容
        • 5:1:1方向不一致,1:5:-1方向也不一致,::-1
    • 查找
      • find
        • find(str,startindex,endindex)
        • rfind(str,startindex,endindex)
        • 不存在,返回-1,如果直接用str[find()],会出现不可知错误,因为如果没有找到的话,返回-1,就到会后一个字符上去了,而全程不可知
      • index
        • index(str,startindex,endindex)
        • rindex(str,startindex,endindex)
        • 如果不存在,抛出异常
      • replace
        • replace(oldchar,newchar,num)
        • num默认为none,全部替换
        • 当num数量超过原有数量后,只会全部替换
        • num数量小于原有数量-1时,可以选择替换几个
      • split
        • split(str,num)
        • num默认是-1,也就是全部切割
        • 当num不是-1的时候,只会切割指定数量 的块
      • join
        • join(iterable)
        • 连接可迭代容器,用str对容器内元素一 一连接
      • upper
        • 转大写
      • lower
        • 转小写
    • 删除
      • lstrip :删除字符串左侧空白字符
      • rstrip : 删除字符串右侧空白字符
      • ljust(长度,字符串) :返回一个字符串,左对齐, 默认为空格进行长度填充
      • rjust 同上右侧
      • center : 居中对齐
    • 判断
      • startwith(str,startindex,endindex)
      • endwith(str,startindex,endindex)
      • isalpha():判断是否为字母
      • isdigit():判断是否为数字
      • isalnum()判断是否为字母数字混合编写
      • isspace:判断是否为空
  • 列表
    • 定义
      • 有序可变可迭代集合
      • 可以存储不同类型的变量
    • 语法
      • [a,b,c]
    • 易错点
      • 当循环遍历删除列表的时候,因为随着删除的进行,列表下标同时也在改变,原本第2个元素下标从1到0不会再被删除,所以不能用这种方式删除. 只能从最后开始删,类似stringbuff
    • API
      • 增加
        • Extend (iterator)尾部追加,如果数据是一个列表,则会逐一遍历元素追加到原列表集合中,简单理解合并两个列表
        • append 尾部追加变量,如果变量是列表则会视为一个元素,不想extend逐一追加进去,直接尾部追加
        • insert(index,object) 将元素插入到制定下标处
      • 删除
        • del
          • del list[index] 删除列表中指定下标元素
          • del list 删除整个列表
        • pop
          • list.pop() 默认删除最后一个元素并返回被删除的元素
          • list.pop(index) 删除指定下标元素并返回被删除的元素
        • remove
          • list.remove(元素内容) 删除指定内容元素,如果出现重复,只删除第一次出现的元素
      • 排序
        • sort(reverse=Flase) 默认正序,True为倒叙
        • reverse() 倒叙
      • 修改
        • list[index]=xxx 修改内容值
      • 复制
        • copy() :复制list 浅拷贝,创建新的栈内存空间,堆内存指向新的栈空间
  • 元祖
    • 定义:不可变集合,类似scala中的val list 而列表对应的是scala中的listbuffer 集合中的元素可以更改
      • 语法
        • (a,b,c)(tuple)
      • 操作
          • 不可变集合不可增加元素
          • 不可变集合不可删除元素
          • 肯定也是不可修改拉
          • index() 如果元素存在就返回下标,如果不存在就报错
          • count() 统计出现次数
          • len() 统计元素个数
      • 常用操作
        • 自动拆包
          • a,b,c=tuple1
        • 格式化字符串
          • print(" %s "% tuple1)
        • 自动组包
          • tuple1=a,b,c
  • 字典
    • 定义: java中的keymap 键值对 hashmap
    • 语法:{‘tom’:1,‘age’:2} (dict)
    • 易错点
      • {}空的大括号是字典用的,但是空set集合是不可以这么用的,毕竟python语法不严格
    • 操作API
        • dict[key]=value 如果存在就修改,不存在就添加
        • del dict 直接删除
        • del dict[key] 删除指定键值对
        • claer 清空
        • dict[key]=value 如果存在就修改,不存在就添加
        • dict[key] 根据key查询value
        • dict.get(key,value) 第二参数可省略,如果不写并且查询不到就返回null, 第二参数写了,如果查询不到就使用这个参数
        • dict.keys() 获取所有keys 目测是列表类型但是type返回值类型为dict_keys
        • dict.value() 同上获取所有的value 返回值类型 dict_values
        • dict.items() 获取所有的键值对,每对键值对为一组返回,返回值类型为dict_items
        • 遍历
          • for i in dict.keys()
          • for i in dict.values()
          • for i,j in dict.items()
  • 集合
    • 定义:hashset 去重的list
    • 易错点
      • 创建空的集合要用set()方法不能用{},因为空{}是dict用的
    • 操作API
        • add 顺序添加
        • upadate() 参数必须是可排序序列:str list等 int不可以会报错
        • set.remove() 删除指定元素,不存在就报错
        • set.discard() 删除指定元素,不存在不会报错
        • set.pop() 因为set是无序集合,所以pop只能随机删除某个元素并返回该元素
        • 改不了,想啥呢本来就是去重用的
        • in
        • not in
        • 遍历
          • for i in set
  • 公共方法
      • :合并
    • * : 复制
    • in :存在
    • not in :不存在
    • del 删除
    • len 长度
    • max 返回容器中的最大值
    • min 返回容器中的最小值
    • rang(start,end,step): 生成从start 到end 的数步长为step 给for循环使用
    • enumerate(容器,start=x):传入可迭代容器,start起始索引自定义,返回给for循环使用
  • 列表推导式
    • 定义:就是写起来方便的循环,没啥用
    • 语法
      • list =[返回值 for 返回值 in rang()]
      • list =[返回值 for 返回值 in rang() if 条件语句]
      • 多个for 循环
        • list=[(i,j) for i in rang(1,3) for j in rang(1,3)]
      • 字典推导式
        • new_dict={key:value for key,value in dict.item()}
  • 函数
    • “”“说明文档”""
    • help() 调用函数说明文档
    • 局部变量&全局变量
      • 全局变量关键字:global 如果想修改全局变量就要声明一下
      • 可变参数不用声明global,直接修改即可
    • 参数列表形式
      • 位置参数,按照位置顺序传递
      • 关键字参数,按照形参变量名传递
        • def demo(*,name,age) 有 * 就是表示必须使用关键字参数传递
        • 如果有位置参数,位置参数必须在关键词参数前面
        • 示例:user_info(‘小明’, gender=‘男’, age=16)
      • 缺省参数
        • 纯为了省事,有的参数可以不必传,就赋予默认值
        • 示例:def printinfo(name, age=35):
      • 不定长参数
        • 定义:可变长参数,类似java可变长参数 : public static void par(String… strings)
          • def functionname(a, *args, **kwargs):
          • args接收无名参数整合为元祖,调用处也可以直接传递元祖语法为 *args
          • kwargs接收键值对形式数据保存为字典dict 调用处也可以直接传递字典,语法为 **args
      • 缺省参数在不定长参数后面
        • def sum_nums_3(a, *args, b=22, c=33, **kwargs)
        • 当有多个缺省参数时,可以放在不定长参数后面(*args) 但是如果有(**kwargs)时,kwargs参数必须放在最后面
      • 解包
        • l = (1, 3)
        • demo(*l)
        • d = {‘name’: ‘张三’, ‘age’: 30}
        • demo(**d)
        • 函数为 func(name=‘张三’,age=30)
        • 字典解包时key需要与形参一一对应,完全一致
    • 递归
      • Feibonacci Sequence
        • if i1 or i2 return 1 return f(n-1)+f(n-2)
    • lambda表达式
      • 语法
        • lambda 返回值:条件,计算
      • 示例
        • print(lambda :100 )
        • print(lambda a,b:a+b)
        • 判断
          • print(lambda a: if a>0 else 1)
          • print(lambda a: x==1 )
        • 字典排序
          • dict.sort(key=lambda x:x[key],reverse=True)
        • 可变参数
          • lambda *args:args
          • lambda **kwargs=kwargs
  • 高阶函数
    • abs求绝对值
    • round四舍五入 int取整,向上取整,类似Java向上取整,但是api好像没有向下取整
    • map 跟scala中的map方法一致,foreach元素,然后对元素依次进行操作
      • 语法map(fun,list),第一个参数可以使函数也可以是lambda表达式,第二个是容器, 不能对字典中的value操作,也不能排序,所以任务直接给到了sort进行排序,map只是对每个元素进行操作
    • reduce
      • import functools functools.reduce(fun(),list)
      • 归并排序,自定义可以实现x1+x2 也可以实现x1-x2
    • filter
      • filter(fun(),list)
      • filter中的函数返回值必须是Boolean类型,过滤完成后,只会保留True的结果数据
  • I/O操作
    • open(name,mode,encoding)
      • name:文件名
      • mode:操作方式
      • encoding:文件编码
      • 操作模式
        • r 只读
        • w 写
        • a 追加
        • b 二进制
          • 增加原本没有的功能,比如指针位置, w+增加了读取功能,a+和r+指针分别在后,和前.并增加了读取的功能
    • write(str)写
      • 写方法的参数是字符串类型数据
      • read(bit)
        • 参数为本次读取多少字节数据
      • readlines(读取所有行数据)
      • readline(读取一行数据)
    • 文件指针操作
      • file.tell() 获取当前指针下标位置
      • file.seek(offeset,num)
        • offeset是偏移量
        • num状态码
          • 0 : 文件开始位置
          • 1 : 当前位置
          • 2 : 文件末尾位置
      • 易错点:
        • 如果打开模式不是b模式,seek必须要有一个参数为0,二进制模式不受约束
        • 如果打开模式是b,则不支持encoding=utf-8格式打开,需要删除
    • os类库
      • os.remove() 删除文件
      • os.listdir() 获取档期那文件夹下所有文件目录
      • os.rename(oldname,newname)
      • os.mkdir() 创建文件夹
      • os.rmdir() 删除空文件夹
      • os.getcwd() 获取当前目录位置 (pwd)
      • os.chdir() changedir 更改当前位置,cd …/

最后

以上就是虚幻樱桃为你收集整理的Python 基础语法的全部内容,希望文章能够帮你解决Python 基础语法所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(30)

评论列表共有 0 条评论

立即
投稿
返回
顶部