首页 > 分享 > python中的数据类型篇

python中的数据类型篇

目录标题 1.数据类型篇1.1 基本数据类型1.1.1 逻辑推理练习(类型转换)1.1.2 数据类型考察1.1.3 交互式解释器练习 1.2 字符串练习题(基本数据类型)1.2.1 字符串内置方法练习1.2.2 字符串切片(字符串) 1.3 列表练习题(组合数据类型)1.3.1 列表基础考察1.3.2 修改列表1.3.4 合并列表1.3.5 合并字符串1.3.6 统计练习1.3.7 列表操作练习1.3.8 复杂列表练习 1.4 字典练习题(组合数据类型)1.4.1 字典基本操作1.4.2 字典应用(买水果)1.4.3 字典应用(买水果2) 1.5 集合练习题(组合数据类型)1.5.1集合间的运算 1.6 元组练习题(组合数据类型)1.6.1 元组概念考察 1.数据类型篇 1.1 基本数据类型 1.1.1 逻辑推理练习(类型转换)

不运行程序,说出下面程序的执行结果

4.0 == 4 "4.0" == 4 bool("1") bool("0") str(32) int(6.26) float(32) float("3.21") int("434") int("3.42") bool(-1) bool("") bool(0) "wrqq" > "acd" "ttt" == "ttt " "sd"*3 "wer" + "2322"

1234567891011121314151617

答案如下

true false true true "32" 6 32.0 3.21 434 会报错 # 标记 true false false true false # 标记 sdsdsd wer2322

1234567891011121314151617

0 , 空字符串, None在条件判断语句中等价于False, 其他数值都等价于True
字符串"3.42"可以转成float类型数据3.42, 3.42可以转成int类型数据3,但是字符串"3.42"却不可以直接使用int函数转成3

1.1.2 数据类型考察

请说出下面表达式结果的类型

"True" "Flase" 4 >= 5 5 5.0 True 123456

答案如下

字符串 字符串 bool int float bool 123456 1.1.3 交互式解释器练习

请在交互式解释器里回答下面的题目

3的5次方 7对2求模 9除5,要求有小数部分 9除5,要求没有小数部分 用程序计算根号16,也就是16的2分之一次方 12345

答案如下

print(3 ** 5) print(7%2) print(9/5) print(9//5) import math print(math.sqrt(16)) 123456

除法中,希望结果有小数部分时用/, 希望只保留整数部分时用 //

1.2 字符串练习题(基本数据类型) 1.2.1 字符串内置方法练习

在交互式解释器中完成下列题目

计算字符串 "cd" 在 字符串 "abcd"中出现的位置 字符串 "a,b,c,d" ,请用逗号分割字符串 "{name}喜欢{fruit}".format(name="李雷") 执行会出错,请修改代码让其正确执行 string = "Python is good", 请将字符串里的Python替换成 python,并计算字母O出现了几次,和该字符串的长度 有一个字符串 string = "python修炼第一期.html",请写程序从这个字符串里获得.html前面的部分,要用尽可能多的方式来做这个事情 "this is a book",请将字符串里的book替换成apple "this is a book", 请用程序判断该字符串是否以this开头 "this is a book", 请用程序判断该字符串是否以apple结尾 "This IS a book", 请将字符串里的大写字符转成小写字符 "This IS a book", 请将字符串里的小写字符,转成大写字符 "This IS a book", 请将每个单词的首字母转成大写 "this is a bookn", 字符串的末尾有一个回车符,请将其删除 str1 = "this is a book" str2 = "这是一本书" 请将str1,str2两个字符串用3种方法进行拼接 123456789101112131415

答案如下

print("a,b,c,d".split(",")) print("{name}喜欢{fruit}".format(name="李雷", fruit="apple")) print("Python is good".replace("Python", "python")) print("Python is good".count("o")) print(len("python is good")) string = "python修炼第一期.html" print(string[0:11]) # print(string[0:-5]) print(string[0:(string.find(".html"))]) print("this is a book".startswith("this")) print("this is a book".endswith("book")) print("This IS a book".lower()) print("This IS a book".upper()) print("This IS a book".title()) print("this is a bookn".strip()) print(str1 + str2) print("%s%s" % (str1, str2)) print("{}{}".format(str1, str2))

1234567891011121314151617

strip() 方法用于移除字符串头尾指定的字符(默认为空格或换行符)或字符序列

1.2.2 字符串切片(字符串)

口述回答下面代码的执行结果

num_str = "0123456789" 1

print(num_str[2:6]) print(num_str[2:]) print(num_str[:6]) print(num_str[:]) print(num_str[::2]) print(num_str[1::2]) print(num_str[-1]) print(num_str[2:-1]) print(num_str[-2:]) print(num_str[::-1]) 12345678910

答案如下

2345 23456789 012345 0123456789 02468 13579 9 2345678 89 9876543210 12345678910 1.3 列表练习题(组合数据类型) 1.3.1 列表基础考察

已知一个列表 list = [1,2,3,4,5]

求列表的长度 判断6 是否在列表中 lst + [6, 7, 8] 的结果是什么? lst*2 的结果是什么 列表里元素的最大值是多少 列表里元素的最小值是多少 列表里所有元素的和是多少 在索引1的后面新增一个的元素10 在列表的末尾新增一个元素20 123456789

答案如下

list = [1, 2, 3, 4, 5] print(len(list)) print(6 in list) print(list + [6, 7, 8]) print(list * 2) print(max(list)) print(min(list)) print(sum(list)) list.insert(1, 10) print(list) list.append(20) print(list) 123456789101112 1.3.2 修改列表

list = [1, [4, 6], True] 请将列表里所有数字修改成原来的两倍

list = [1, [4, 6], True] list[0] = 2 list[1][0] = 8 list[1][1] = 12 print(list) 12345

用函数实现

def double_list(lst): for index, item in enumerate(lst): if isinstance(item, bool): continue if isinstance(item, (int, float)): lst[index] *= 2 if isinstance(item, list): double_list(item) if __name__ == '__main__': lst = [1, [4, 6], True] double_list(lst) print(lst) 1234567891011121314

答案如下

1.3.4 合并列表

lst = [1,2,3] lst2 = [4,5,6] 12

答案如下

list = [1, 2, 3] print(id(list)) # 查看地址 list2 = [4, 5, 6] list.extend(list2) # 合并 print(list) print(id(list)) 123456

list的内存地址都没有发生变化,只是列表里的内容发生了变化

1.3.5 合并字符串

str1 = "1,2,3" str2 = "4,5,6" 不使用 + 号运算符,请将str2合并到str1的末尾,并思考,这个过程中,是否产生了新的字符串 123

答案如下

str1 = "1,2,3" print(id(str1)) # 查看内存地址 str2 = "4,5,6" str1 += str2 # 拼接 print(str1) print(id(str1)) 123456

合并前后的内存地址是不一样

1.3.6 统计练习

列表lst 内容如下

lst = [2, 5, 6, 7, 8, 9, 2, 9, 9] 请写程序完成下列题目 找出列表里的最大值 找出列表里的最小值 找出列表里最大值的个数 计算列表里所有元素的和 计算列表里元素的平均值 计算列表的长度 找出元素6在列表中的索引 12345678910

答案如下

lst = [2, 5, 6, 7, 8, 9, 2, 9, 9] print(max(lst)) print(min(lst)) print(lst.count(max(lst))) print(sum(lst)) print(sum(lst)/float(len(lst))) print(len(lst)) print(lst.index(6)) 12345678

下面的题目不允许写代码,仅凭思考来回答
lst = [2, 5, 6, 7, 8, 9, 2, 9, 9]

lst[2:4] 的值是什么 lst[1: -3]的值是什么 lst[-5]的值是什么 lst[:-4] 的值是什么 lst[-4:] 的值是什么 12345

答案如下

print(lst[2:4]) print(lst[1: -3]) print(lst[-5]) print(lst[:-4]) print(lst[-4]) 12345 1.3.7 列表操作练习

列表lst 内容如下

lst = [2, 5, 6, 7, 8, 9, 2, 9, 9] 请写程序完成下列操作 在列表的末尾增加元素15 在列表的中间位置插入元素20 将列表[2, 5, 6]合并到lst中 移除列表中索引为3的元素 翻转列表里的所有元素 对列表里的元素进行排序,从小到大一次,从大到小一次 123456789

答案如下

lst = [2, 5, 6, 7, 8, 9, 2, 9, 9] lst.append(15) print(lst) lst.insert(len(lst) // 2, 20) print(lst) lst.extend([2, 5, 6]) print(lst) lst.remove(lst[3]) print(lst) lst.reverse() print(lst) lst.sort() # 升序 print(lst) lst.sort(reverse=True) print(lst) 123456789101112131415 1.3.8 复杂列表练习 1.4 字典练习题(组合数据类型) 1.4.1 字典基本操作

字典内容如下 dic = { 'python': 95, 'java': 99, 'c': 100 } 1234567

用程序解答下面的题目 字典的长度是多少 请修改'java' 这个key对应的value值为98 删除 c 这个key 增加一个key-value对,key值为 php, value是90 获取所有的key值,存储在列表里 获取所有的value值,存储在列表里 判断 javascript 是否在字典中 获得字典里所有value 的和 获取字典里最大的value 获取字典里最小的value 字典 dic1 = {'php': 97}, 将dic1的数据更新到dic中 12345678910111213

答案如下

print(len(dic)) dic['java'] = 98 print(dic) del (dic["c"]) print(dic) dic['phd'] = 90 print(dic) lst1 = list(dic.keys()) print(lst1) lst2 = list(dic.values()) print(lst2) print("javascript" in dic) print(sum(dic.values())) print(max(dic.values())) print(min(dic.values())) dic1 = {'php': 97} dic.update(dic1) print(dic)

123456789101112131415161718 1.4.2 字典应用(买水果)

小明去超市购买水果,账单如下 苹果 32.8 香蕉 22 葡萄 15.5 请将上面的数据存储到字典里,可以根据水果名称查询购买这个水果的费用 123456

答案如下

info = { '苹果':32.8, '香蕉': 22, '葡萄': 15.5 } 12345 1.4.3 字典应用(买水果2)

小明,小刚去超市里购买水果 小明购买了苹果,草莓,香蕉,一共花了89块钱,,小刚购买了葡萄,橘子,樱桃,一共花了87块钱 请从上面的描述中提取数据,存储到字典中,可以根据姓名获取这个人购买的水果种类和总费用。 12345

答案如下

info = { "小明": { "fruits": ["苹果", "草莓", "香蕉"], "money": 89 }, "小岗": { "fruits": ["葡萄", "橘子", "樱桃"], "money": 87 } } 12345678910 1.5 集合练习题(组合数据类型) 1.5.1集合间的运算

lst1 = [1, 2, 3, 5, 6, 3, 2] lst2 = [2, 5, 7, 9] 哪些整数既在lst1中,也在lst2中 哪些整数在lst1中,不在lst2中 两个列表一共有哪些整数 12345

答案如下

lst1 = [1, 2, 3, 5, 6, 3, 2] lst2 = [2, 5, 7, 9] set1 = set(lst1) set2 = set(lst2) # 哪些整数既在lst1中,也在lst2中 print(set1.intersection(set2)) # 哪些整数在lst1中,不在lst2中 print(set1.difference(set2)) # 两个列表一共有哪些整数 print(set1.union(set2)) 1234567891011121314 1.6 元组练习题(组合数据类型) 1.6.1 元组概念考察

写出下面代码的执行结果和最终结果的类型

(1, 2)*2 (1, )*2 (1)*2 123

答案如下

print((1, 2) * 2) print((1,) * 2) print((1) * 2) 123

第一题应该没有异议,关键是第2题和第3题,元组里只有一个数据时,必须有逗号,如果没有逗号,就变成了第3题的形式,第3题本质上是1*2,那对小括号就如同我们小学学过的小括号一样,只是为了体现运算优先级而已。

当元组只有一个数据时,如果不省略了逗号,那么小括号的作用就不再是表示元组,而是表示运算优先级

相关知识

Python基本数据类型
【Python】(二)数据类型与转换
老王python之基本数据类型习题
Python变量和数据类型Number、String、转义字符、字符串格式化
Python数据类型 — 字典
理解Python中列表/字典/元组/集合
Python中is和==的区别详解
Python常见的错误以及其解决方案
【Python】基础
python的鸢尾花数据如何导入

网址: python中的数据类型篇 https://m.huajiangbk.com/newsview1250435.html

所属分类:花卉
上一篇: 水果品种有哪些
下一篇: 【水果数据集】水果品种识别 人工