Python数据类型

数据类型和变量

1. Bool和False

  • Python程序是大小写敏感的,如果写错了大小写,程序会报错。
  • 如果需要打印出./之类数据,需要使用转义字符
  • 如果字符串内部有很多换行,用\n写在一行里不好阅读,为了简化,Python允许用”’…”’的格式表示多行内容
  • 在Python中,可以直接用True、False表示布尔值(请注意大小写),也可以通过布尔运算计算出来

Python是一种 动态语言,和传统的C++和JAVA(静态语言)不同,a = ‘ABC’时,Python解释器干了两件事情:

  1. 在内存中创建了一个’ABC’的字符串;
  2. 在内存中创建了一个名为a的变量,并把它指向’ABC’。

另外Python中/表示普通的除法,//表示地板除法。列如,10/3=3.33333,10//3=3

2. 字符串

字符编码,ASCII编码是最初的编码的,但是后来由于ASCII编码表示的数字有限,那么使用扩展的Unicode编码,但是后来有本着节约的思想,出现了UTF-8编码;

这里写图片描述

这里写图片描述

主要是利用UTF-8是变长码,他是使用较少的码长,所以传输的时候可以大大节约传输的成本

对于单个字符的编码,Python提供了ord()函数获取字符的整数表示,chr()函数把编码转换为对应的字符:

>>> ord('A')
65>>> ord('中')
20013>>> chr(66)
'B'>>> chr(25991)
'文'

这里写代码片在python中字符串(str)使用unicode编码的,这也就是表示可能一个字符串需要多个字节表示,但是如果我们需要在网络上传输,我们需要使用byte作为传输,也就是把str类型的数据转换成byte类型的。

若想把str类型的数据转换成byte类,可以使用encode()函数。反之,如果想把byte数据变成str数据,需要使用decode()函数

·>>> 'ABC'.encode('ascii')
b'ABC'
>>> '中文'.encode('utf-8')
b'\xe4\xb8\xad\xe6\x96\x87'

>>> b'ABC'.decode('ascii')
'ABC'>>> b'\xe4\xb8\xad\xe6\x96\x87'.decode('utf-8')
'中文'

由于Python源代码也是一个文本文件,所以,当你的源代码中包含中文的时候,在保存源代码时,就需要务必指定保存为UTF-8编码。当Python解释器读取源代码时,为了让它按UTF-8编码读取,我们通常在文件开头写上这两行:

#!/usr/bin/env python3
# -*- coding: utf-8 -*-

第一行注释是为了告诉Linux/OS X系统,这是一个Python可执行程序,Windows系统会忽略这个注释;
第二行注释是为了告诉Python解释器,按照UTF-8编码读取源代码,否则,你在源代码中写的中文输出可能会有乱码。
申明了UTF-8编码并不意味着你的.py文件就是UTF-8编码的,必须并且要确保文本编辑器正在使用UTF-8 without BOM编码

格式化输出:
有些时候,字符串里面的%是一个普通字符怎么办?这个时候就需要转义,用%%来表示一个%:

>>> 'growth rate: %d %%' % 7'growth rate: 7 %'

3. List和Tuple

3.1 List(列表)相关操作

可以随时添加或者删除元素,(动态),使用中括号[]包含数据

>>> classmates = ['Michael', 'Bob', 'Tracy']
>>> classmates
['Michael', 'Bob', 'Tracy']

相关操作

  • 可以取List里面的元素个数,使用len()
  • 注意List里面的元素下标是从0开始的,越界会出现IndexError;另外,可以通过classmates[-1]取最后一个元素,-2可以取倒数第二个,同理;
  • 使用.append()函数可以在List最后加入元素,使用.insert(i,xxx)表示在索引为i的位置插入数据;使用.pop()函数表示删除最后一个元素,使用.pop(i)函数表示删除索引为i的元素;

  • List里面的元素是可以其他种类的元素。List是和数组类似的。可以利用numpy函数进行数组化操作。

3.2 Tuple(元组)相关操作

不可以随便添加或者删除元素,使用()包含数据

classmates = ('Michael', 'Bob', 'Tracy')

1.使用元组的原因就是为了数据的安全性,这样的话不可以随便更改或者删除数据
2.另外,如果想要产生一个元素的元组,可以这样写(1,)中间打一个逗号,防止和(1)仅仅表示一个元素产生二义性区别;

4. 条件判断

使用条件语句相关说明,增加代码的丰富性;

if <条件判断1>:
<执行1>
elif <条件判断2>:
<执行2>
elif <条件判断3>:
<执行3>
else:
<执行4>

这里要千万注意一点,Python语言是非常注重缩进的一门语言,所以在编程的时候,需要注意缩进的问题;另外在这里的条件判断语句,我们别忘记了冒号:
Attention: 我们可以使用input()函数来帮助我们进入数据输入,比如a=input(‘bir:’),同时注意到这里的input之后的数据是str类型的,要小心一点;

5. 几种常见的循环结构:

5.1 for…in循环

for x in ...:
sum = 0
for x in [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]:   (这里的冒号不能忘掉了)
sum = sum + x   (这里的意思是x依次取List中的元素)
print(sum)

注意:如果想要产生连续的List元素,可以使用range函数

list(range(5))
[0, 1, 2, 3, 4]

5.2 break&continue语句

break退出循环是退出当前的循环,而continue是退出本轮循环

n = 1
while n <= 100:
      if n > 10: # 当n = 11时,条件满足,执行break语句
         break # break语句会结束当前循环
     print(n)
n = n + 1
print('END')

n = 0
while n < 10:
    n = n + 1
    if n % 2 == 0: # 如果n是偶数,执行continue语句
        continue # continue语句会直接继续下一轮循环,后续的print()语句不会执行
    print(n)

小结,break和continue语句都是可以退出当前循环的,但是break是退出循环的continue是退出当前循环;此外,break和continue通常是配合if语句进行使用的。

最后还要注意一点,continue和break语句通常不要使用太多,这样的话程序逻辑可能会比较混乱;
如果程序出现死机的情况,这时候我们可以使用crtl+c来终止程序;

6. 字典dict和set

6.1 dict字典操作

如果需要进行查找的话可以进行建立一个键值对进行操作,这样的话可以,这种操作相当于是字典一样进行查找

>>> d = {'Michael': 95, 'Bob': 75, 'Tracy': 85}
>>> d['Michael']
95

字典的操作是可以直接取里面的值,然后直接可以给他赋值操作,如果进行多次重复的赋值操作,那么取最后一次进行冲掉。另外字典可以进行查找操作,如果查找的的东西在字典中没有的话,那么返回一个空的值。如果需要避免这种字典数字不存在的情况,那么可以通过in ,或者是get()函数来进行判断是否在这个字典里面。

  • 查找和插入的速度极快,不会随着key的增加而变慢;
  • 需要占用大量的内存,内存浪费多。

而list相反:

  • 查找和插入的时间随着元素的增加而增加;
  • 占用空间小,浪费内存很少。

所以,dict是用空间来换取时间的一种方法。

Attention: 注意字典中key是不可变变量,如字符串,整数都是可以作为key的,但是List是可变变量,他是不能作为字典的Key,否则会出错的。

6.2 set操作

set和dict类似,也是一组key的集合,但不存储value。由于key不能重复,所以,在set中,没有重复的key。所以说set存放的数据是和dict的唯一区别就是他里面存放的没有value,仅仅只有key.

>>> s = set([1, 2, 3])
>>> s
{1, 2, 3}

这里在补充一点:可变对象(List)他里面的内容是可以变化的,但是不可变对象(Str)里面的数据是不发生变化的。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值