python自动化运维学习第二天--数据类型


常用的数据类型有数值、字符串、布尔、元组、列表、字典和集合

数值

数值类型包括整型、长整型、浮点型和复数型

整型取值范围到-231— +231,类型为int
长整型会在数值后加个"L"或者“l”,类型为long
十六进制会在数值前加“0x"
python下使用type(a)命令查看变量的类型,a为变量名
浮点型为带小数的数值,类型为float
复数类型为complex,数值后有个“j”

字符串

字符串有三种定义方法:

  • 单引号,a=‘abc’
  • 双引号,a=“abc”
  • 三引号,a=’’‘abc’’’
    三引号还可以作为注释来使用

字符串类型为str
字符串可以通过索引和切片取字符
如:a=“abcdef”
a[3]=“d”
a[1:3]=“bc”

布尔

0,1 True, False 是 bool类型
空是False , 其他是True
0是False, 1是True , 其他也归于 True

元组

字符串、列表和元组都是序列
序列的两个主要特点是索引操作和切片操作

  • 索引操作可以从序列中抓取一个特定项目
  • 切片操作能够获取序列的一个切片,即一部分序列
序列的基本操作
  1. len(): 序列的长度 如:len(‘abcdef’) = 6
  2. +: 连接两个序列 如:‘abc’+‘def’ = ‘abcdef’
  3. *:重复序列元素 如:‘ab’*2 = ‘abab’
  4. in: 判断元素是否在序列中 如:‘a’ in ‘abc’ = True
  5. max():返回最大值 如: max(‘564897’) = ‘9’
  6. min():返回最小值 如:min(‘564897’) = ‘4’
  7. cmp(x,y):比较两个序列是否相等 如:cmp(‘adc’,‘adc’) = 0 (0代表相等,-1代表不相等)
    元组和列表相似,都不可变
    元组(tuple)使用小括号表示 如:t=() t=(2,) t=(‘abc’,‘DEF’,234)
    当元组只有一个元素时需要在后边添加一个',',用来标记为元组,而不是数值或者字符串
    元组可以拆分,把元组的元素赋值给变量
    如:t=(1,2,3) a,b,c=t 则 a=1,b=2,c=3

列表

列表(list)是处理一组有序项目的数据结构,既可以在列表中存储一个序列项目
列表是可变类型数据,使用中括号来表示
如:list1=[] list2=list() list3=[‘a’,1,2]

列表操作
  • 取值 切片和索引
  • 添加 list.append(‘a’)
  • 删除 del list[2] list.remove(list[3])
  • 修改 list[]=x
  • 查找 var in list
list的方法
  • list.append(3) 追加元素
  • list.insert(2,‘d’) 插入元素
  • list.sort() 元素排序
  • list.reverse() 元素翻转
  • list.pop(2) 取出元素(列表中取出索引为2的元素,会删除该元素)
  • list.remove(‘b’) 删除元素
  • list.extend(‘d’) 扩展元素(可以添加可迭代变量)

字典

字典是python中的唯一映射类型(哈希表),使用大括号来表示,如 dic={} dic={‘name’:‘mike’,‘age’:23}
字典对象是可变的,但字典的键必须使用不可变对象,一个字典中可以使用不同的键值。
字典的方法:
dic={‘a’:1,2:‘b’,(3,4):‘c’}

  • keys() 输出字典中的key 如:dic.keys() 输出 [‘a’, 2, (3, 4)]
  • values() 输出字典中的value 如: dic.values() 输出 [1, ‘b’, ‘c’]
  • items() 列出key-value对 如: dic.items() 输出 [(‘a’, 1), (2, ‘b’), ((3, 4), ‘c’)]
  • get() 输出对应key的value值 如: dic.get(‘a’) 输出 1
  • has_key() 判断字典中是否有该key 如: dic.has_key(2) 输出 True
  • copy() 复制字典 如: dic1=dic.copy()
  • pop() 取出该key的value值并删除该k-y对 如: dic.pop(2) 输出 ‘b’,dic字典中没有了(2,‘b’)这个键值对

练习1:

将 “123” 转换成整数

a = "123"
int(a) 

将 “9999999999999999999” 转换成长整数

a = “9999999999999999999”
int(a)

将 “3.1415926” 转换成一个浮点数

a =  “3.1415926”
float(a)

将 123 转换成一个字符串

a = 123
str(a)

现有以下字符串
字符串1:" abc deFGh&ijkl opq mnrst((uvwxyz "
字符串2:" ABC#DEF GH%IJ MNOPQ KLRS&&TUVWX(
&YZ "
使用字符串的各种方法转换成如下方式
ABCDEFGHIJKLMNOPQRSTUVWXYZzyxwvutsrqponmlkjihgfedcba

a=" abc deFGh&*ijkl opq mnrst((uvwxyz "
b=" ABC#DEF GH%IJ MNOPQ KLRS&&TUVWX(*&YZ "
l1=list(b)
l1.sort()
l2=list(a.lower())
l2.sort(reverse=True)
"".join(l)[-26:]+"".join(l2)[:26]

练习2:

现有列表
list1 = [‘XXXX’, ‘b’, 3, ‘c’, ‘&’, ‘a’, 3, ‘3’, 3, ‘aa’, ‘3’, ‘XXXX’]
list2 = [‘e’, ‘f’, ‘g’]
要求对其做以下操作:

  1. 取出 ‘XXXX’ 中间的部分,形成一个新的列表list3
    list3 = list1[1:-1]
  2. 对list3 做一下几部操作
    1)删除特殊符号
    list3.remove('&')
    2)统计 3 在list3中出现的次数
    list3.count(3)
    3)用最简短的代码去除list3中 26个字母以外的元素(要求只能对list3操作)
    4)对list3排序
    list3.sort()
    5)在末尾追加’d’,并把list2追加到list3
list3.append('d')
list3.extend(list2)

练习3:

现有两个变量
a = (‘h’,)
b = (‘h’)
1)将a和b分别追加到上一题的list3中,观察有什么区别

list3.append(a)
list3.append(b)
a为元组,b为字符串

2)将1生成的list3转换成元组(扩展:自己搜索方法)
tup = tuple(list3)
3)打印出只有一个元素’h’的元组,在2中生成的元组中的索引
tup.index(('h',))

猜你喜欢

转载自blog.csdn.net/wang035759984/article/details/84112422
今日推荐