Python基础-数据类型-字符串和编码

一、简介

  1. 龟叔 Guido van Rossum 在1989年圣诞节期间编写的一个编程语言。
  2. Python为我们提供了非常完善的基础代码库,覆盖了网络、文件、GUI、数据库、文本等大量内容,被形象的称为‘内置电池’。
  3. Python的定位:优雅、明确、简单
  4. Python的缺点:运行速度慢,代码不能加密
  5. 安装Python,去https://www.python.org/downloads/windows/ 网址下载最新版的window上的Python。
  6. Python文件以.py为扩展名;运行此类型文件需要Python解释器去执行。CPython是刚才下载安装Python的时候自带的,它是用C语言开发的,所以叫CPython。在命令行下运行Python就是启动CPython解释器。

二、开始

  1. 命令行模式和交互模式
    1. cmd代开命令提示符就进入了命令行模式,输入Python就进入了交互模式,再次输入exit()就退出了交互模式,进入了命令行模式。
  2. 新建hello.py文件,里面写入print('hello world, this is my first python') ,然后cd进入该目录,用Python hello.py 命令来执行该文件。
  3. 在Python交互式模式下,可以直接输入代码,然后执行,并立刻得到结果。在命令行模式下,可以直接运行.py文件。
  4. I/OPython中,输入是input(),输出是print()

三、Python基础

  1. 输入,输出,input和print
  2. 加注释:#开头
  3. 基础的if else判断

  1. Python特殊字符转义,r'' 表示字符串不进行转义,就是字符串本身意思

  1. 多行换行...

  1. 动态语言,变量赋值
    1. a = 1; a = 'abc'   a这个变量是动态的,类型是随时可以被更改的
    2. 而在java中就是静态语言变量,int a = 1;a = 'abc' 就会报错
  2. 变量在内存中的存储
    1. a = 1 ,定义的时候,Python干了两件事
    2. 先在内存中创建了一个1 这个整数
    3. 然后在内容中创建了名为a的变量,并把它指向1
    4. 也可以 b = a ,这个操作实际上就是把变量b指向变量a所指向的数据

  1. Python中的除法
    1. /   : 10 / 3 返回3.3333333333333335
    2. //:10 // 3  返回3 ,只取整数部分
    3. %:10 %3  返回1,取余数,
  2. Python中,整数和浮点数没有大小的限制

四、字符编码

  1. 计算机只处理数字,最早的计算机设计时采用8比特作为一个字节byte,所以,一个字节能表示的最大的整数就是255。所以如果要表示更大的整数,就必须用更多的字节。比如两个字节可以表示的最大整数是65535.
  2. 由于计算机是美国人发明的,因此最早只有127个字符被编码进计算机了,也就是大小写英文字母数字和一些符号,这个编码表就是ASCII表。
  3. 但是要处理中文一个字节不够,至少要2个字节,还不能和ASCII冲突,所以,中国制定了GB2312编码,用来把中文编码进去。
  4. 但是,世界上百种语言,各国都有自己的标准,不可避免的会有冲突,在多语言混合的文本中,显示出来就会有乱码。
  5. 因此,Unicode应运而生,它把所有的语言编写到一套编码里面,这样就不会有乱码了。一般在Unicode中用2个字节表示一个字符。ASCII用1个字节表示一个字符
  6. 但是,如果文本都用英文的话,用Unicode编码比ASCII多一倍的存储空间,在存储和传输上不划算。
  7. 因此,出现了把Unicode编码转为‘可变长编码’的UTF-8编码。utf-8把一个Unicode字符根据不同的数字大小编成1-6个字符,常用的英文编写为1个字节,汉字通常是3个字节,很生僻的字符编成4-6字节。
  8. 在现在计算机内存中,统一使用Unicode编码,当需要保存到硬盘或需要传输的时候,转为utf-8
  9. 用记事本编辑的时候,从文件读取的utf-8字符被转化为Unicode到内存中,编辑完成后,保存的时候再把Unicode转为utf-8保存文件

五、Python的字符串

  1. 最新的Python3版本中,字符串以Unicode编码。
  2. 对于单个字符的编码,有ord()函数获取字符的整数表示,chr()函数把编码转为对应的字符

  1. encode()可以把Unicode格式的str编码为指定的bytes
    1. 如下,但是含有中文的str无法用ASCII编码,因为中文编码超过了ADCII的范围,会报错

  1. 反过来,如果我们从网络或磁盘读取了字节流,读到的数据就是bytes,要把bytes转为str,就需要decode()
    1. 如果bytes中包含无法解码的字节,decode会报错

    1. 如果bytes中只包含一小部分无效字节,可以加参数errors=’ignore‘,忽略错误字节

以下是小部分无效字节时的解析:

  1. 如果要计算str包含多少字符,可以用len()计算
    1. 如果str换成bytes,len计算的字节数,len('ABC') 返回3

  1. 由于Python源代码也是一个文本文件,所以,当源代码包含中文的时候,保存源码时,需要指定保存为utf-8。可以在文件开头写着两行:
    1. 第一行告诉Linux/OS系统,这是要给Python可执行程序,window会忽略这行注释
    2. 第二行告诉Python解释器按照utf-8读取代码

  1. 占位符

举例:

输出结果:

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值