python基础练习题之数据类型篇

逻辑推理练习(类型转换)

1.4.0 == 4 # True
2."4.0" == 4 # False
3.bool("1") # True
4.bool("0") # True
5.str(32) # '32'
6.int(6.26) # 6
7.float(32) # 32.0
8.float("3.21") # 3.21
9.int("434") # 434
10.int("3.42") # 报错
11.bool(-1) # True
12.bool("") # False
13.bool(0) # False
14."wrqq" > "acd" # True
15."ttt" == "ttt " # False
16."sd"*3 # "sdsdsd"
17."wer" + "2322" # 'wer2322'

'''
布尔类型:布尔类型转换数据时,空字符串,0,和none输出false,其他均为true
int:int可以将由纯整数构成的字符串直接转换成整型,若包含其他任意非整数符号,则会报错
两个字符串在比较大小时,比较的不是长度,而是内容,当字符串左对齐时,依次往后比较大小,直至分出胜负 # a最大
"sd"*3的意思是sd重复三次并生成一个新的字符串
'''

数据类型的考察
1."True" # str
2."False" # str
3.4 >= 5 # bool
4.5 # int
5.5.0 # float
6.True # bool

基本运算符
1.3的5次方 # 3 ** 5   243
2.7对2求模 # 7 % 2    1
3.9除5,要求有小数部分 # 9 / 5  1.8
4.9除5,要求没有小数部分 # 9 // 5   1
5.用程序计算根号16 # 16 ** 0.5   4.0

'''
1.幂运算用两个*表示,2的2次方为 2 ** 2
2.求模运算用% 即取余数
3.除法中,结果要有小数用/,不要小数用//
4.开根号可以用两个方法:
	i.平方根即二分之一次方,立方根三分之一次方等
	ii.用math模块中的sqrt方法
'''

字符串练习

1.将字符串"abcd"转换成大写 # "abcd".upper()
2.计算字符串"cd"在 字符串"abcd"中出现的位置 # "abcd".find('cd')
3.字符串 "a,b,c,d",请用逗号分割字符串,分割后的结果是什么类型的? # "a,b,c,d".split(',')  ['a', 'b', 'c', 'd']
4."{name}喜欢{fruit}".format(name="李雷")执行会出错,请修改代码让其正确执行 # "{name}喜欢{fruit}".format(name="李雷",fruit="苹果") 有两个需要传递的参数 format方法只传了一个会报错
5. string = "Python is good", 请将字符串里的Python替换成python,并输出替换后的结果
	res = string.replace('Python','python')
    print(res) # python is good
6.有一个字符串 string = "python修炼第一期.html",请写程序从这个字符串里获得.html前面的部分,要用尽可能多的方式来做这个事情
	print(string[0:-5])
    print(string[0:string.find('.html')])
7.如何获取字符串的长度? # len
8. "this is a book",请将字符串里的book替换成apple
    print("this is a book".replace('book','apple'))
9. "this is a book", 请用程序判断该字符串是否以this开头
	print("this is a book".startswith('this'))
10. "this is a book",请用程序判断该字符串是否以apple结尾
	print("this is a book".endswith('apple'))
11. "This IS a book",请将字符串里的大写字符转成小写字符
	print("This IS a book".lower())
12. "This IS a book",请将字符串里的小写字符,转成大写字符
	print("This IS a book".upper())
13. "this is a book\n",字符串的末尾有一个回车符,请将其删除
	print("this is a book\n".strip())

逻辑推理练习(字符串)

不用代码,口述回答下面代码的执行结果
string = 'Python is good'
1.  string[1:20] # ython is good
2.  string[20] # 报错
3.  string[3:-4] # hon is 
4.  string[-10:-3] # on is g
5.  string.lower() # python is good
6.  string.replace('o', '0') # pyth0n is g00d
7.  string.startswith('python') # False
8.  string.split() # ['Python','is','good']
9.  len(string) # 14
10.  string[30] # 报错
11.  string.replace(' ', '') # Python is good

列表与元组练习

已知—个列表
lst = ['1','2','3','4','5']
1. 求列表的长度 # print(len(lst))   // 5
2. 判断6 是否在列表中 # print(6 in lst)  // False
3. lst + [6, 7, 8] 的结果是什么? # print(lst + [6,7,8])  // [1,2,3,4,5,6,7,8]
4. lst*2 的结果是什么 # print(lst*2)  // [1,2,3,4,5,1,2,3,4,5]
5. 列表里元素的最大值是多少 # print(max(lst))  // 5
6. 列表里元素的最小值是多少 # print(min(lst))  // 1
7. 列表里所有元素的和是多少 # print(sum(lst)) // 15
8. 在索引1的后面新增—个的元素10 # lst.insert(0,'10')  // print(lst)
9. 在列表的末尾新增—个元素20 # lst.append(20) // print(lst)

修改列表

已知lst = [1, [4, 6], True];请将列表中元素的值变为原来的两倍

lst[0]=2
lst[1][0]=8
lst[1][1]=12
print(lst)

'''
补充:
对列表排序使用sort方法,默认值为False即升序排列。reverse用来指定是否跌倒排序
'''
lst = [11,111,22,33,2223,65,46,3,564,332,1123]
lst.sort()
print(lst)   # [3, 11, 22, 33, 46, 65, 111, 332, 564, 1123, 2223]
lst.sort(reverse=True)
print(lst)   # [2223, 1123, 564, 332, 111, 65, 46, 33, 22, 11, 3]

合并列表

下面有两个列表,请将lst2中的数据合并到lst1的末尾,不使用'+'号
lst1=[1,2,3]
lst2=[4,5,6]
print(id(lst1))
lst1.extend(lst2)
print(lst1)
print(id(lst1))
'''
2444543130880
[1, 2, 3, 4, 5, 6]
2444543130880
使用print(id(lst1))输出lst1的内存卡空间地址,发现前后并没有任何变化,说明在合并过程中没有产生新的列表
'''

元组

写出下面代码的最终执行结果和最终结果的类型
1. (1,  2)*2 # (1,2,1,2) // 元组 
2. (1, )*2 # (1,1) // 元组
3. (1)*2 # 2 // int
'''
当元组中只有一个数据的时,必须要有逗号,如果省略了逗号,那么小括号的作用就不再是表示元组,而是表示运算优先级
'''

合并字符串

str1 = "1,2,3"
str2 = "4,5,6"
print(id(str1))
str1 += str2
print(str1)
print(id(str1))
'''
2257389437680
1,2,34,5,6
2257389448688
这个过程中,产生了新的字符串,字符串是不可变对象。
本质上是产生了新的字符串并赋值给str1  合并前后的内存地址是不一样的
'''

统计练习

lst = [2, 5, 6, 7, 8, 9, 2, 9, 9]
1.  找出列表里的最大值 # max(lst) // 9
2.  找出列表里的最小值 # min(lst) // 2
3.  找出列表里最大值的个数 # lst.count(max(lst)) // 3
4.  计算列表里所有元素的和 # sum(lst) // 57
5.  计算列表里元素的平均值 # sum(lst)/int(len(lst)) // 6.3333333333
6.  计算列表的长度 # len(lst) // 9
7.  找出元素6在列表中的索引 # lst.index(6) // 2

'''
思考:
1.lst[2:4] 的值是什么 # [6,7]
2.lst[1: -3]的值是什么 # [5,6,7,8,9]
3.lst[-5]的值是什么 # 8
4.lst[:-4] 的值是什么 # [2,5,6,7,8,9]
5.lst[-4:] 的值是什么 # [9,2,9,9]
'''
列表的切片操作,最关键的—点在于左闭右开,结束位置的数据不会列入结果中

列表操作练习

lst = [2, 5, 6, 7, 8, 9, 2, 9, 9]
1.  找出列表里的最大值 # max(lst) // 9
2.  找出列表里的最小值 # min(lst) // 2
3.  找出列表里最大值的个数 # lst.count(max(lst)) // 3
4.  计算列表里所有元素的和 # sum(lst) // 57
5.  计算列表里元素的平均值 # sum(lst)/int(len(lst)) // 6.3333333333
6.  计算列表的长度 # len(lst) // 9
7.  找出元素6在列表中的索引 # lst.index(6) // 2

'''
思考:
1.lst[2:4] 的值是什么 # [6,7]
2.lst[1: -3]的值是什么 # [5,6,7,8,9]
3.lst[-5]的值是什么 # 8
4.lst[:-4] 的值是什么 # [2,5,6,7,8,9]
5.lst[-4:] 的值是什么 # [9,2,9,9]
'''
列表的切片操作,最关键的—点在于左闭右开,结束位置的数据不会列入结果中

复杂列表练习

lst = [1, 4, 5, [1, 3, 5, 6, [8, 9, 10, 12]]]
1.  列表lst的长度是多少 # len(lst) // 4
2.  列表lst中有几个元素 # 4
3.  lst[1] 的数据类型是什么 # int
4.  lst[3]的数据类型是什么 # list
5.  lst[3][4] 的值是什么 # [8,9,10,12]
6.  如果才能访问到 9 这个值 # lst[3][4][1]
7.  执行lst[3][4].append([5, 6])后,列表lst的内容是什么,手写出来 # [1, 4, 5, [1, 3, 5, 6, [8, 9, 10, 12, [5, 6]]]]
8.  lst[-1][-1][-2]的值是什么 # 10
9.  lst[-2]的值是什么 # 5
10.  len(lst[-1])的值是什么 # 5
11.  len(lst[-1][-1])的值是什么 # 4
12.  lst[-1][1:3] 的值是什么 # [3,5]
13.  lst[-1][-1][1:-2]的值是什么 # [9]

字典练习

dic = {
	'python': 95,
	'java': 99,
	'c': 100
}
1.  字典的长度是多少 # len(dic)
2.  请修改'java' 这个key对应的value值为98 # dic['java'] = 98
3.  删除 c 这个key # del dic['c']    dic.pop('c')
4.  增加—个key-value对,  key值为 php, value是90 # dic['php'] = 90
5.  获取所有的key值,存储在列表里 # list = list(dic.keys())
6.  获取所有的value值,存储在列表里 # list = list(dic.values())
7.  判断 javascript 是否在字典中 # 'javascript' in dic
8.  获得字典里所有value的和 # sum(dic.values())
9.  获取字典里最大的value # max(dic.values())
10.  获取字典里最小的value # min(dic.values())
11.  字典 dic1 = {'php': 97},将dic1的数据更新到dic中 # dic.update(dic1)

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

info = {
    '小明': {
        'fruits': ['苹果', '草莓', '香蕉'],
        'money': 89
    },
    '小刚': {
        'fruits': ['葡萄', '橘子', '樱桃'],
        'money': 87
    }
}
print(info.get('小明'))
'''

集合练习

lst1 = [1, 2, 3, 5, 6, 3, 2]
lst2 = [2, 5, 7, 9]

s1 = set(lst1)
s2 = set(lst2)
哪些整数既在lst1中,也在lst2中  # s4 = s1&s2  # {2, 5}  交集
哪些整数在lst1中,不在lst2中 # s5 = s1-s2  # {1, 3, 6}  差集
两个列表—共有哪些整数 # s3 = s1|s2  # {1, 2, 3, 5, 6, 7, 9}  并集
哪些数不是两个列表共有的 # s6 = s1^s2  # {1, 3, 6, 7, 9} 对称差集

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值