2021-11-02

PYTHON基础

在这里插入图片描述

一、变量与常量

(一)变量

  1.概述

   变量即变化的量,记录某一事物的某种状态。

  2.语法格式

   变量名 赋值符号 变量值
    name   =     ‘june’

  3.三要素

   一是变量的值;二是变量的内存地址;三是变量的数据类型。
在这里插入图片描述

  4.命名

  命名规则
  (1)变量名只能由字母、数字、下划线三者任意组合。
  (2)变量名不能以数字开头,下划线建议不要用在开头(因为有特殊含义)。
  (3)变量名不能与关键字冲突,如print。
  (4)变量名的命名一定要做到见名知意(见名知意很重要,无论变量名有多长,只为避免后期续写代码忘记其含义)。
  命名风格
  (1)驼峰体
     所有单词首字母大写,eg:UserName。
  (2)小驼峰
    首个单词首字母小写,其余单词首字母大写,eg:userName
  (3)下划线
    单词与单词之间下划线隔开,python推荐使用下划线这种。eg:user_name

  5.底层原理

  如age=18,有赋值符号先看符号右边的再看左边。
  首先,在内存空间申请一块内存空间来储存18;然后再将18所在内存空间的地址绑定给变量名age,最后如果要访问18,就通过变量名age来访问。

  6.python底层优化

  当数据很小时,如果有多个变量名需要使用,那么会指向同一块地址。
  ps:
  一个变量名只能指向一个内存地址。
  一个内存地址可以有多个变量名指向。
在这里插入图片描述

  7.垃圾回收机制

  (1)垃圾数据概述
  垃圾数据是指没有任何变量名指向的数据。
  (2)python针对垃圾数据开发了一套自动化回收方案,过程如下解释;
    * 引用计数
  在内存中,某一变量值有几个变量名绑定引用计数就是几,只要不为0就不是垃圾
    * 标记清除
  当内存即将占满的时候,python会自动暂停程序的执行,从头到尾将内存中的数据进行扫描并打上标记,之后再一次性清除掉所标记的数据。
    * 3.分代回收
  会将数据的监管分为三个层次,随层级下降,监督频率会降低,为了减少资源的损耗。
在这里插入图片描述

(二)常量

  1.概述

  常量,即不变的量。

  2.与其他编程语言常量的区别

  在python中没有真正意义上的常量,将全大写的变量默认为是常量。如:HOST = ‘127.0.0.1’ ,一般情况下在配置文件中使用较多。
  在其他编程语言中是存在真正意义上的常量 定义了就无法修改。

二、数据类型

(一)数字类型

  1.分类

  (1)整型int

   age = 18 # 直接写整数就是整型

  (2)浮点型float

   weight = 60.2 # 直接写小数就是浮点型。

  2.类型转换

  (1)整型int

   int只能转换纯数字,小数点也不识别,非数字不识别,会报错。
在这里插入图片描述
   int还可以做进制转换
在这里插入图片描述

  (2)浮点型float

在这里插入图片描述

(二)字符串str

   1.表现形式

   单引号;双引号;三个单引号;三个双引号

   2.类型转换

     str()可以将任意类型的数据转换成字符串类型。
   (1)正反索引取值
在这里插入图片描述
   (2)切片,顾头不顾尾。
      print(res[1:4]). #取ell
       步长:第三个参数代表步长。
在这里插入图片描述
       反向切片:-1表示从右往左依次取值。
在这里插入图片描述
   (3)长度len
   获取字符串的长度,即字符的个数,凡是存在于引号内的都算作是字符,包括空格。
   print(len(res)) # 12
   (4)移除字符串首尾指定字符 strip()
      默认移除首尾空白字符(空格、\n、\t)。
在这里插入图片描述
      移除首尾指定字符。
在这里插入图片描述
   (5)切分split
      不指定字符,默认以空格作为切分符号。
在这里插入图片描述

      指定切分字符。
在这里插入图片描述
     (6)大小写
     转全大写:.upper()
     转全小写:.lower()
     判断是否全大写:.isupper()
     判断是否全小写:.islower()
     判断是否以指定的字符x开头:.startswith(‘x’)
     判断是否以指定的字符结尾:.endswith(‘x’)
     (7)数字
     判断是否纯数字:.isdigit()
     (8)拼接
     方式一:字符串相加;
     方式二:'分隔符号‘.join(某列表)
     注意在python中不同数据类型之间无法直接操作,此处的拼接必须都是字符串类型。
     (9)替换
     替换字符串中指定的字符:.replace(‘被替换值, ’替换值’)
     替换指定个数的文本:.replace(‘被替换值, ’替换值’, 替换个数)
     (10)格式化输出
     方式一:与用户交互:占位符%s、%d,替换%。
     cmd = input(‘请输入指令’)
     print(‘您正在执行的指令%s’ % cmd)
在这里插入图片描述

     方式二:字符串内置 format(’’, ‘’):
     @大括号内写索引值可打破顺序,并反复使用位置相同的数据。
在这里插入图片描述
     @大括号内写变量名
在这里插入图片描述
     (11)其他
     @所有单词首字母大写:.title()
     @开头单词首字母大写:.capitalize()
     @大小写互换:.swapcase()
     @查找指定字符对应的起始索引值,从左往右找到一个就结束查找,找不到返回-1,而.index(‘x’)找不到直接报错:.find(‘x’)。
     @统计某个字符出现的次数:count.(’’ )
     @居中:.center(n,’’)
     @左对齐:ljust(n,’’)
     @右对齐:rjust(n,’’)
     @字符串中既可以包含数字也可以包含字母:.isalnum()
     @字符串中只包含字母:.isalpha

(三)列表list

   1.表现形式

   中括号扩起来,内部可存放多个任意元素,元素与元素之间用逗号分隔。

   2.索引取值

   从0开始连续数数。
  方式一:整合
在这里插入图片描述
  方式二:分步
在这里插入图片描述

  3.基本使用

  @添加值
  方式一:.append(),尾部追加,注意括号内的数据是当成一个整体追加到列表末尾。
在这里插入图片描述
  方式二:.insert(n,’’),插入元素,注意是将括号内的数据当成一个整体插入到索引指定位置。
在这里插入图片描述
  方式三:.extend(),扩展元素,相当于for循环+append操作。
在这里插入图片描述
  @删除数据
  方式一:通用方法,索引删除:del name_list[1]
  方式二:.remove(‘指定要移除的元素值’)
  方式三:.pop(‘指定要弹出的元素值’),注意如果括号内不写参数则默认为弹出列表尾部元素。
在这里插入图片描述
  @修改值:
在这里插入图片描述
  @列表内一般都会储存相同数据类型的数据;类型转换:数据类型关键字(需要转换的数据);list关键字可以将支持for循环的数据类型转换成列表。
  @升序:.sort()
   降序:.soft(reverse=True)
    .reverse()
    .[::-1]

(四)字典dict

  1.表现形式

  大括号括起来;内部可存放多个元素,各元素是K:V键值对形式;元素与元素之间逗号隔开。K是对V的描述信息,一般都是字符串;V是真正的数据,相当于变量的值,可以是任意数据类型。具体编辑形式有两种:
在这里插入图片描述

  2.类型转换

  方式一:dict(name=‘jay’, pwd=123)
  方式二:print(dict([[‘name’, ‘jay’], (‘age’, ‘18’), [‘hobby’, ‘read’], [‘country’, ‘china’ ]]))
在这里插入图片描述

  3.基本使用

  (1)取值

  方式一:按k取值dic[‘name’],不存在直接报错。
  方式二:.get(‘k’),当k不存在时,返回的是N one。
  方式三:.values(),这个可以取所有v值。
在这里插入图片描述
  引申1:keys():获取字典所有的k,看作是列表。
  引申2:items():获取字典所有的kv,看作是元组。
在这里插入图片描述

  (2)增改删

  @增加
  方式一:append:dic[‘habbies’].append(‘read’)
  方式二:直接按k增加,但注意若k存在为修改;
  @修改
  按k修改,注意若k不存在为增加。
在这里插入图片描述
  @删除
  方式一:通用索引删除:del dic[‘k’]
  方式二:.pop(‘k’),指定k弹出v。
在这里插入图片描述

  方式三:.popitem,弹出kv元组。
在这里插入图片描述

  (3)统计

  统计字典内部键值对个数len()

  (4)成员运算

  字典中,成员运算只默认暴露k
在这里插入图片描述

  4.其他使用

  (1)更新

    .update,等同于修改添加,k存在则修改,不存在则创建。

  (2)初始化

在这里插入图片描述

  (3)setdefault

  当健存在的情况下,是获取该健对应的值,而不是修改。
  当健存不存在的情况下,是新增一组健值对。
在这里插入图片描述

(五)布尔值bool

  1.表现形式:两种,True(对的,正确的,可行的)和False
(错的,不可行的)。bool用于判断事物的对错或是否可行等。
  在python中所有的数据类型都可以转换成布尔值,布尔值为False的有0、None、’’、[]、{}…,其他情况一律为True。
  2.变量名:布尔值变量名一般采用is开头,如is_alive = True。
  3.生活链接:生活中的数据储存与销户,其实很大概率并没有删除数据,而只是修改了数据中的某个唯一标识,然后通过代码筛选过滤掉。

(六)元组tuple

  1.表现形式

  表现形式为小括号括起来,内部可以存放多个元素,各元素可以是任意类型,但不支持“修改”(注意是索引指向元素的内存地址是不能改变),元素与元素之间用逗号隔开,可以看成是不可变的列表。
   t = (1, 2, 3, 4, 5, 6, 7, 8)
   注意若只有一个元素,需要在末尾加逗号。

  2.类型转换

  能够支持for循环的数据都可以转为元组。

  3.基本使用

  (1)索引取值

  print(t[2])

  (2)切片步长

在这里插入图片描述

  (3)len元素个数
  (4)for循环

在这里插入图片描述

  (5)count计数

(七)集合set

  1.表现形式

  表现形式为用大括号括起来,内部可以存放都个元素,各元素不是K:V键值对、不可变且不重复、无序,元素与元素之间用逗号隔开。去重和关系运算两种情况下极有可能会用到集合。
   s = {11, 22, 33, 44, 55, 66}

  2.类型转换

  能够支持for循环的数据都可以转为元组。

  3.基本使用

  (1)去重操作

在这里插入图片描述
在这里插入图片描述

  (2)关系运算

    @交集:&
    @并集:|
    @独有:-
    @各自:^ ,即求抛去交集后的并集。
    @子集与父集:><

三、可变类型与不可变类型

(一)可变类型

   可变类型是指,值改变,内存地址不变,修改的是原值,有列表。

(二)不可变类型

   不可变类型是指,值改变,内存地址必定要变,其实是产生了新值。有整型、浮点型、字符串。
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值