1.5 python的数值和字符串
python数据类型分类
数值 字符串 列表 元组 字典
数值类型
- 整型int
- 长整型long //长整型后面会有一个L
- 浮点型float //带小数点,科学计数法也属于浮点型
- 复数型complex //后面带一个j
字符串类型
有三种方法定义字符串类型 - str = 'this is a string' - str = "this is a string" //python下,单双引号没有区别 - str = '''this is a string'''
三重引号(docstring)除了能定义字符串还可以用作注释。
a = "abcde" 字符串是一个序列,可用索引取值 a[起始下标 : 终止下标 : 步长]
a[0]="a" //取第一个值 a[-1]="e" //取最后一个 a[0:3]="abc" //取下标0到下标2
1.6 元组
字符串、列表和元组都是序列 序列的两个主要特点是索引操作符和切片操作符 - 索引操作符让我们可以从序列中抓取一个特定项目 - 切片操作符让我们能够获取序列的一个切片,即一部分序列。
###序列的基本操作
len(): 求序列的长度
+: 连接2个序列
*: 重复序列元素
in: 判断元素是否在序列中
max(): 返回最大值
min(): 返回最小值
cmp(x, y):比较两个序列是否相等
元组tuple
元组和列表十分相似 元组和字符串一样是不可变的 - 元组可以存储一系列的值 - 元组通常用在用户定义的函数能够安全地采用一组值的时候,即被使用的元组的值不会改变。
t = ('a',2,(3,))
t = (1,) //元组中只有一个元素的时候,要加 “,”
元组的操作
- 元组和字符串一样属于序列类型,可以通过索引和切片操作
- 元组值不可变
元组的拆分 - t = (1,2,3) a, b, c = t //a,b,c三个变量可以分别赋予元组的值
元组有两个方法
count() //统计元组数据个数 index() //输出数据下标
1.7 列表
列表(list)是处理一组有序项目的数据结构,即可以在列表中存储一个序列的项目。 列表是可变类型的数据 创建列表 - list1 = [] - list2 = list() - list3 = ['a',1,2]
列表操作
- 取值
切片和索引
- 添加
list.append()
- 删除
del list[]
list.remove(list[]) //删除第一个出现的value
- 修改
list[] = x
- 查找
var in list
· -插入 list.insert(value,object) //在对象前插入值 -排序 list.sort() -反序 list.reverse()
练习
练习1:
将 “123” 转换成整数 将 “9999999999999999999” 转换成长整数 将 “3.1415926” 转换成一个浮点数 将 123 转换成一个字符串 现有以下字符串 字符串1:" abc deFGh&ijkl opq mnrst((uvwxyz " 字符串2:" ABC#DEF GH%IJ MNOPQ KLRS&&TUVWX(&YZ " 使用字符串的各种方法转换成如下方式 ABCDEFGHIJKLMNOPQRSTUVWXYZzyxwvutsrqponmlkjihgfedcba
a = "123"
a= int(a)
b = "9999999999999999999"
b = long(b)
c = "3.1415926"
c = float(c)
d = 123
d = str(d)
str1 = " abc deFGh&*ijkl opq mnrst((uvwxyz "
str2 = " ABC#DEF GH%IJ MNOPQ KLRS&&TUVWX(*&YZ "
m = []
for i in list(str1) :
if i.isalpha():
m.append(i.lower())
m.reverse()
print str(m)
n = []
str3 = ""
for i in list(str2) :
if i.isalpha():
str3 = str3 + i
for i in m :
str3 = str3 + i
print str3
练习2:
现有列表 list1 = ['XXXX', 'b', 3, 'c', '&', 'a', 3, '3', 3, 'aa', '3', 'XXXX'] list2 = ['e', 'f', 'g'] 要求对其做以下操作:
- 取出 ‘XXXX’ 中间的部分,形成一个新的列表list3
- 对list3 做一下几部操作 1)删除特殊符号 2)统计 3 在list3中出现的次数 3)用最简短的代码去除list3中 26个字母以外的元素(要求只能对list3操作) 4)对list3排序 5)在末尾追加'd',并把list2追加到list3
-
1、
list1 = ['XXXX', 'b', 3, 'c', '&', 'a', 3, '3', 3, 'aa', '3', 'XXXX'] list2 = ['e', 'f', 'g'] list3 = [] n = 1 for i in list1 : if i == 'XXXX' : n = n * -1 continue if n == -1 : list3.append(i) print list3
-
2、
num3 = 0 listrm = [] for i in list3 : if not str(i).isalpha(): if not str(i).isalnum() : listrm.append(i) elif str(i) == '3' : num3 += 1 for i in listrm : list3.remove(i) print num3 print list3
list3 = [i for i in list3 if str(i).isalpha()]
list3.sort() list3.append("d") list3 = list3 + list2 print list3
练习3.
现有两个变量 a = ('h',) b = ('h') 1)将a和b分别追加到上一题的list3中,观察有什么区别 2)将1生成的list3转换成元组(扩展:自己搜索方法) 3)打印出只有一个元素'h'的元组,在2中生成的元组中的索引 a = ('h',) b = ('h') list3.append(a) lsit3.append(b) print list3