首页 > 编程语言 >17:Python数据类型练习题

17:Python数据类型练习题

时间:2024-08-06 23:06:43浏览次数:16  
标签:练习题 Python tu 数据类型 li range str print page

# 1获取c1,c2相同的元素列表
c1 = [11, 22, 33]
c2 = [22, 33, 44]
for i in c1:
if i in c2:
print(i)

# 2获取c1中有,c2没有的元素列表
for i in c1:
if i not in c2:
print(i)

# 3获取c2中有,c1没有的元素列表
for i in c2:
if i not in c1:
print(i)

# 4获取c1和c2中内容不同的元素
for i in c2:
if i not in c1:
print(i)
for i in c1:
if i not in c2:
print(i)


# li1 = [1, 2, 3, 4, 5, 6, 7, 8]
# li2 = [1, 2, 3, 4, 5, 6, 7, 8]
# for i in li1:
# print(li1)
# for i2 in li2:
# print(li2)

# 由1、2、3、4、5、6、7、8、8个数,能组成多少个互不相同其无重复数字的两位数?
count=0
for i in range(1,9):
for v in range(1,9):
if i!=v:
count+=1
print(count)

# 由1、2、3、4、5、6、7、8、8个数,把组成所有不重复的两位数打印出来?
numbers = [1, 2, 3, 4, 5, 6, 7, 8]
for first_digit in numbers:
for second_digit in numbers:
if first_digit != 0 and first_digit != second_digit:
print(f"{first_digit}{second_digit}", end=' ')
for first_digit in numbers:
for second_digit in numbers[numbers.index(first_digit) + 1:]:
print(f"{first_digit}{second_digit}", end=' ')

#99乘法表

for i in range(1,10):
string = ""
for j in range(1,i+1):
string +=str(j)+"*"+str(i)+"="+str(i*j)+"\t"
print(string)


for i in range(1, 10): # 乘法表的第一个数(乘数),从1到9
for j in range(1, i+1): # 乘法表的第二个数(被乘数),从1到当前的i(因为乘法表是上三角的)
# 打印乘法表的一项,end参数用于在同一行打印多个项,不换行
# 使用格式化字符串来对齐输出,确保乘法表的整洁
print(f"{j}x{i}={i*j}\t", end='')
# 当一行打印完毕后,输出换行符以开始新的一行
print()

for i in range (1,10):
for j in range(1,i+1):
print(str(j)+"*"+str(i)+"="+str(i*j)+"\t",end="")
print("\n",end="")

print("dfkw",'wfdfds',580,sep='@') #sep分割默认是空格, end的默认值是\n换行

# 这里面的数字两个组合,多少种不同样的,数字不重复的
li = [1, 2, 3, 4]
c = len(li)
for i in range(0, c-1):
for v in range(i + 1, c):
print(li[i], li[v])

# 用Python 开发程序自动计算方案:
# 公鸡5文钱一只,母鸡3文钱一只,小鸡3只1文钱,用100文钱买100只鸡,
# 其中公鸡,母鸡,小鸡都必须要有,文公鸡,母鸡,小鸡要买多少只刚好凑足100文钱?
for g in range(1, 100 // 5):
for m in range(1, 100 // 3):
for x in range(1, 100):
if g + m + x==100 and g * 5+m * 3+x / 3==100:
print(g, m, x)

for x in range(1, 20): # 公鸡最多买19只(因为还要买母鸡和小鸡)
# 遍历所有可能的母鸡数量
for y in range(1, 34): # 母鸡最多买33只(因为公鸡至少1只,小鸡至少1只*3=3只)
# 根据公鸡和母鸡的数量,计算小鸡的数量
z = 100 - x - y # 总共要买100只鸡
# 检查小鸡的数量是否为3的倍数且大于等于3
if z % 3 == 0 and z >= 3:
# 计算总花费
total_cost = 5 * x + 3 * y + z // 3
# 检查总花费和总数量是否满足条件
if total_cost == 100:
print(f"公鸡:{x}只, 母鸡:{y}只, 小鸡:{z}只")

# 用代码实现:利用下划线将每列的每个元素拼接成字符串,li=['woshi','zhongguo','ren']
li=['woshi','zhongguo','ren']
v='_'.join(li)
print(v)

li=['woshi','zhongguo',123]
li[2]='123'
v='_'.join(li)
print(v)

li=['woshi','zhongguo',123]
li[2]=str(li[2])
v='_'.join(li)
print(v)

li = ['woshi', 'zhongguo', 123]
# 使用列表推导式将每个元素转换为字符串(尽管在这个特定例子中可能是多余的)
v= [str(item) for item in li]
m='_'.join(v)
print(m)

#写代码,有如下元组,按照要求实现每一个功能
# tu=('wo','shi','chengxuyuan','xuexi','zhe')
# a.计算元组长度并输出
# b.获取元组的第2个元素,并输出
# c.获取元组的1~3个元素,并输出
# d.请使用for输出元组的元素
# e.请使用for,len,range,输出元组的索引
# f.请使用enumerate输出元组的元素和符号(序号从10开始)

tu=('wo','shi','chengxuyuan','xuexi','zhe')
print(len(tu))
print(tu[1])
print(tu[1:4])
for i in tu:
print(i)
for m in range(len(tu)):
print(m)

for x, y in enumerate(tu,10):
print(x,y)

#给kk3对应的值加上44
tu = ('woshi', '2k', 'k3',[11, 22, 33], {'kk1': 'vv1', 'kk2:': 'vv2', 'kk3': (11, 22)})
# tu[4][2]['kk3'].append('')
# print(tu)
# 原始元组
tu = ('woshi', '2k', 'k3', [11, 22, 33], {'kk1': 'vv1', 'kk2:': 'vv2', 'kk3': (11, 22)})
# 访问字典中的'kk3'键,并获取其值(元组)
kk3_value = tu[4]['kk3']
# 将元组转换为列表,添加44
kk3_value_list = list(kk3_value)
kk3_value_list.append(44)
# 将列表转换回元组
kk3_value_tuple = tuple(kk3_value_list)
# 更新字典中的'kk3'键的值
tu = list(tu) # 因为元组不可变,我们需要先将其转换为列表
tu[4]['kk3'] = kk3_value_tuple
tu = tuple(tu) # 转换回元组
# 打印修改后的元组
print(tu)

# 有以下列表,nums=[2,7,4,11,5,1,8,7],请找到列表中任意两个元素相加能够等于9的元素集合,如:[(0,1),(4,5)]
nums=[2,7,4,11,5,1,8,7]
a=[]
for i in nums:
for j in nums:
if i+j==9:
a.append([i,j])
print(a)

for i in range(len(nums)):
for j in range(len(nums)):
if nums[i]+nums[j]==9:
a.append((i,j))
print(a)

# 列表属性的回顾
li=['abcde','fghij','klmno']
print(len(li))
li.append('pqrst')
print(li)
li.insert(0,'woshi')
print(li)
li.remove('abcde')
print(li)
li.pop(2)
print(li)
li.reverse()
print(li)
for i in range(len(li)):
print(i)
for i,q in enumerate(li,100):
print(i,q)

# a.通过for循环创建500条数据,数据类型不限,如:
# abc1 [email protected] pwd1
# abc2 [email protected] pwd3
# abc3 [email protected] pwd3
# b.提示用户请输入要查看的页码,当用户输入指定页码,则显示指定数据
# 注意:每页显示10条数据
# 用户输入页码是非十进制数字,则提示输入内容格式错误
# user_list =[]
# for i in range(1,501):
# temp={'name':'abc'+str(i),'email':'[email protected]'+str(i),'pwd':'pwd'+str(i)}

# 初始化一个空列表用于存储用户信息
user_list = []
# 使用循环创建500个用户
for i in range(1, 501):
temp = {'name': 'abc' + str(i), 'email': '[email protected]' + str(i), 'pwd': 'pwd' + str(i)}
# 将temp字典添加到user_list列表中
user_list.append(temp)
# 打印整个user_list列表
print(user_list)
while True:
s=input('请输入1,2,3-51页码:')
s= int(s)
start=(s-1)*10
end=s*10
result= user_list[start:end]
for item in result:
print(item,type(item))

# 导入必要的库
import random

# 生成500条数据的函数
def generate_data(count):
data = []
for i in range(1, count + 1):
username = f"abc{i}"
email = f"{username}@qq.com"
password = random.choice(["pwd1", "pwd2", "pwd3"]) # 随机选择密码
data.append(f"{username} {email} {password}\n")
return data

# 处理页码输入的函数
def display_page(data, page):
if not isinstance(page, int) or page < 1 or page > len(data) // 10:
return "输入内容格式错误,请输入有效的页码。"
start = (page - 1) * 10
end = start + 10
return ''.join(data[start:end])

# 检查页码输入是否为十进制数字的函数
def check_page_input(input_str):
try:
page = int(input_str)
return page
except ValueError:
return None

# 主程序
if __name__ == "__main__":
# 生成500条数据
data = generate_data(500)

# 提示用户输入页码
while True:
page_input = input("请输入要查看的页码(每页显示10条数据):")
page = check_page_input(page_input)
if page is None:
print("输入内容格式错误,请输入十进制数字。")
else:
page_content = display_page(data, page)
if page_content.startswith("输入内容格式错误"):
print(page_content)
else:
print(f"第{page}页内容:\n{page_content}")

标签:练习题,Python,tu,数据类型,li,range,str,print,page
From: https://www.cnblogs.com/liu-zhijun/p/18346143

相关文章

  • (Jmeter新玩法)Python 调 Jmeter执行参数化jmx脚本
    #Python调Jmeter执行参数化jmx脚本importosfromos.pathimportjoinimporttimeimportrefromstringimportTemplatejmeter_Home=r"F:\softtotal\xxx\bin\jmeter.bat"#jmx文件路径currpath=os.path.dirname(os.path.realpath(__file__))#要运行的jmx脚......
  • python爬虫预备知识三-多进程
    python实现多进程的方法:fork、multiprocessing模块创建多进程。os.fork方法os.fork方法只适合于unix/linux系统,不支持windows系统。fork方法调用一次会返回两次,原因在于操作系统将当前进程(父进程)复制出一份进程(子进程),这两个进程几乎完全相同,fork方法分别在父进程和子进程中......
  • PEP 8 – Python 代码风格指南中文版(七)
    编程建议(2) 定义异常时,应该从Exception类继承,而不是从BaseException类继承。直接从BaseException继承的异常通常是那些几乎不应该被捕获的异常。设计异常层次结构时,应该基于捕获异常的代码可能需要进行的区分,而不是基于异常被抛出的位置。目标是通过编程方式回答“出了......
  • Python-记录一次迭代求和
    importitertoolsdefget_result(hope,list_input):""":paramhope:#期望相加所得参数:paramlist_input:#所有数值:return:"""defgenerate_combination(items,length):forcombinationinitertools.co......
  • 如何使用 Python 进行数据可视化,比如绘制折线图?
    要使用Python进行数据可视化,可以使用matplotlib库来绘制折线图。以下是一个简单的示例代码:首先,确保已安装matplotlib库。可以使用以下命令安装:pipinstallmatplotlib在Python脚本中导入matplotlib库:importmatplotlib.pyplotasplt准备数据,以x和y坐标列表的形式存......
  • Python 中的生成器函数有什么作用及如何使用?
    生成器函数是一种特殊的函数,可以在迭代过程中动态生成值,而不是一次性返回所有值。它的作用有以下几点:节省内存:生成器函数一次只生成一个值,并在生成后立即释放内存,这样可以减小内存的占用,特别是在处理大数据集时非常有用。延迟计算:生成器函数可以按需生成值,只在需要的时......
  • Python、R银行信用卡客户流失机器学习预测热门文章合集
    原文链接:https://tecdat.cn/?p=37244原文出处:拓端数据部落公众号 分析师: CengjunWang目前,众多银行由于服务质量的降低、同业竞争的日益激烈等因素,面临着信用卡客户流失的棘手难题,这给银行经理施加了沉重的压力。而且,获取新的信用卡用户所需成本通常高于维持现有用户的成本。......
  • Python动态规划
    Python动态规划动态规划(DynamicProgramming,简称DP)是解决多阶段决策过程最优化问题的一种方法。动态规划算法的基本思想是:将待求解的问题分解成若干个相互联系的子问题,先求解子问题,然后从这些子问题的解得到原问题的解;对于重复出现的子问题,只在第一次遇到的时候对它进行求解,......
  • python-分享篇-英文短文自动分词写入文本文件
    文章目录准备代码效果准备代码importstringf=open('./data/split.txt')s=f.read()str1=s.title()print(str1)print("".join([sforsinstr1.splitlines(True)ifs.strip()]))list1=str1.split()#采用默认分隔符进行分割#字符串列表去重l1=list(s......
  • 【学习笔记】Matlab和python双语言的学习(最大最小化规划)
    文章目录前言一、最大最小化规划二、选址问题三、代码实现----Matlab1.Matlab的`fminimax`函数2.Matlab代码四、代码实现----python总结前言通过模型算法,熟练对Matlab和python的应用。学习视频链接:https://www.bilibili.com/video/BV1EK41187QF?p=28&vd_sour......