python基础

python基础

print()函数:

可以输出的内容有哪些

输出数字,直接写

输出字符,加单引号或者双引号

输出含有运算符的表达式

将内容输出的目的地:

  • 显示器(控制台)

  • 文件

    fp=open('D:/text.txt','a+')//a+表示以读写的方式打开文件,没有就创建,有就追加
    print('helloworld',file=fp)
    fp.close()
    #将数据输入到文件中,注意:1.所指定的盘符存在 2.使用file=变量名
    

输出不换行:

print('hello','world','python')

转义字符:

\跟实现转义功能的首字母

\n换行符

\t水平制表符,补齐四个制表位(空格位)

\r回车,在一行输出,会覆盖前面的内容

\b回退一格

**书写网址:**http:\\\\www.baidu.com 四个斜杠代表两个斜杠

原样输出:在 ’ 面前跟\

整句原样输出:

print(r(或者R)'hello\nworld')
显示:hello\nworld

注意事项:最后一个字符不能是反斜线(最后一个字符指逗号内,可以出现两个反斜杠)

二进制与字符编码

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-TuOtqmFn-1604908476092)(C:\Users\14301\AppData\Roaming\Typora\typora-user-images\image-20201103205650529.png)]

Unicode:无论中英文,统统用两个字节表示

UTF-8:英文用一个字节,中文用两个字节

print(chr(ob100111001011000))
输出:乘
print(ord('乘'))
输出:20056

标识符和保留字

保留字:

[‘False’, ‘None’, ‘True’, ‘peg_parser’, ‘and’, ‘as’, ‘assert’, ‘async’, ‘await’, ‘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’]

标识符规则:

  • 字母,数字,下划线
  • 不能以数字开头
  • 不能是保留字
  • 严格区分大小写

变量的定义与使用

变量名 = 值

变量由三部分组成:

  • 标识:表示对象所存储的内存地址,使用内置函数id(obj)来获取
  • 类型:表示的是对象的数据类型,使用内置函数type(obj)来获取
  • 值:表示对象所储存的具体数据,使用print(obj)可以将值进行打印输出

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-WRzWhdvI-1604908476094)(C:\Users\14301\AppData\Roaming\Typora\typora-user-images\image-20201103212334026.png)]

数据类型:

int 整数类型

  • 十进制–>默认的进制
  • 二进制–>以0b开头
  • 八进制–>以0o开头
  • 十六进制–>0x开头

float 浮点类型

使用浮点数进行计算时,可能会出现小数位数不确定的情况

解决方案

  • 导入模块decimal
from decimal import Decimal
print(Decimal('1.1')+Decimal('2.2'))#结果是:3.3

bool 布尔类型

  • 布尔类型可以转化为整数
    • Ture->1
    • False->0

str 字符串类型

又称为不可变字符串序列

  • 可以使用单引号,双引号,三(单,双)引号来定义

  • 单引号和双引号定义的字符串必须在一行

    ‘附近,有人’

    “附近,有人”

  • 三引号定义的字符串可以分布在连续多行

    附近

    ​ 有人

数据类型转换

数据类型转str 函数str()

数据类型转int 函数int()

注:字数串为整数数字字符串,才能转

数据类型转float 函数float()

**注:**字数串为数字字符串,才能转(无须要求整数)

注释

  • 单行注释:#

  • 多行注释:没有单独的多行注释标记,将一对三引号之间的代码称为多行注释

  • 中文编码声明注释:在文件开头加上中文声明注释,用以指定源码文件的编码格式

    coding:utf-8

input()输入函数

  • 作用:接收来自用户的输入
  • 返回值类型:输入值的类型为str
  • 值的存储:使用=对输入的值进行存储

eg: present = input(‘你想要什么礼物’)

​ 变量 = input(‘提问内容/提示语’) #需要回答

运算符

  • 算数运算符

    • 标准算数运算符

      +,-,*,/,//(整除)

      注:整除向下取整

      一正一负整除向下取整

    • 取余运算符

      %

      同为正数取余

      一正一负公式:余数=被除数-除数*商

    • 幂运算符

      **

      2**2(表示2的2次方)

  • 赋值运算符

    =:赋值运算符,执行顺序是 右–>左

    支持链式赋值、支持参数赋值(+=,-=等)

    支持系列解包赋值(a,b,c=10,20,30)

    赋值运算符的交换操作

    a,b=10,20
    print('交换前:',a,b)
    a,b=b,a#交换完毕
    print('交换后:',a,b)
    
  • 比较运算符

    • 大于>,<,>=,<=,!=
    • ==:对象value的比较
    • is,is not:对象的id比较
  • 布尔运算符

    • and(且)
    • or(或)
    • not(非)
    • in(包含)
    • not in(不包含)
  • 位运算符

    & 位与:对应数位都是1,结果数位才是1,否则为0

    | 位或 :对应数位都是0,结果数位才是0,否则为1

    <<左移位运算符:高位溢出舍弃,低位补0

    》》右移为运算符,低位溢出舍弃,高位补0

运算符优先级

** > *,/,//,% > +,- > <<,>> > & > | > >,<,>=,<=,==,!= > and > or >=

算术运算>位运算>比较运算>布尔运算>赋值运算

组织结构

python一切皆对象,所有对象都有一个布尔值

bool()函数,获取对象的布尔值

以下对象的布尔值为false:

  • False
  • 数值0
  • None
  • 空字符串
  • 空列表
  • 空元组
  • 空字典
  • 空集合

其他对象的布尔值都为true

选择结构

  • 单分支结构

    if 条件表达式:

    ​ 执行操作(缩进表示层次结构)

  • 双分支结构

    if 条件表达式:

    ​ 执行操作

    else 条件表达式:

    ​ 执行操作

  • 多分支结构:

    if 条件表达式:

    ​ 条件执行体

    elif 条件表达式:

    ​ 条件执行体

    elif 条件表达式

    ​ 条件执行体

    [else:]

    ​ 条件执行体

嵌套if

​ if 条件表达式

​ if 条件表达式

​ else:

​ else:

条件表达式

  • 条件表达式是if…else的简写

  • 语法结构:

    x if 判断条件 else y

如果判断条件为true,返回x,如果判断条件为false,返回y

pass语句

  • 语句什么都不做,只是一个占位符,用在语法上需要语句的地方

  • 什么时候使用:先搭建语法结构,还没想好代码怎么写的时候

  • 哪些语句可以使用:

    • if语句的条件循环体

      执行体可以写pass

    • for-in语句的循环体

    • 定义函数时的函数体

range()函数

  • 用于生成一个整数序列

  • 创建range对象的三种方式

    1. range(stop):创建一个(0,stop)之间的整数序列,步长为1,不包含stop
    2. range(start,stop):包含start,不包含stop,步长为1
    3. range(start,stop,step):包含start,不包含stop,步长为step
  • 返回值是一个迭代器对象,要查看range中的整数序列,用list()函数

    eg: list(range(0,10)) #list是列表

  • 判断指定的整数在序列中是否存在:in,not in

    eg: 10 in range(0,10)

循环结构

  • while 条件表达式

    ​ 条件执行体(循环体)

  • for-in循环

    • in表达从(字符串,序列等)中依次取值,又称为遍历
    • for-in遍历的对象必须是可迭代对象
  • for-in的语法结构

    for 自定义的变量 in 可迭代的对象:

    ​ 循环体

    注:如果用不到自定义变量,可用 _(下划线)代替

break语句:

  • 用于结束循环结构,通常与分支结构if一起使用

continue:

  • 同于结束当前循环,进入下一次循环

else语句:

  • if … else

  • while … :

    else

    没有碰到break时执行else

  • for …

    else

    没有碰到break时执行else

嵌套循环

end=’\t’ 不换行输出,

二重循环中的break和continue

都是只对当前循环有效

列表

相当于数组,可以存储不同的数据类型

列表的创建:

  • 使用中括号

    eg: lst=[‘张三’,‘李四’]

  • 调用内置函数list()

    eg: lst=list([‘张三’,‘李四’])

特点:

  • 列表的元素按顺序有序排序

  • 索引映射唯一数据

    负索引倒退查找

  • 列表可以存储重复数据

  • 任意数据类型混存

  • 根据需要动态分配和回收内存

列表的查询

  • 获取列表中指定元素的索引 index()

    • index(str):获取str在列表中第一次出现的索引位置

      如果没有,报错 Value Error

    • lst.index(str,1,3)) 从列表的1到3号索引中(不包括3号),查询str出现在列表中的索引

  • 获取列表中的单个元素

    索引为正向和逆向,正向是0到n-1,逆向是-n到-1

    指定索引不存在,报错, IndexError

  • 获取列表中的多个元素

    切片

    语法格式:

    列表名[start : stop : step]

    start:从什么位置开始切

    stop:切多长

    step:步长

    切片的结果:原列表片段的拷贝

    切片的范围:[start,stop),从start开始,不包括stop

    step默认为1

    eg:

[10:] 从10开始切片,默认切到最后,步长为1

[1:6:1] 从1的位置开始切,切到6停止,不包括6,步长为1

step为正,正切,负,则反切

列表元素的增加操作

  1. append():在列表的末尾添加一个元素

    lst = [10,20,30]
    lst.append(100)
    
  2. extend():在列表的末尾至少添加一个元素

    lst.extend(lst2)
    
  3. insert():在列表的任意位置添加一个元素

    剩余元素往后移动一位

    lst.insert(1,90)
    在lst索引为1的位置添加一个元素为90
    
  4. 切片:在列表的任意位置添加至少一个元素

    lst[1:]=lst2
    保留索引为1之前的(包括1)元素,后跟lst2内容
    

列表元素的删除操作

  1. remove(列表元素):

    • 一次删除一个元素
    • 重复元素只删除第一个
    • 元素不存在抛出ValueError
  2. pop(列表索引):

    • 删除一个指定索引位置上的元素
    • 指定索引项不存在抛出IndexError
    • 不指定索引,删除列表中最后一个元素
  3. 切片:一次至少删除一个元素(会产生一个新的列表对象)

    不产生对象:

    lst[1:3] = [] 将一到三位置切除替换成空列表,不产生新对象

  4. clear():清空列表

    lst.clear()

  5. del:删除列表

    del lst

列表元素的修改操作

  1. 修改一个值

    lst[1] = 3 将索引为1的元素内容修改为3

  2. 修改多个值

    lst[1:3] = [1,2,3,4] 将索引为1到3的位置(不包括3)替换[1,2,3,4] (可变长度)

列表元素的排序操作

  • 常见的两种方式:

    • 调用sort(),列表中的所有元素按照从小到大的顺序进行排序,可以指定

      reverse=True,进行降序排序

      eg:lst.sort()

      eg:lst.sort(reverse=True)

      不产生新列表

    • 调用内置函数sorted(),可以指定reverse=True,进行降序排序,原列表不发生改变

      eg:newlst = sorted(lst)

      eg:newlst = sorted(lst,reverse=True)

      产生新列表

列表生成式

​ 格式:lst = [ i for i in range(1,10)]

将0到9存入列表lst,在第一个i的位置可以写表达式,如:

lst = [i*i for i in range(1,10)]

字典

可变序列,以键值对的方式存储数据,字典是一个无序的序列

字典的key属性必须为不可变序列,比如字符串

字典的创建

  • scores = {‘张三’:100,‘李四’:50,‘王五’:20}
  • 内置函数:dict(name = ‘张三’,age = 20)

字典的常用操作

  • 获取字典中的元素

    • [] eg:scores[‘张三’]

      如果不存在指定的key,抛出keyError

    • get()方法 eg:scores.get(‘张三’)

      如果不存在指定的key,返回None,可以通过参数设置默认的value,以便指定额key不存在时返回默认值

      eg:scores.get(‘张三’,80)

  • key的判断

    • in 指定key在字典中返回True eg:‘张三’ in scores
    • not 操作与in相反
  • 字典元素的删除:del scores[‘张三’]

    clear():清空字典

  • 字典元素的新增:scores[‘赵六’] = 66

  • 获取字典视图的三个方法

    1. keys():获取字典中的所有key

      keys = scores.keys()
      print(keys)  #输出获取到的key,类型为:dict_keys
      print(list(keys))   #将keys转化为列表
      
    2. values():获取字典中的所有value

    3. items():获取字典中所有的key-value对,以元组形式存储,如果转换为列表,那么列表中的元素为一个个元组

  • 字典元素的遍历

    for item in scores:
    	print(item)
    

    输出为字典中的key值

字典的特点

  • 字典中的所有元素都是一个key-value对,key不允许重复,value可以重复
  • 字典中的key必须是不可变对象
  • 字典中的元素是无序的
  • 字典也可以根据需要动态的伸缩
  • 字典会浪费较大的内存,是一种使用空间换时间的数据结构

字典生成式

items = [‘张三’,‘李四’,‘王五’]

prices = [99,98,97]

变成:{‘张三’:99,‘李四’:98,‘王五’:97}

内置函数zip():用于将可迭代的对象作为参数,将对象中对应的元素打包成一个元祖,然后返回由这些元组组成的列表

lst = zip(items,prices)

{ item : price for item,price in zip(items,prices) }

{ 表示字典中key的表达式:表示字典中value的表达式 for 自定义表示key的变量,自定义表示value的变量 in 可迭代对象}

如果zip的时候元素不想等,会以元素少的一方作为基准

. values():获取字典中的所有value

  1. items():获取字典中所有的key-value对,以元组形式存储,如果转换为列表,那么列表中的元素为一个个元组
  • 字典元素的遍历

    for item in scores:
    	print(item)
    

    输出为字典中的key值

字典的特点

  • 字典中的所有元素都是一个key-value对,key不允许重复,value可以重复
  • 字典中的key必须是不可变对象
  • 字典中的元素是无序的
  • 字典也可以根据需要动态的伸缩
  • 字典会浪费较大的内存,是一种使用空间换时间的数据结构

字典生成式

items = [‘张三’,‘李四’,‘王五’]

prices = [99,98,97]

变成:{‘张三’:99,‘李四’:98,‘王五’:97}

内置函数zip():用于将可迭代的对象作为参数,将对象中对应的元素打包成一个元祖,然后返回由这些元组组成的列表

lst = zip(items,prices)

{ item : price for item,price in zip(items,prices) }

{ 表示字典中key的表达式:表示字典中value的表达式 for 自定义表示key的变量,自定义表示value的变量 in 可迭代对象}

如果zip的时候元素不想等,会以元素少的一方作为基准

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值