python --- 练习题3

news2024/11/15 8:26:29

目录

1、猜数字游戏(使用random模块完成) :继上期题目,附加

2、用户登录注册案例

3、求50~150之间的质数是那些?

4、打印输出标准水仙花数,输出这些水仙花数

5、验证:任意一个大于9的整数减去它的各位数字之和所得的差,一定能被9整除.

6、一个五位数,若在它的后面写上一个7,得到一个六位数A, 若在它前面写上一个7,得到一个六位数B,B是A的五倍,求此 五位数.

7、有一堆硬币,每次只能拿一个或者两个,求最少多少次可以拿完硬币 [10, 8, 5, 3, 27, 99]

8、如果两个素数之差为2,这样的两个素数就叫作"孪生数",找出100以内的所有"孪生数".

9、给定一个列表,求最大值(不能使用系统api),求最小值,求平均值、求和

10、将list中的重复数据去重,至少使用两种方案

11、如何将0-10随机存入列表中


1、猜数字游戏(使用random模块完成) :继上期题目,附加

     猜错三次不可以再猜,即只有三次机会;统计一局猜了多少次,猜了什么数

import random as r #r是别名

compute = r.randint(0,100)
#print(compute)                     作弊:为了检验    

l = []                             #创建一个列表,用于记录猜的数,长度即次数

i = 0                              #记录猜的次数
while True:
    my = int (input("请输入一个数: "))
    l.append(my)                          #将玩家猜的数字记录到列表中
    if my > compute or my < compute:
        if my > compute :
            print("您财大了")
        elif my < compute:
            print("菜小了")
        i+=1                              #猜错次数加1
        if i >=3 :                        #不可以超过三次                      
            print("您输了,game over")
            break
    else:
        print("撒花")
         #break
        choice = input("是否继续(Y)")
        if choice == "Y":
            compute = r.randint(0,100)
            i = 0                        #猜对了,重启一局中猜的次数重置为0
        else:
            print("拜拜")
            break

for item in l :
    print(item,end="  ")                 #遍历列表
print(f'猜了{len(l)}次后结束游戏')        #列表长度即猜的次数

2、用户登录注册案例
people = {}                               #定义一个字典存放用户名和对应密码
         
while True:                               #初始界面
    print("\t\t\t英雄商城登录界面\n")
    print("~*"*38)
    print("\t\t\t1.用户登录\n")
    print("\t\t\t2.用户注册\n")
    print("\t\t\t3.退出系统\n")
    print("~*"*38)
    choice = input("请输入您的选择:")          
    if choice == "2":   #用户需要注册
      while True:
        username = input("请输入您的用户名称:")
        if username in people:
            username = input ("此用户名已被注册")
            break
        elif username not in people:   
            people[username]=input('请输入密码: ')
            print('注册成功!')
            break
    elif choice == "1" : 
         while True: 
            username = input("请输入用户名: ")
            if username not in people :
                print("该用户不存在!")
                if username == "q":                         #退出到初始页面
                    break
            elif username in people :
                password = input("请输入密码: ")
                i=0
                while True:
                    if password != people[username]:
                        password = input("密码错误,登录失败: ")
                        i+=1
                        if i>=3:                          #失败超过三次 回到初始页面
                            break
                    if password == people[username]:
                             
                        print("登录成功\n")                #登录成功进入游戏页面
                
                        while True:
                            print("\t\t\t英雄商城首页\n")
                            print("~*"*40)
                            print("\t\t\t1.进入英雄超市\n")
                            print("\t\t\t2.休闲小游戏\n")
                            print("\t\t\t3.退出登录\n")
                            choice = input("请选择: ")
                            if choice == "3" :           
                             break        
                        break
            break                       
            #回到初始页面
            
    elif choice == "3":
        print("退出登录")
        break
    else:
        continue

#遍历数据字典,查看用户名和密码(可以多注册几个)
for (key,value) in people.items():
    print(key,value)

   

(用户名不存在会返回首页;注册成功) 

(密码输入错误超过三次登录失败返回首页;正确则登录成功,进入下一个界面)

(从最内层页面退出,回到初始界面;可以再一次注册)

(退出页面,数据字典里面有用户名及其对于的密码) 

 

(不可重复注册)

3、求50~150之间的质数是那些?
#求50-150之间的质数
l = []

for num in range(50,150):
    flag = True
    for i in range (2,num):
      if num % i == 0:
        flag = False 
        break               #表示一种标识符,如果整出来,它就变错
        
    
    if flag:
        print(f"{num}是质数",end=" ")
        l.append(num)
    else:
        print(f"{num}不是",end=" ")
print()

for item in l :
   print (item,end="  ")
   

4、打印输出标准水仙花数,输出这些水仙花数
#水仙花数是指一个数的个位、十位、百位的数字立方和等于原数
l = []
for i in range(100,1000):
    x=i%10                #个位上的数
    y=(i%100)//10         #十位上的数  
    z=i//100              #百位上的数
    
    if i == x**3 + y **3 + z **3 :
        print(x,y,z)
        l.append(i)
    
for item in l :
    print(f"{item}是水仙花数")

5、验证:任意一个大于9的整数减去它的各位数字之和所得的差,一定能被9整除.
for i in range(10,1000) :
    flag = True
    x = i%10                  #个位的数
    y = i - x                 #这个数减去个位的数
    if y %9 != 0 :
        flag = False          #如何不能被9整除,标识就变false
        
    else:
        pass
if flag == False:              #标识变了,就不能被9整除
    print("验证失败")
else:
    print("验证成功")           #标识没变证明都可以被9整除

6、一个五位数,若在它的后面写上一个7,得到一个六位数A, 若在它前面写上一个7,得到一个六位数B,B是A的五倍,求此 五位数.
l = []

for i in range(10000,100000) :
    A = i*10 + 7
    B = i + 7*100000
    if B == A*5 :
        l.append(i)

for item in l :
    print(item)

7、有一堆硬币,每次只能拿一个或者两个,求最少多少次可以拿完硬币 [10, 8, 5, 3, 27, 99]
arr = [10,8,5,3,27,99]

count = 0
for i in arr :
    if i % 2 == 0 :
        count = i //2
    elif i % 2 == 1 :
        count = i // 2 + 1
    print (f"最少可以{count}次拿完")

8、如果两个素数之差为2,这样的两个素数就叫作"孪生数",找出100以内的所有"孪生数".
l = []
for num in range(1,100) :
    flag = True
    for i in range (2,num):
      if num % i == 0:
        flag = False   #表示一种标识符,如果整出来,它就变错
        break     
        
    if flag:
        l.append(num)

#放入字典里
d = {}
for num in l:
   if (num+2) in l :
      d[num]=num+2

for key,value in d.items():
   print(key,value)


"""
#直接输出
for num in l:
    if (num+2) in l:
        print (num,num+2)  
   
"""

 

9、给定一个列表,求最大值(不能使用系统api),求最小值,求平均值、求和
l = [100,97,67,7,3,5,1,40,39]
c = max(l)
d = min(l)
num = len(l)
sum_ = sum(l)
avg = sum_ / num
print(f'最大值为{c},最小值为{d},总和为{sum_},平均值为{avg}')

10、将list中的重复数据去重,至少使用两种方案
list_1 =[1,2,4,7,9,4,7,1,1,]
print("删除重复项前的列表为"+str(list_1))
list_2 =[]


#第一种方法  遍历列表

for i in list_1 :
    if i not in list_2 :
        list_2.append(i)
print("删除重复项后的列表为"+str(list_2))


#第二种方法  set法       顺序会改变

list_2 = list(set(list_1))
print("删除重复项后的列表为"+str(list_2))


#第三种方法      全局函数

import builtins
dir(builtins)

for i in enumerate(list_1) :
    list_2.append(i)

for i in list_2:
    print(i)

11、如何将0-10随机存入列表中
import random             #随机

l = []                    
while True:
    n = random.randint(0,10)      #n从0到10随机取
    if n not in l :               #不重复,就加入列表
        l.append(n)
        if len(l) == 11:          #当长度为11,证明0-10所以数字都有
            break
for j in l :
    print(j)                       #遍历

今天作业ok!拜拜~~

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1536346.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【数据库系统】数据库完整性和安全性

第六章 数据库完整性和安全性 基本内容 安全性&#xff1b;完整性&#xff1b;数据库恢复技术&#xff1b;SQL Server的数据恢复机制&#xff1b; 完整性 实体完整性、参照完整性、用户自定义完整性 安全性 身份验证权限控制事务日志&#xff0c;审计数据加密 数据库恢复 冗余…

中国贸易金融跨行交易区块链平台CTFU、区块链福费廷交易平台BCFT、中国人民银行贸易金融区块链平台CTFP、银行函证区块链服务平台BPBC

中国人民银行贸易金融区块链平台CTFP介绍 贸易金融的发展概况及存在的问题 1.1 贸易金融的概况 贸易金融是指商业银行在贸易双方债权债务关系的基础上&#xff0c;为国内或跨国的商品和服务贸易提供的贯穿贸易活动整个价值链、全程全面性的综合金融服务。伴随全球化的进程&a…

互联网思维:息共享、开放性、创新和快速反应、网络化、平台化、数据驱动和用户体验 人工智能思维:模拟人、解放劳动力、人工智能解决方案和服务

互联网思维&#xff1a;信息共享、开放性、创新和快速反应、网络化、平台化、数据驱动和用户体验 互联网思维是指一种以互联网为基础的思考方式&#xff0c;强调信息共享、开放性、创新和快速反应的特点。这种思维方式注重网络化、平台化、数据驱动和用户体验&#xff0c;以适…

simulink里枚举量的使用--在m文件中创建枚举量实践操作(推荐)

本文将介绍一种非常重要的概念&#xff0c;枚举量&#xff0c;以及它在simulink状态机中的使用&#xff0c;并且给出模型&#xff0c;方便大家学习。 枚举量&#xff1a;实际上是用一个名字表示了一个变量&#xff0c;能够比较方便的表示标志信息 A.简单举例&#xff1a; 1&a…

Hack The Box-Analytics

目录 信息收集 namp whatweb WEB 信息收集 feroxbuster RCE漏洞 提权 get user get root 信息收集 namp 端口信息探测┌──(root㉿ru)-[~/kali/hackthebox] └─# nmap -p- 10.10.11.233 --min-rate 10000 Starting Nmap 7.94SVN ( https://nmap.org ) at 2024-03-…

经典双指针问题

思路;先找到第一个包含m家店的区间&#xff08;l-r&#xff09;&#xff0c;然后开始进行双指针&#xff08;l&#xff0c;r&#xff09;滑动(如下滑动) while(r<n){while(vis[a[l]]>1)//当前l-r之间a[l]店铺有多个&#xff08;大于一个&#xff09;&#xff0c;那即可去…

macOS下Java应用的打包和安装程序制作

macOS应用程序结构 macOS通常以dmg或pkg作为软件发行包&#xff0c;安装到/Applications下后&#xff0c;结构比较统一。 info.plist里的CFBundleExecutable字段可以指定入口&#xff0c;如果不指定&#xff0c;则MacOS下必须存在同名可执行文件。即abc.app下必须存在abc.app/…

从原理到实践:深入探索Linux安全机制(一)

前言 本文将从用户和权限管理、文件系统权限、SELinux、防火墙、加密和安全传输、漏洞管理和更新等几个Linux安全机制中的重要方面&#xff0c;深入探索其工作原理和使用方法。在当今数字化时代&#xff0c;网络安全问题备受关注&#xff0c;Linux作为广泛应用的操作系统之一&…

【GPT概念04】仅解码器(only decode)模型的解码策略

一、说明 在我之前的博客中&#xff0c;我们研究了关于生成式预训练转换器的整个概述&#xff0c;以及一篇关于生成式预训练转换器&#xff08;GPT&#xff09;的博客——预训练、微调和不同的用例应用。现在让我们看看所有仅解码器模型的解码策略是什么。 二、解码策略 在之前…

财报解读:“高端化”告一段落,华住开始“全球化”?

2023年旅游业快速复苏&#xff0c;全球酒店业直接受益&#xff0c;总体运营指标大放异彩&#xff0c;多数酒店企业都实现了营收上的明显增长&#xff0c;身为国内龙头的华住也不例外。 3月20日晚&#xff0c;华住集团发布2023年四季度及全年财报。整体实现扭亏为盈&#xff0c;…

阿里云安装宝塔后面板打不开

前言 按理来说装个宝塔面板应该很轻松的&#xff0c;我却装了2天&#xff0c;真挺恼火的&#xff0c;网上搜的教程基本上解决不掉我的问题点&#xff0c;问了阿里云和宝塔客服&#xff0c;弄了将近2天&#xff0c;才找出问题出在哪里&#xff0c;在此记录一下问题的处理。 服…

深度探析:7天后不过期的微信群二维码生成的优势

在日常生活和工作中&#xff0c;微信不过期二维码深受用户的欢迎。因为传统的微信群二维码被下载下来后&#xff0c;只有7天有效期。但企业在日常运营中&#xff0c;如果直接使用下载下来的微信群二维码&#xff0c;会造成很多的不便和宣传资源浪费。这些问题&#xff0c;可以通…

华为ensp中ospf基础 原理及配置命令(详解)

CSDN 成就一亿技术人&#xff01; 作者主页&#xff1a;点击&#xff01; ENSP专栏&#xff1a;点击&#xff01; CSDN 成就一亿技术人&#xff01; ————前言———— OSPF 的全称是 Open Shortest Path First&#xff0c;意为“开放式最短路径优先”。是一种内部网关协…

MySQL之基本操作与用户授权

一 基本操作 1 SQL分类 数据库&#xff1a;database 表&#xff1a;table&#xff0c;行&#xff1a;row 列&#xff1a;column 索引&#xff1a;index 视图&#xff1a;view 存储过程&#xff1a;procedure 存储函数&#xff1a;function 触发器&#xff1a;trigger 事…

“Python神技:一键转换PPT页面为高清图片,源码大公开!”(附Python源码)

今天让claude3帮忙写了个python代码&#xff0c;实现了将ppt转换成图片功能。WPS中实现这个功能还需要开通会员&#xff0c; 其实也就一点代码就可以实现&#xff0c;而且powerpoint中还没有这个将页面转换成图片的功能&#xff0c;废话不多说&#xff0c;直接上源码。 import …

欧科云链:从技术与数据视角,看Solana如何成为Web3“流量担当”?

出品&#xff5c;欧科云链研究院 作者&#xff5c;Jason Jiang 坎昆升级完成后&#xff0c;除一众L2手续费锐减外&#xff0c;以太坊生态并未掀起涟漪&#xff0c;相反Solana凭借一波短暂的Meme热潮&#xff0c;再次成为焦点。尽管本周Solana生态的Meme热度褪去&#xff0c;但…

最新,955神仙公司名单(非外企)

955 神仙公司名单&#xff08;非外企&#xff09; 往常爆料最多的 955 神仙公司名单通常都是集中在一线城市的外企。 例如下面这张最为流行的名单图&#xff1a; 最近牛客网上有同学整理出了非外企的版本&#xff0c;其中不乏一些耳熟能详的互联网产品。 随手把名单分享给大家。…

SDKMAN多版本SDK并行管理工具

一、简介 SDKMAN是管理多个SDK并行版本的工具&#xff0c;它提供了方便的命令行界面&#xff08;CLI&#xff09;和API&#xff0c;用于列出&#xff0c;安装&#xff0c;切换和删除候选对象。此外&#xff0c;它还为我们设置了环境变量。 它还允许开发人员安装基于JVM的SDK&…

短剧分销cps推广很简单,短剧分销授权平台怎么搭建?

一、短剧分销是什么&#xff1f; 短剧分销&#xff0c;也被称为短剧CPS&#xff0c;是一种通过推广短剧并获得收益的方式。分销方会提供短剧片单&#xff0c;内容创作者可以根据这些片单剪辑成短视频内容进行分发。这样既能避免版权问题&#xff0c;又可以利用优质内容吸引用户…

JAVA入门第一步

学习总结&#xff1a; 打开CMD常见的CMD命令 一、打开CMD CMD的概念 CMD是Windows操作系统中的命令提示符(Command Prompt)程序&#xff0c;它是一种命令行工具&#xff0c;可以让用户通过键入命令来与计算机进行交互。CMD是Windows中一个基本的系统组件&#xff0c;它提供了一…