当前位置: 首页 > news >正文

Python练习

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

def er(x):a = bin(x)b = str(a).count("1")c = str(a).count("0") - 1print(f"{a},count 1:{b},count 0:{c}")x = int(input("enter a number:"))
er(x)

 

2. 实现一个用户管理系统(要求使用容器保存数据)

     [{name: xxx, pass: xxx, ……},{},{}]

users = []while True:print("\t\t欢迎登录用户管理系统")print("\t\t 1、用户注册")print("\t\t 2、用户登录")print("\t\t 3、退出系统")choice = input("请输入您的选择:")if choice == "1":while True:username = input("请输入用户名:")password = input("请输入密码:")password_again = input("请再次确认密码:")if username == None or len(username) == 0:print("对不起,用户为空")continueflag = Falsefor u in users:if u.get("username") == username:print("对不起,该用户已经存在,请重新注册")flag = Truebreakif flag:continueif password !=  password_again:print("两次密码不一致")continueuser = {"username": username, "password": password}users.append(user)print("用户注册成功,请登录")print("\n")breakelif choice == "2":print("\n")username = input("请输入用户名:")password = input("请输入密码:")for user in users:if user["username"] == username and user.get("password") == password:print(f"尊敬的用户{username},欢迎回来")else:print("对不起,登录失败,请重新登录")else:sys.exit()	

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

a = 0
for x in range(1,101):if x % 3 == 0:continueelse:a = x + a
print(f"百位以内不可被三整除的数和为:{a}")

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

def sum(x):if x == 1:return Falsefor i in range(2,x//2 + 1):if x % i == 0:return Falsereturn TrueN = int(input('请输入一个正整数N:'))
sum_N = 0
for x in range(1,N+1):if sum(x):sum_N += x
print(f'1到N(含)之间所有质数的总和为:{sum_N}')

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

def PI():a = 0b = 0for i in range(1,99999999,4):a += 4 * (1 / i)for i in range(3,99999999,4):b -= 4 * (1 / i)print(a + b)PI()

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

l = eval(input("请输入一个列表:"))ls=list(l)
ls.sort()
s=set(ls)print(s)

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

def sum(a,n):sum_a = 0for i in range(1,n+1):num = int(f'{a}'*i)sum_a += numreturn sum_aa = int(input('请输入一个在区间[1,9]的正整数:'))
n = int(input('请输入指定的项数:'))print(f'所求多项式的和为:{sum(a,n)}')

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

def selection_sort(ls=[]):for i in range(len(ls)):index_min = ifor j in range(i+1,len(ls)):if ls[index_min] > ls[j]:index_min = jls[index_min],ls[i] = ls[i],ls[index_min]return lsl1 = eval(input("请输入一个列表:"))
l2 = eval(input("请输入一个列表:"))
l1.extend(l2)
print(f'合并后的有序列表为:{selection_sort(l1)}')

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

def even_before_odd(ls = []):for i in range(len(ls)):if ls[i] % 2 != 0:for j in range(i+1,len(ls)):if ls[j] % 2 == 0:ls[i],ls[j] = ls[j],ls[i]breakreturn lsls = eval(input("请输入一个列表:"))print(f'将偶数置于奇数前,列表变为:{even_before_odd(ls)}')

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

nums = [1,3,4,2,2]
repeatDict = {}
for num in nums:if num not in repeatDict:repeatDict[num] = 1else:print(num)
nums.sort()
pre = nums[0]
n = len(nums)
for index in range(1, n):if pre == nums[index]:print (pre)pre = nums[index]
nums.sort()
for i in range(len(nums)-1):if nums[i] == nums[i+1]:print(nums[i])

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

def math_5_6(x):count=[]for i in range(1,x+1):if (i % 5 == 0 or i % 6 ==0 ):if i % 5 == 0 and i % 6 ==0:continue  else:count.append(i)print(count)math_5_6(10000)

 

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

def list_sum(ls):sum = 0i = 0while i < len(ls):sum += ls[i]i += 2return sumls = [1,2,3,4,5,6,7,8,9]
print(f"列表是:{ls},偶数下标元素和是:{list_sum(ls)}")

 

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

0 0 0 0 0 0 0 00 0 0 0 0 0 0 00 0 0 0 0 0 0 00 0 0 0 0 0 0 00 0 0 0 0 0 0 0
def uniquePaths(m, n):dp = [[0] * n for _ in range(m)]for i in range(m):dp[i][0] = 1for j in range(n):dp[0][j] = 1for i in range(1, m):for j in range(1, n):dp[i][j] = dp[i-1][j] + dp[i][j-1]return dp[m-1][n-1]m = 8
n = 5
result = uniquePaths(m, n)
print("共有", result, "种走法")

5. 【选做】汉诺塔

def rabbit(month):if month <= 2:return 2else:return rabbit(month - 1) + rabbit(month - 2)if __name__ == "__main__":month = int(input("请输入month:"))for i in range(0, month):print(rabbit(i))

 

相关文章:

  • k8s安装traefik作为ingress
  • 科技下乡:数字乡村改变乡村生活方式
  • 物联网实战--入门篇之(三)嵌入式STM32
  • 如何应对复杂软件工程的开发流程?
  • JVM(二)——垃圾回收
  • 新网站收录时间是多久,新建网站多久被百度收录
  • 沃尔玛百货有限公司 企业网页设计制作 企业html网页成品 跨国公司网页设计开发 web前端开发,html+css网页设计素材,静态html学生网页成品源码
  • BIM自动化简介
  • 主流公链 - Monero
  • 2024年github开源top100中文
  • AI时代Python金融大数据分析实战:ChatGPT让金融大数据分析插上翅膀
  • 【数据分享】1929-2023年全球站点的逐月平均海平面压力(Shp\Excel\免费获取)
  • C# 打印输出以及文件输入输出
  • 在VMware Workstations 中安装windows7并安装vmware tools(解决升级到SP1和VMCI无法安装问题)
  • java复原IP 地址(力扣Leetcode93)
  • JavaScript 如何正确处理 Unicode 编码问题!
  • 「译」Node.js Streams 基础
  • Hibernate【inverse和cascade属性】知识要点
  • Java面向对象及其三大特征
  • JS 面试题总结
  • mysql innodb 索引使用指南
  • Redis提升并发能力 | 从0开始构建SpringCloud微服务(2)
  • Vue UI框架库开发介绍
  • 服务器之间,相同帐号,实现免密钥登录
  • 汉诺塔算法
  • 基于游标的分页接口实现
  • 蓝海存储开关机注意事项总结
  • 猫头鹰的深夜翻译:JDK9 NotNullOrElse方法
  • 巧用 TypeScript (一)
  • 使用Swoole加速Laravel(正式环境中)
  • 它承受着该等级不该有的简单, leetcode 564 寻找最近的回文数
  • 小程序 setData 学问多
  • media数据库操作,可以进行增删改查,实现回收站,隐私照片功能 SharedPreferences存储地址:
  • 400多位云计算专家和开发者,加入了同一个组织 ...
  • AI又要和人类“对打”,Deepmind宣布《星战Ⅱ》即将开始 ...
  • PostgreSQL之连接数修改
  • 阿里云IoT边缘计算助力企业零改造实现远程运维 ...
  • 带你开发类似Pokemon Go的AR游戏
  • 分布式关系型数据库服务 DRDS 支持显示的 Prepare 及逻辑库锁功能等多项能力 ...
  • 国内唯一,阿里云入选全球区块链云服务报告,领先AWS、Google ...
  • # 再次尝试 连接失败_无线WiFi无法连接到网络怎么办【解决方法】
  • #NOIP 2014# day.1 T3 飞扬的小鸟 bird
  • #QT(TCP网络编程-服务端)
  • %check_box% in rails :coditions={:has_many , :through}
  • (2021|NIPS,扩散,无条件分数估计,条件分数估计)无分类器引导扩散
  • (3)(3.2) MAVLink2数据包签名(安全)
  • (算法)N皇后问题
  • .NET Core 成都线下面基会拉开序幕
  • .NET Framework 服务实现监控可观测性最佳实践
  • .Net mvc总结
  • .Net Winform开发笔记(一)
  • .NET6 开发一个检查某些状态持续多长时间的类
  • .NetCore部署微服务(二)
  • .NET处理HTTP请求
  • .net开发时的诡异问题,button的onclick事件无效