python --- 练习题3

目录

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!拜拜~~

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

[环境配置].ssh文件夹权限修改方法

问题描述&#xff1a; 通过VSCode中的Remote Explorer或者通过CMD等命令行窗口连接远程机器时&#xff0c;会因为提示 "Bad owner or permissions on C:\\Users\\xxx/.ssh/config"而导致失败&#xff0c;最终呈现在VSCode中的效果是&#xff0c;弹窗提示"Could…

群晖Cloud Sync数据同步到百度云、另一台群晖、nextcloud教程

群晖Cloud Sync数据同步到百度云、另一台群晖、nextcloud教程 为了更好的浏览体验&#xff0c;欢迎光顾勤奋的凯尔森同学个人博客http://www.huerpu.cc:7000 一、群晖套件中下载Cloud Sync 二、同步到百度云盘 打开Cloud Sync&#xff0c;点击左上角的号&#xff0c;云供应商…

归并算法详细解析

归并排序 1945年&#xff0c;约翰冯诺依曼&#xff08;John von Neumann&#xff09;发明了归并排序&#xff0c;这是典型的分治算法的应用。归并排序&#xff08;Merge sort&#xff09;是建立在归并操作上的一种有效的排序算法&#xff0c;该算法是采用分治法&#xff08;Di…

[Semi-笔记] 2023_TIP

目录 概要一&#xff1a;Conservative-Progressive Collaborative Learning&#xff08;保守渐进式协作学习&#xff09;挑战&#xff1a;解决&#xff1a; 二&#xff1a;Pseudo Label Determination for Disagreement&#xff08;伪标签分歧判定&#xff09;挑战&#xff1a;…

华工考研复试模板

华工考研复试PPT模板 前言PPT概览PPT章节展示 最后的最后 前言 前段时间&#xff0c;有考研的学弟学妹咨询选导师的相关事项。可能也有的学弟学妹在准备复试相关的PPT&#xff0c; 这里小编我打算这几天DIY一个模板&#xff0c;主要其实还是跟自己之前夏令营的答辩模板和奖学金…

ResNet《Deep Residual Learning for Image Recognition》

ResNet论文学习 引言Deep Residual Learning 深度残差学习Residual Learning 残差学习Identity Mapping by Shortcuts 通过捷径来恒等映射网络结构Plain NetworkResidual Network实现细节 实验总结代码复现Building blockBottleneckResnet 18Resnet 34Resnet 50 引言 深度网络…

23.合并两个有序链表

将两个升序链表合并为一个新的 升序 链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。 示例 1&#xff1a; 输入&#xff1a;l1 [1,2,4], l2 [1,3,4] 输出&#xff1a;[1,1,2,3,4,4]示例 2&#xff1a; 输入&#xff1a;l1 [], l2 [] 输出&#xff1a;[]示…

【计算机考研】杭电 vs 浙工大 怎么选?

想求稳上岸的话&#xff0c;其他几所学校也可以考虑&#xff0c;以留在本地工作的角度考虑&#xff0c;这几所学校都能满足你的需求。 如果之后想谋求一份好工作&#xff0c;肯定优先杭电是比较稳的&#xff0c;当然复习的时候也得加把劲。 这个也可以酌情考虑&#xff0c;报…

TikTok小店运营经验分享,美国本土小店怎么做?

作为资深跨境老玩家&#xff0c;虽不说是经验丰富&#xff0c;至少也是摸清了基本的玩法思路。TikTok作为近来的跨境新蓝海&#xff0c;他的玩法其实并不难&#xff0c;作为第一批试错玩家&#xff0c;今天也诚心给大家分享一些美国本土小店运营经验&#xff0c;感兴趣的话就看…

50、C++/类的继承和多态相关学习20240318

一、c编程实现&#xff1a; 封装一个动物的基类&#xff0c;类中有私有成员&#xff1a;姓名&#xff0c;颜色&#xff0c;指针成员年纪&#xff1b; 再封装一个狗这样类&#xff0c;共有继承于动物类&#xff0c;自己拓展的私有成员有&#xff1a;指针成员&#xff1a;腿的个…

IT部门领导的角色与责任:在挑战中塑造未来

前言 在当今快节奏的商业环境中&#xff0c;IT部门领导扮演着至关重要的角色。他们需要具备技术专长&#xff0c;同时也需要展现出卓越的领导力来有效地管理团队和应对各种挑战。 一、技术创新的引领者 1. 重要角色转变 随着信息技术的迅猛发展&#xff0c;IT部门领导已逐渐…

[QT] QTextBrowser取消默认右键菜单项 复制链接地址

setTextInteractionFlags(Qt::TextSelectableByMouse);原理 QTextBrowser默认下有三个标志位&#xff0c;QTextBrowser右键菜单相关源码如下 源码链接 if ((d->interactionFlags & Qt::LinksAccessibleByKeyboard)|| (d->interactionFlags & Qt::LinksAccessible…

【SpringSecurity】十七、OAuth2授权服务器 + 资源服务器Demo

文章目录 0、库表准备1、项目结构2、基于数据库的认证3、授权服务器配置4、授权服务器效果测试5、资源服务器配置6、其他授权模式测试6.1 密码模式6.2 简化模式6.3 客户端模式6.4 refresh_token模式 相关&#x1f4d5;&#xff1a;【Spring Security Oauth2 配置理论部分】 0、…

C++临时变量

本博客将讲述我学习过程中对临时变量的疑惑与理解 为什么写这篇文章&#xff1f; 我在学习C过程中&#xff0c;发现C在发生隐式转换时或者出现未命名的变量如字符串再或者在求值的时候&#xff0c;会出现C临时变量&#xff08;系统自动生成&#xff09;&#xff0c;而这个临时…

【Hadoop大数据技术】——ZooKeeper分布式协调服务(学习笔记)

&#x1f4d6; 前言&#xff1a;ZooKeeper是一个开源的分布式协调服务&#xff0c;它是Google Chubby的开源实现&#xff0c;其设计目标是将那些复杂且容易出错的分布式应用封装起来&#xff0c;构成一个高效可靠的原语集&#xff0c;并以一系列简单易用的接口提供给用户使用。…

C# 右键快捷菜单(上下文菜单)的两种实现方式

在C#中&#xff0c;ContextMenuStrip是一种用于创建右键菜单的控件。它提供了一种方便的方式来为特定的控件或窗体添加自定义的上下文菜单选项。有两种实现方式&#xff0c;如下&#xff1a; 一.通过ContextMenuStrip控件实现 1.从工具箱中拖一个ContextMenuStrip控件到窗体上…

尝试搭建谷粒商城 记录(四)

版权声明&#xff1a;本文为博主原创文章&#xff0c;遵循 CC 4.0 BY-SA 版权协议&#xff0c;转载请附上原文出处链接和本声明。 本文链接&#xff1a;https://blog.csdn.net/weixin_44190665/article/details/121043585 ———————————————— 版权声明&#xff1…

爬虫工作量由小到大的思维转变---<第四十九章 Scrapy 降维挖掘---中间件系列(1)>

前言&#xff1a; Scrapy是一个功能强大的网络爬虫框架&#xff0c;但在实际应用过程中&#xff0c;中间件问题可能会成为一个令人头痛的难题。为了彻底解决Scrapy中的各种疑难杂症&#xff0c;我决定进行第四次全面的学习和实践&#xff0c;并将中间件的问题一一拆解&#xff…

【DL经典回顾】激活函数大汇总(四十二)(CosReLU附代码和详细公式)

激活函数大汇总(四十二)(CosReLU附代码和详细公式) 更多激活函数见激活函数大汇总列表 一、引言 欢迎来到我们深入探索神经网络核心组成部分——激活函数的系列博客。在人工智能的世界里,激活函数扮演着不可或缺的角色,它们决定着神经元的输出,并且影响着网络的学习能…

幸运数字(第十四届蓝桥杯JavaB组省赛真题)

进制转换可以参考如下的十进制&#xff0c;基本一样的&#xff0c;只是把10变成了其他数字&#xff0c; sum就是各个数位之和 public static int myUtil(int n) {int sum 0;while(n > 0) {sum n % 10;n / 10;}return sum;} 注意&#xff1a; 如果写在同一个类里面&…