python第三次作业

1、求一个十进制的数值的二进制的0、1的个数

def count_0_1_in_binary(decimal_num):
    binary_str = bin(decimal_num)[2:]
    
    count_0 = binary_str.count('0')
    count_1 = binary_str.count('1')
    
    return count_0, count_1

decimal_number = int(input("十进制数:"))
zero_count, one_count = count_0_1_in_binary(decimal_number)
print(f"十进制数 {decimal_number} 的二进制表示中有 {zero_count} 个0 和 {one_count} 个1。")

2、实现一个用户管理系统(要求使用容器保存数据) [{name: xxx, pass: xxx, ……},{},{}]

def menu():
    #创建菜单
    print("*" * 50)
    print(" " * 20 + "欢迎使用用户管理系统!")
    print(" " * 22 + "1:添加用户信息")
    print(" " * 22 + "2:删除用户信息")
    print(" " * 22 + "3:修改用户信息")
    print(" " * 22 + "4:查询用户信息")
    print(" " * 22 + "5:退出系统")
    print("*" * 50)


def user_find(name):
    # 创建user_find函数用于查询用户信息
    for i in user_list:
        nick_name = i.get("姓名")
        if nick_name == name:
            return i
    return -1


def user_input():
    # 创建user_input函数用于添加用户信息
    # 创建一个字典存放信息
    user_dict = {}
    # 接收输入的信息
    name = input("请输入你要添加的用户姓名:")
    age = input("请输入你要添加的用户年龄:")
    sex = input("请输入你要添加的用户性别:")
    address = input("请输入你要添加的用户住址:")
    # 将接收到的信息传入字典
    user_dict["姓名"] = name
    user_dict["年龄"] = age
    user_dict["性别"] = sex
    user_dict["住址"] = address
    # 将字典中的用户信息传入列表
    user_list.append(user_dict)
    print("添加成功")
    # 输出列表
    print(user_list)


def user_delete():
    # 创建user_delete函数用于删除用户信息
    # 输入你要删除的用户姓名
    name = input("请输入你要删除的用户姓名:")
    # 调用查询函数
    i = user_find(name)
    if i != -1:
        # 在列表中删除该信息
        user_list.remove(i)
        print("当前用户列表为", user_list)
    else:
        print("用户未找到!")


def user_change():
    # 创建user_change函数用户修改用户信息
    # 输入你要删除的用户姓名
    name = input("请输入你要删除的用户姓名:")
    # 调用查询函数
    i = user_find(name)
    if i != -1:
        user_list_key = input("请输入你要修改的属性:")
        if user_list_key in ["姓名", "年龄", "性别", "住址"]:
            new_change = input("请输入新的值:")
            i[user_list_key] = new_change
            print("当前用户列表为", user_list)
        else:
            print("请输入正确的属性!")
    else:
        print("用户未找到!")


def user_print(i):
    # 创建user_print函数用户打印用户信息
    # 调用查询函数
    i = user_find(user_name)
    if i != -1:
        print("用户查询成功!")
        print("姓名:".format(i.get("姓名")))
        print("年龄:".format(i.get("年龄")))
        print("性别:".format(i.get("性别")))
        print("住址:".format(i.get("住址")))
    else:
        print("用户未找到!")


user_list = []
while True:
    menu()
    num = int(input("请输入你所需要做的操作:(1.增加信息  2.删除信息  3.修改信息  4.查询信息  5.退出系统)"))
    if num == 1:
        user_input()
    elif num == 2:
        user_delete()
    elif num == 3:
        user_change()
    elif num == 4:
        user_name = input("请输入你要查找的用户姓名:")
        user_print(user_name)
    else:
        print("感谢使用!祝你生活愉快!")
        break
else:
    print("请输入正确的序号:")

3、求1~100之间不能被3整除的数之和

n = 0
for i in range(1, 101):
    if i % 3 != 0:  
        n += i   

print("1到100之间不能被3整除的数之和为:", n)

4、给定一个正整数N,找出1到N(含)之间所有质数的总和

import math
def is_prime(n):
    if n <= 1:
        return False
    for i in range(2, int(math.sqrt(n)) + 1):
        if n % i == 0:
            return False
    return True

def sum_of_primes_up_to_N(N):
    return sum(num for num in range(1, N + 1) if is_prime(num))

N = int(input("请输入一个正整数 N:"))
sum_of_primes = sum_of_primes_up_to_N(N)
print("1到", N, "之间所有质数的总和为:", sum_of_primes)

5、计算PI(公式如下:PI=4(1-1/3+1/5-1/7+1/9-1.......)

def sums():
    x=0
    y=0
    for i in range(1,99999999,4):
        x+=4*(1/i)
    for i in range (3,99999999,4):
        y-=4*(1/i)
    print(x+y)
sums()

6、给定一个10个元素的列表,请完成排序(注意,不要使用系统api)

def bubble_sort(arr):
    n = len(arr)
    for i in range(n - 1):
        for j in range(0, n - i - 1):
            if arr[j] > arr[j + 1]:
                arr[j], arr[j + 1] = arr[j + 1], arr[j]

my_list = [10, 45, 2, 96, 36, 7, 100, 25, 54, 1 ]
print("排序前的列表:", my_list)
bubble_sort(my_list)
print("排序后的列表:", my_list)

7、求 a+aa+aaa+.......+aaaaaaaaa=?其中a为1至9之中的一个数,项数也要可以指定。

def sums():
    a=int(input("请输入数字:"))
    b=int(input("请输入项数:"))
    c=0
    for i in range(1,b+1):
        sums=a**i
        c+=sums
    print("您输入的项为%s"%(b)+",数字为:%s"%(a)+",和为:%s"%(c))
sums()

8、合并两个有序数组,合并后还是有序列表

def merge_sorted_arrays(arr1, arr2):
    merged_arr = []
    i = 0
    j = 0
    
    while i < len(arr1) and j < len(arr2):
        if arr1[i] < arr2[j]:
            merged_arr.append(arr1[i])
            i += 1
        else:
            merged_arr.append(arr2[j])
            j += 1
    
    merged_arr.extend(arr1[i:])
    merged_arr.extend(arr2[j:])
    
    return merged_arr
 
arr1 = list(map(int , input("请依次输入有序列表1(使用空格隔开):").split(" ")))
arr2 = list(map(int , input("请依次输入有序列表2(使用空格隔开):").split(" ")))
 
print(f"未合并的列表:{arr1},{arr2}")
merged = merge_sorted_arrays(arr1, arr2)
print(f"合并后的列表{merged}")

9、给定一个非负整数数组A,将该数组中的所有偶数都放在奇数元素之前

def ls():
    lsA=[1, 22, 45, 84, 78, 21]
    lsB=[]
    lsC=[]
    for i in lsA:
        if i%2==0:
            lsB.append(i)
        else:
            lsC.append(i)
    lsB.extend(lsC)
    print("该数组中的所有偶数都放在奇数元素之前的元素为:%s"%(lsB))
ls()

10、给定一个包含n+1个整数的数组nums,其数字在1到n之间(包含1和n), 可知至少存在一个重复的整数,假设只有一个重复的整数,请找出这个重复的数

11、找出10000以内能被5或6整除,但不能被两者同时整除的数(函数)

def func():
    for i in range(10001):
        if (i % 5 == 0 or i % 6 == 0) and i % 30 != 0:
            print(i,end = " ")

func()    

12、写一个方法,计算列表所有偶数下标元素的和(注意返回值)

13、【选做】某个人进入如下一个棋盘中,要求从左上角开始走, 最后从右下角出来(要求只能前进,不能后退), 问题:共有多少种走法?

14、【选做】汉诺塔:

def hanoi(n, a, b, c):
    if n > 0:
        hanoi(n-1, a, c, b)  # 将n-1个盘子从a移动到b
        print(f"把盘子从 {a} 移动 {c}")  # 移动第n个盘子从a到c
        #print(f"Move disk from {a} to {c}")
        hanoi(n-1, b, a, c)  # 再将n-1个盘子从b移动到c

n = int(input("盘子的数量: "))
#n = int(input("Enter the number of disks: "))
hanoi(n, 'A', 'B', 'C')

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

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

相关文章

linux 外部GPIO Watchdog驱动适配

前言 文章描述&#xff0c; 利用外部gpio看门狗芯片驱动芯片的复位功能。 芯片&#xff1a;RK3568 平台&#xff1a; Linux ubuntu.lan 4.19.232 #27 SMP Sat Sep 23 13:43:49 CST 2023 aarch64 aarch64 aarch64 GNU/Linux 硬件接线图示 看门狗芯片采用GPIO喂狗&#xff0c;W…

PTA L2-037 包装机

一种自动包装机的结构如图 1 所示。首先机器中有 N 条轨道&#xff0c;放置了一些物品。轨道下面有一个筐。当某条轨道的按钮被按下时&#xff0c;活塞向左推动&#xff0c;将轨道尽头的一件物品推落筐中。当 0 号按钮被按下时&#xff0c;机械手将抓取筐顶部的一件物品&#x…

unity 横版过关单向通行实现(PlatformEffector2D)

目录 前言一、什么是 PlatformEffector2D&#xff1f;二、使用步骤1.创建模型2.创建jump脚本3.PlatformEffector2D组件 三、效果总结 前言 在 2D 游戏中&#xff0c;处理角色与平台之间的交互是一个常见但复杂的任务。为了简化这一过程&#xff0c;Unity 提供了 PlatformEffec…

五分钟,零基础也能入门 Python 图像文字识别

一. 前言 最近在研究 Python 的一些功能 &#xff0c; 也尝试了一些有趣实现&#xff0c; 这一篇就从实践的角度来研究一下 Python 如何实现图片识别。 众所周知 &#xff0c; Python 的库真的老多了&#xff0c;其中在图像识别上比较突出的就是 OpenCV. 那么基于这个库我们…

有效三角形的个数【双指针】

1.优化版暴力求解 如果能构成三⻆形&#xff0c;需要满⾜任意两边之和要⼤于第三边。实际上只需让较⼩的两条边之和⼤于第三边即可。将原数组排序&#xff0c;从⼩到⼤枚举三元组&#xff0c;这样三层 for 循环枚举出的三元组只需判断较⼩的两条边之和是否⼤于第三边。 class…

新一代酒店智能客控方案亮相上海酒店展:力合微PLC技术推动酒店智能化升级

3月26日&#xff0c;2024上海国际酒店及商业空间博览会&#xff08;以下简称&#xff1a;上海酒店展&#xff09;于上海新国际博览中心开幕。作为行业领先的物联网通信芯片企业&#xff0c;22年专注于PLC&#xff08;电线通信&#xff09;技术及芯片&#xff0c;&#xff08;股…

代理与 XLogin 集成

代理与 XLogin 集成 通过将 Smartdaili 住宅代理与强大的 XLogin 反检测浏览器相匹配来解锁网络数据。 什么是 XLogin&#xff1f; XLogin 是一款防关联浏览器&#xff0c;具有多重指纹保护技术&#xff0c;可通过 Selenium 网络驱动程序实现任务自动化&#xff0c;并为每个…

变量,前世你也许是个过客!

很多书中喜欢将变量比喻成一个容器&#xff0c;比如盒子、碗之类的。但老金认为这个比喻有失妥当。按字面意思理解&#xff0c;变量只是一个可以改变的量&#xff0c;就像函数中的自变量x、因变量y一样。变量本身并不具有存储功能&#xff0c;有存储功能的是内存&#xff0c;所…

rmvb怎么转换为mp4?最简单方法!

各种文件格式层出不穷&#xff0c;而RMVB&#xff08;RealMedia Variable Bitrate&#xff09;格式作为一种独特的视频文件格式&#xff0c;其起源可以追溯到上世纪90年代。当时&#xff0c;随着数字视频的崛起&#xff0c;RealNetworks公司迎来了一项重要任务&#xff1a;提供…

【LVGL-平铺视图部件(lv_tileview)】

LVGL-平铺视图部件&#xff08;lv_tileview&#xff09; ■ LVGL-平铺视图部件&#xff08;lv_tileview&#xff09;■ 示例一&#xff1a;添加到行列中的位置&#xff08;1,0&#xff09;表示第1列第0行■ 示例二&#xff1a;滑动方向LV_DIR_RIGHT &#xff0c;LV_DIR_LEFT■ …

Web Components初探

组件化&#xff0c;标签语义化&#xff0c;是前端发展的趋势。现在流行的组件化框架有React、Vue等&#xff0c;标签语义化在H5中添加的article、dialog等。 Web Components 就是类似的一套技术&#xff0c;允许您创建可重用的定制元素&#xff0c;并且在您的web应用中使用它们…

cesium 创建实体

1、 entity 1.1 entity类型整理 Entity分类 1.2 entity添加 椭圆 const ellipse new Cesium.Entity({position: Cesium.Cartesian3.fromDegrees(114.3, 39.9, 100),ellipse: {semiMinorAxis: 30000, //椭圆的短半轴semiMajorAxis: 40000, //椭圆的长半轴extrudedHeight: 0…

如何使用Fiddler对手机进行弱网测试?(干货教程)

1.首先&#xff0c;fiddler连接手机 1)Tools->Options->Connections->设置端口8888&#xff0c;勾选Allow remote computers to connect 2)配置手机 注&#xff1a;手机和电脑需要在同一局域网下 手机进入网络详情&#xff0c;将代理改为手动 设置主机名、端口 主机…

Python中的变量与常量

变量&#xff1a;在程序运行过程中&#xff0c;值会发生变化的量&#xff0c; 常量&#xff1a;在程序运行过程中&#xff0c;值不会发生变化的量。 无论是变量还是常量&#xff0c;在创建时都会在内存中开辟一块空间&#xff0c;用于保存它的值。 Python 中的变量不需要声明…

基于yolo-world与mobile_sam实现类似lang-segment-anything

lang-segment-anything基于segment-anything 和 GroundingDINO 实现基于语言分割出任意对象&#xff0c;但是segment-anything 模型与GroundingDINO 都是运算量比较大的模型。而mobile_sam号称是sam的同等性能替代品&#xff0c;而yolo-world同样是号称比GroundingDINO 更快更准…

那如何解决信创设配问题呢?怎么成为信创产品?

信创也好、国产化也好都是国家部署的重点工作&#xff0c;所有涉及到的相关行业和部门都必须坚持执行和并且要执行好的重点任务&#xff0c;这一点无容置疑。在信息化层面&#xff0c;随着我国基础水平&#xff08;芯片、OS、DB、中间件&#xff09;的提升&#xff0c;信创工作…

vscode c++环境配置

1.基础软件安装 安装Visual Studio Code. 安装C拓展。点击在vscode界面最左侧的Extensions图标&#xff08;打开快捷键&#xff1a;ctrlshiftX&#xff09;&#xff0c;搜索“C/C”&#xff0c;点击进行安装。 确保已安装gcc. 一般ubuntu系统会预装gcc.在终端窗口中输入如下…

KingSCADA|如何实现文本显示设备的实时通讯状态?

哈喽,你好啊,我是雷工! 在SCADA项目中,有些要求在界面上实时显示SCADA系统与设备的实时通讯状态,来及时了解PLC或其他设备与SCADA系统的通讯状态是否正常,以及简单的通讯异常分析,在KingSCADA中该如何实现通讯状态的文本显示呢? 接下来用简单的样例介绍KingSCADA如何实…

整数的反转

给定一个整数&#xff0c;请将该数各个位上数字反转得到一个新数。新数也应满足整数的常见形式&#xff0c;即除非给定的原数为零&#xff0c;否则反转后得到的新数的最高位数字不应为零。 public class _01数字反转 {public static void main(String[] args) {Scanner input n…

IDEA的Scala环境搭建

目录 前言 Scala的概述 Scala环境的搭建 一、配置Windows的JAVA环境 二、配置Windows的Scala环境 编写一个Scala程序 前言 学习Scala最好先掌握Java基础及高级部分知识&#xff0c;文章正文中会提到Scala与Java的联系&#xff0c;简单来讲Scala好比是Java的加强版&#x…
最新文章