0
点赞
收藏
分享

微信扫一扫

Python.实验1数据类型

芭芭蘑菇 2022-04-15 阅读 74
python

实验目的

1.掌握列表和切片的基本使用方法。
2.掌握元组的基本使用方法。
3.掌握字典的基本使用方法。
4.掌握集合和列表表达式的基本使用方法。

实验内容

1、编写程序,生成一个包含20个随机整数的列表,然后对其中偶数下标的元素进行降序排列,奇数下标的元素不变。(提示:使用切片。)

import random
list1 = []
list2 = []
for i in range(0, 20):
    a = random.randrange(1, 100)
    list1.append(a)
for i in list1[0:len(list1):2]:
    list2.append(i)
list2.sort(reverse=True)
for i in range(0, 10):
    list1[i*2] = list2[i]
print(list2)
print(list1)

2、编写程序,输入两个集合 setA 和 setB,分别输出它们的交集、并集和差集 setA-setB

setA = set(input("请输入setA:"))
setB = set(input("请输入setB:"))

# 交集
print("交集:", setA.intersection(setB))
# 并集
print("并集:", setA.union(setB))
# 差集
print("差集:", setA.difference(setB))

3、首先生成包含1000个随机字符的字符串,然后统计每个字符的出现次数。(使用字典)

import random

base = "1234567890abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ!@#$%^&*()_+=-"
str1 = []
dict1 = {}

for i in range(10000):
    str1.append(random.choice(base))
Str = ''.join(str1)
print(Str)
for i in Str:
    dict1[i] = dict1.get(i, 0)+1
print(dict1)

4、阿凡提与国王比赛下棋,国王说要是自己输了的话阿凡提想要什么他都可以拿得出来。阿凡提说那就要点米吧,棋盘一共64个小格子,在第一个格子里放1粒米,第二个格子里放2粒米,第三个格子里放4粒米,第四个格子里放8粒米。以此类推,后面每个格子里的米都是前一个格子里的2倍,一直把64个格子都放满。需要多少粒米呢?

#方法一
num = 0
a = 1
for i in range(0, 64):
    num = num + a
    a *= 2
print(num)

#方法二
print(sum([2 ** i for i in range(64)]))

5、编写程序,用户输入一个列表和2个整数作为下标,然后输出列表中介于2个下标之间的元素组成的子列表。例如用户输入[1,2,3,4,5,6]和2,5,程序输出[3,4,5]。

list1 = list(input("请输入输入列表:"))
x = int(input("请输入第一个整数:"))
y = int(input("请输入第二个整数:"))

if x >= y:
    print("整数输出错误!")
else:
    print(list1[x:y])

7.设计一个字典,并编写程序,用户输入内容作为键,然后输出字典中对应的值,如果用户输入的键不存在,则输出“您输入的键不存在!”

dict1 = {"1": "a", "2": "b", "3": "c"}
print(f"字典为:{dict1}")
key1 = input("请输入键:")
if key1 in dict1.keys():
    print(dict1[key1])
else:
    print("您输入的键不存在!")

8.假设有三个列表:
lst_who=[“小马”,“小羊”,“小鹿”],
lst_where=[“草地上”,“电影院”,“家里”],
lst_what=[“看电影”,“听故事”,“吃晚饭”]。
试编写程序,随机生成三个0-2范围内的整数,将其作为索引分别访问三个列表中的对应元素然后进行造句。例如,随机生成三个整数分别为1,0,2,则输出句子“小羊在草地上吃晚饭”。

import random
lst_who = ["小马", "小羊", "小鹿"]
lst_where = ["草地上", "电影院", "家里"]
lst_what = ["看电影", "听故事", "吃晚饭"]
print(f"{lst_who[random.randrange(3)]}{lst_where[random.randrange(3)]}{lst_what[random.randrange(3)]}")

9.生成一个包含20个两位随机整数的列表,将其前十个元素升序排列,后十个元素降序排列。

import random

list1 = []
for i in range(0, 20):
    a = random.randrange(1, 100)
    list1.append(a)
list1 = sorted(list1[:10], reverse=False) + sorted(list1[10:], reverse=True)
print(list1)

10.生成包含 20 个随机整数的元组,将前十个数按升序排列,后十个数按降序排列。

import random

tuple1 = ()
list1 = []
for i in range(0, 20):
    a = random.randrange(1, 100)
    tuple1 = tuple1 + tuple({a})
tuple1 = tuple(sorted(list(tuple1[:10]), reverse=False) + sorted(list(tuple1[10:]), reverse=True))
print(tuple1)

11.现在给出两个列表:
列表A:(1,7,9,11,13,15,17,19)
列表b:(2,4,6,8,10)
两个列表合并为列表c,按升序排列。

listA = [1, 7, 9, 11, 13, 15, 17, 19]
listB = [2, 4, 6, 8, 10]
listC = sorted(listA + listB)
print(listC)

12.编写程序,删除一个list里面的重复元素。

list1 = [1, 1, 1, 2, 2, 3, 4, 5]
list1 = list(set(list1))
print(list1)
举报

相关推荐

0 条评论