资讯专栏INFORMATION COLUMN

python学习笔记02-数据类型

jcc / 2744人阅读

摘要:基本数据类型基本数据类型比较简单,通过以下例子演示运行结果如下通用序列操作索引通过索引获取序列的单个元素,也可以使用负数索引。设置参数步长,负数步长表示从右侧开始提取元素。注意相同类型的序列才可以进行连接操作。

0. 基本数据类型

基本数据类型比较简单,通过以下例子演示:

print(type(1))
print(type(1.0))
print(type(True))
print(type(False))
print(type(-1 + 2j))

运行结果如下:





1.通用序列操作 1.1 索引-indexing

通过索引获取序列的单个元素,也可以使用负数索引。从左向右索引从0开始,从右向左索引从-1开始。

greeting = "HelloWrold"
print(greeting[0])  # H
print(greeting[-1]) # d
1.2 分片-sliceing

分片操作用于提取序列的一部分。相当于[)半开区间提取。

L = [1,2,3,4,5,6,7,8,9,10]
print(L[0:1]) # [1]
print(L[-3:-1]) # [8,9] 
print(L[3:]) # [8,9,10]
print(L[:3]) # [1,2,3]
print(L[:]) # [1,2,3,4,5,6,7,8,9,10]

设置参数步长,负数步长表示从右侧开始提取元素。

print(L[::4]) # [1,5,9]  每4个元素取第一个
print(L[::-2]) # [10,8,6,4,2]  每2个元素取第一个,反向提取
print(L[10:0:-2]) # [10,8,6,4,2]  每2个元素取第一个,反向提取
print(L[0:10:-2]) # []  
print(L[8:3:-1]) # [9,8,7,6,5]
print(L[5::-2]) # [6,4,2]
print(L[:5:-2]) # [10,8]
1.3 加-adding

通过使用+号进行序列的连接操作。

注意:相同类型的序列才可以进行连接操作。

[1,2,3] + [4,5,6] # [1,2,3,4,5,6]
"hello" + "world" # "helloworld"
1.4 乘-multiplying

序列可以通过乘以数字,来生成新的序列。

"py" * 5 # "pypypypypy"
[1,2,3] * 2 # [1,2,3,1,2,3]
1.5 长度,最小值和最大值
len([1,2,3]) # 3
min([1,2,3]) # 1
max([1,2,3]) # 3
2. 列表

列表是可变的(mutable)-可以改变列表的元素。

2.1 创建列表

可以通过list函数创建列表。

# 通过字符串创建列表
l = list("Hello") # ["H","e","l","l","o"]
# 将字符列表转换为字符串
s = "".join(l) # Hello
2.2 修改列表
# 1.元素赋值
l = [1,2,3]
l[1] = 5
print(l) # [1,5,3]

# 2.删除元素
del l[1] # [1,3]

# 3.分片赋值
name = list("peter")
name[1:] = list("ython")
print(name) # ["p","y","t","h","o","n"]

num = [1,5]
num[1:1] = [2,3,4] # 插入元素
print(num)  # [1,2,3,4,5]

num[1:4] = [] # 删除元素
print(num) # [1,5]
2.3 列表方法
方法 描述
append() 在列表末尾追加元素
count() 统计某个元素在列表中出现的次数
extend() 用新列表扩展旧列表
index() 获取元素在列表中第一个匹配项的位置
insert() 将元素插入列表
pop() 从列表移除元素,默认最后一个
remove() 移除列表中第一个匹配项
reverse() 列表元素反向
sort() 排序
3. 元组

元组是一种不能修改的序列。它的操作和方法与列表类似。

3.1 创建
(1,)
() #空元组
tuple([1,2,3]) # (1,2,3)
tuple("abc")  #("a","b","c")
3.2 元组方法
方法 描述
count() 统计某个元素在列表中出现的次数
index() 返回指定元素的索引
4. 字典

字典的常用操作

d = {"a": 1, "b": 2, 1: "one", 2: "two", 3: [1, 2, 3]}
print(type(dict))
print(type(d))
print(d)

# 访问元素
print(d["a"])
print(d[1])
print(d[3])

# 判断key是否存在
print("two" in d)
print(3 in d)
del(d[3])   # del(dict[key])

print(len(d)) #键值对的个数

d[3] = [1, 2, 3, 4]
d[3] = "1234"

print(d.keys()) #返回一个包含字典所有KEY的列表
print(d.values()) #返回一个包含字典所有value的列表
print(d.items()) #返回一个包含所有(键,值)元祖的列表

# 判断
#dict.has_key(key)如果key在字典中,返回True,否则返回False
print(d.has_key("a")

# 遍历
for key in d:
    print(d[key])
print("...")
for k, v in d.items():
    print(k, v)
print("...")
keys = d.keys()
print(type(keys))
print(keys)
4.1 字典方法
方法 描述
items() 将字典转换为键,值作为元组的列表
keys() 键列表
values() 值列表
clear() 清除所有元素
copy() 深复制
update() 在原字典上合并字典,键相同的会被覆盖
get() 取得某个键对应的值
popitem() 随机弹出键值对pop() 随机弹出某个键值对
5. 集合

集合常见操作

s1 = set([1,2,2,3,3,4,5,6,7])
s2 = set([4,5,6,7,8,9])

# 判断元素是否存在
print(5 in s1)
print(10 in s2)

# 并集
print(s1 | s2)
print(s1.union(s2))


# 交集
print(s1 & s2)
print(s1.intersection(s2))

# 差集 A - (A&B)
print(s1 - s2)
print(s1.difference(s2))

# 对称差 (A | B) - (A & B)
print(s1 ^ s2)
print(s1.symmetric_difference(s2))

# 修改元素
s1.add("x")
s1.update([4,5,10,11])
print(s1)
s1.remove(11)
print(s1)

print(len(s1))

结果

True
False
{1, 2, 3, 4, 5, 6, 7, 8, 9}
{1, 2, 3, 4, 5, 6, 7, 8, 9}
{4, 5, 6, 7}
{4, 5, 6, 7}
{1, 2, 3}
{1, 2, 3}
{1, 2, 3, 8, 9}
{1, 2, 3, 8, 9}
{1, 2, 3, 4, 5, 6, 7, 10, 11, "x"}
{1, 2, 3, 4, 5, 6, 7, 10, "x"}
9
5.1 集合方法
方法 描述
add() 添加元素
pop() 弹出元素
update() 合并集合
6. 字符串

字符串是 Python 中最常用的数据类型。我们可以使用引号("或")来创建字符串。
创建字符串很简单,只要为变量分配一个值即可。例如:

var1 = "Hello World!"
var2 = "Python Runoob"
6.1 原始字符串

原始字符串:所有的字符串都是直接按照字面的意思来使用,没有转义特殊或不能打印的字符。 原始字符串除在字符串的第一个引号前加上字母"r"(可以大小写)以外,与普通字符串有着几乎完全相同的语法。

>>> r"hello/n"
hello/n
6.2 Unicode字符串

Python 中定义一个 Unicode 字符串和定义一个普通字符串一样简单:

>>> u"Hello World !"
u"Hello World !"

引号前小写的"u"表示这里创建的是一个 Unicode 字符串。如果你想加入一个特殊字符,可以使用 Python 的 Unicode-Escape 编码。如下例所示:

>>> u"Hellou0020World !"
u"Hello World !"

被替换的 u0020 标识表示在给定位置插入编码值为 0x0020 的 Unicode 字符(空格符)。

6.3 字符串常用操作
import string
# 去除空格
s = "  hello python  "
print(s.strip())  # 删除两边的空格
print(s.lstrip()) # 删除左边的空格
print(s.rstrip()) # 删除右边的空格
print(s)

# 连接字符串
s1 = "hello"
s2 = "python"
print(s1 + " " + s2)

# 大小写
str_1 = "HeLloWorlD"
print(str_1.upper())
print(str_1.lower())
print(str_1.capitalize()) # 首字母大写

# 位置和比较
str1 = "abcdefg"
str2 = "abdefgh"
print(str1.index("c"))
print(str1.index("de"))
try:
    print(str1.index("dd"))
except ValueError:
    print("ValueError:substring not found")

    # 比较
    print(str1 == str2)
    print(str1 > str2)
    print(str1 < str2)


# 分割和连接
s = "I,Love,Python"
print(s.split(","))
num = "123
456
789"
nums = num.splitlines() # 按行分割
print(nums)
print("-".join(nums))
print(" ".join(s.split(",")))

# 字符串长度
print(len("abcd"))

# 数字转字符串
print(str(10))
print(str(10.0))
print(str(-10))
print(int("123"))

# 格式化字符串
print("Hello %s!" %"python")
print("%d %.2f %s" %(10,1.2,"python"))

# 常用判断
s_1 = "abcdefg"
print(s_1.startswith("abc")) # 是否以"abc"开头
print(s_1.endswith("efg"))   # 是否以"efg"结尾
print("abc123".isalnum()) # 是否正常字母和数字
print("	abc123".isalnum()) # 有转义字符
print("abc".isalpha()) # 是否字母
print("123".isdigit()) # 是否数字
print(" ".isspace())   # 是否空格
print("abc".islower()) # 是否小写
print("ABC".isupper()) # 是否大写
print("Hello World!".istitle()) # 是否标题(检测字符串中是否所有单词首字母大写,且其他字母小写)

结果如下:

hello python
hello python  
  hello python
  hello python  
hello python
HELLOWORLD
helloworld
Helloworld
2
3
ValueError:substring not found
False
False
True
["I", "Love", "Python"]
["123", "456", "789"]
123-456-789
I Love Python
4
10
10.0
-10
123
Hello python!
10 1.20 python
True
True
True
False
True
True
True
True
True
True
End

以上主要介绍了常用数据类型的简单使用,具体用法还需多多实践。

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/41134.html

相关文章

  • python学习笔记 --- python中的list和numpy中的矩阵分析

    摘要:中的和中的矩阵分析由于之前在做的源码学习,并且将其的源码翻译成了的版本。在逛知乎里,我又发现了很多关于为什么这么快的讨论,很有意思。作者链接来源知乎著作权归作者所有。 python中的list和numpy中的矩阵分析 Author : Jasper Yang School : Bupt preface 由于之前在做GIbbsLDA++的源码学习,并且将其c++的源码翻译成了pyth...

    DobbyKim 评论0 收藏0
  • 第7期 Datawhale 组队学习计划

    马上就要开始啦这次共组织15个组队学习 涵盖了AI领域从理论知识到动手实践的内容 按照下面给出的最完备学习路线分类 难度系数分为低、中、高三档 可以按照需要参加 - 学习路线 - showImg(https://segmentfault.com/img/remote/1460000019082128); showImg(https://segmentfault.com/img/remote/...

    dinfer 评论0 收藏0
  • head first python(第一章)–学习笔记

    摘要:第一章学习流程图安装这里是用的,除了之外,和都自带了,只是版本没有这么新。是区分大小写的。可以根据多维数组来理解。知识点补充里列表是打了激素的数组,意味着列表比数组更厉害,更好用。的语句的缩进是必须规范的。 head first python(第一章)--学习流程图 showImg(http://source1.godblessyuan.com/blog_headfirstpytho...

    TerryCai 评论0 收藏0
  • python3学习笔记(2)----python数据类型

    摘要:的基本数据类型中的变量不需要声明。在里,只有一种整数类型,表示为长整型,没有中的。字符串的截取的语法格式如下变量头下标尾下标索引值以为开始值,为从末尾的开始位置。列表列表是中使用最频繁的数据类型。注意构造包含或个元素的元组的特殊语法规则。 1、python3的基本数据类型 Python 中的变量不需要声明。每个变量在使用前都必须赋值,变量赋值以后该变量才会被创建。在 Python 中,...

    陆斌 评论0 收藏0

发表评论

0条评论

jcc

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<