python学习练习题

2023-11-14

前言

光看知识点不练习终究不能将一门语言学好,在更新小知识点的同时持续更新利用知识点的题,巩固所学的知识点呀!

python简单题目学习

python简单题目学习

1.最小公倍数和最大公约数

**说明:**求两数的最小公倍数和最大公约数

参考题解:

def gcd(x, y):
    if x > y:
        (x, y) = (y, x)
    for factor in range(x, 1, -1):
        if x % factor == 0 and y % factor == 0:
            return factor
    return 1


def lcm(x, y):
    return x * y // gcd(x, y)

print(gcd(数A,数B))
print(lcm(数A,数B))

2.水仙花数(100~1000)

说明:水仙花数也被称为超完全数字不变数、自恋数、自幂数、阿姆斯特朗数,它是一个3位数,该数字每个位上数字的立方之和正好等于它本身,例如:1^3 + 5^3+ 3^3=153。

参考题解:

for num in range(100, 1000):
    low = num % 10
    mid = num // 10 % 10
    high = num // 100
    if num == low ** 3 + mid ** 3 + high ** 3:
        print(num)

我的题解:

for num in range(100,1000):
    s=num
    sum=0
    while s!=0:
        sum+=(s%10)**3
        s//=10
    if sum==num:
        print(num)

(ps:自主用python写的第一个题,习惯性用c++的语法习惯了(>~<)

if后面不要用括号啊!!!语句结尾没有分号啊!!!if,while没有大括号,用缩进表示在不在循环范围内!!!还有自定义使用的变量一定要初始化,要不然报错也看不懂!!!)

TypeError: unsupported operand type(s) for +=: 'builtin_function_or_method' and 'int'

这个报错就是自变量没有初始化!

这题里面就有包含正数反转问题哦~

for num in range(1,21):
    s=num
    while s!=0:
        print(s%10,end="")#print输出默认换行,使它输出后不换行
        s//=10
    print()

3.百钱百鸡问题

说明:百钱百鸡是我国古代数学家张丘建在《算经》一书中提出的数学问题:鸡翁一值钱五,鸡母一值钱三,鸡雏三值钱一。百钱买百鸡,问鸡翁、鸡母、鸡雏各几何?翻译成现代文是:公鸡5元一只,母鸡3元一只,小鸡1元三只,用100块钱买一百只鸡,问公鸡、母鸡、小鸡各有多少只?

for x in range(0,20):
    for y in range(0,33):
        z=100-x-y
        if 5*x+3*y+z/3==100:
            print("公鸡:%d只,母鸡:%d只,小鸡:%d只"%(x,y,z))

注意:上面使用的方法叫做穷举法,也称为暴力搜索法,如果数据过大不建议使用,时间复杂度会很大

4.猜数字游戏

说明:猜出随机产生的数字(猜大和猜小都有提示)

import random#产生随机数的模块(类似于C++中的头文件)
ran=random.randint(1,50)
while True:
    quess=int(input("请输入你猜的数字:"))
    if quess==ran:
        print("恭喜猜对啦!")
        break
    elif quess>ran:
        print("猜大啦!")
    else:
        print("猜小啦!")
#ps:没有很多要说的,条件语句就好

附加上C++代码(好难改正习惯(>~<))

#include<iostream>
#include<cstdlib>
using namespace std;
#include<ctime>//这里利用时间产生一个随机数
int main()
{
 int a,b;
 srand((unsigned int)time(NULL));
 a=rand()%100+1;
 cout<<"请猜测一个数字:\n"<<endl; 
 while(1){
 	cin>>b;
 	if(b==a){
 		cout<<"你猜对了,你真棒!"<<endl; 
 		break;
	 }
	 else if(b>a)
	 cout<<"你猜的数字大了"<<endl;
	 else 
	 cout<<"你猜的数字小了"<<endl;
 }
 return 0;
}

5.三局两胜猜拳游戏

说明:人机对战猜拳,三局两胜制度。1代表剪刀,2代表石头,3代表布。分出胜负为止

分析:双方出拳只有9种结果,1,2,3分别代表剪刀,石头,布,则只要有一方的值减去另一方的值结果为1就会分出胜负,反之就是平局。由此就很好进行条件判断记录每一局的胜负了。

from random import randint

computer_win=0
people_win=0
draw=0
while computer_win<2 and people_win<2:
    computer=randint(1,3)
    people=int(input('玩家请出拳:'))
    if computer-people==1:
        computer_win+=1
        print("这一局你输了!")
    elif people-computer==1:
        people_win+=1
        print("这一局你赢了!")
    else:
        draw+=1
        print("这一局是平局!")
    print("computer:%d    you:%d    draw:%d"%(computer_win,people_win,draw))
if computer_win-people_win==2:
    print("很遗憾,你输了!")
else :
    print("恭喜你获胜!")

注意

python中没有自增自减运算符,所以在每一句结束时不能直接进行自增记录结果

6.CPAPS赌博游戏

说明:CRAPS又称花旗骰,是美国拉斯维加斯非常受欢迎的一种的桌上赌博游戏。该游戏使用两粒骰子,玩家通过摇两粒骰子获得点数进行游戏。简单的规则是:玩家第一次摇骰子如果摇出了7点或11点,玩家胜;玩家第一次如果摇出2点、3点或12点,庄家胜;其他点数玩家继续摇骰子,如果玩家摇出了7点,庄家胜;如果玩家摇出了第一次摇的点数,玩家胜;其他点数,玩家继续要骰子,直到分出胜负。

from random import randint#用模块中的随机数函数

money =1000
while money>0:
    print("你的总资产为:",money)
    needs_go_on=False
    while True:
        debt=int(input('请下注:'))
        if debt>0 and debt<=money:
            break
    first=randint(1,6)+randint(1,6)#1-6的随机数
    print('玩家摇出了%d点'%first)
    if first==7 or first==11:
        print('玩家胜!')
        money+=debt
    elif first==2 or first==3 or first==12:
        print('庄家胜!')
        money-=debt
    else:
        needs_go_on=True

while needs_go_on:
    current=randint(1,6)+randint(1,6)
    print('玩家摇出了%d点'%current)
    if current==7:
        print('庄家胜!')
        money-=debt
        needs_go_on=False
    elif current==first:
        print('玩家胜!')
        money+=debt
        needs_go_on=False
print('你破产了,游戏结束!')

总结

学过了C/C++之后习惯性将C/C++代码习惯带入python的语法之中,要改正过来,习惯各种语言灵活切换!

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

python学习练习题 的相关文章

  • 尽管极其懒惰,但如何在 Python 中模拟 IMAP 服务器?

    我很好奇是否有一种简单的方法来模拟 IMAP 服务器 例如imaplib模块 在Python中 without做很多工作 是否有预先存在的解决方案 理想情况下 我可以连接到现有的 IMAP 服务器 进行转储 并让模拟服务器在真实的邮箱 电子
  • Pycharm Python 控制台不打印输出

    我有一个从 Pycharm python 控制台调用的函数 但没有显示输出 In 2 def problem1 6 for i in range 1 101 2 print i end In 3 problem1 6 In 4 另一方面 像
  • 如何在android上的python kivy中关闭应用程序后使服务继续工作

    我希望我的服务在关闭应用程序后继续工作 但我做不到 我听说我应该使用startForeground 但如何在Python中做到这一点呢 应用程序代码 from kivy app import App from kivy uix floatl
  • DreamPie 不适用于 Python 3.2

    我最喜欢的 Python shell 是DreamPie http dreampie sourceforge net 我想将它与 Python 3 2 一起使用 我使用了 添加解释器 DreamPie 应用程序并添加了 Python 3 2
  • 更改自动插入 tkinter 小部件的文本颜色

    我有一个文本框小部件 其中插入了三条消息 一条是开始消息 一条是结束消息 一条是在 单位 被摧毁时发出警报的消息 我希望开始和结束消息是黑色的 但被毁坏的消息 参见我在代码中评论的位置 插入小部件时颜色为红色 我不太确定如何去做这件事 我看
  • 如何使用包含代码的“asyncio.sleep()”进行单元测试?

    我在编写 asyncio sleep 包含的单元测试时遇到问题 我要等待实际的睡眠时间吗 I used freezegun到嘲笑时间 当我尝试使用普通可调用对象运行测试时 这个库非常有用 但我找不到运行包含 asyncio sleep 的测
  • 如何等到 Excel 计算公式后再继续 win32com

    我有一个 win32com Python 脚本 它将多个 Excel 文件合并到电子表格中并将其另存为 PDF 现在的工作原理是输出几乎都是 NAME 因为文件是在计算 Excel 文件内容之前输出的 这可能需要一分钟 如何强制工作簿计算值
  • 为 pandas 数据透视表中的每个值列定义 aggfunc

    试图生成具有多个 值 列的数据透视表 我知道我可以使用 aggfunc 按照我想要的方式聚合值 但是如果我不想对两列求和或求平均值 而是想要一列的总和 同时求另一列的平均值 该怎么办 那么使用 pandas 可以做到这一点吗 df pd D
  • Python tcl 未正确安装

    我刚刚为 python 安装了graphics py 但是当我尝试运行以下代码时 from graphics import def main win GraphWin My Circle 100 100 c Circle Point 50
  • __del__ 真的是析构函数吗?

    我主要用 C 做事情 其中 析构函数方法实际上是为了销毁所获取的资源 最近我开始使用python 这真的很有趣而且很棒 我开始了解到它有像java一样的GC 因此 没有过分强调对象所有权 构造和销毁 据我所知 init 方法对我来说在 py
  • keras加载模型错误尝试将包含17层的权重文件加载到0层的模型中

    我目前正在使用 keras 开发 vgg16 模型 我用我的一些图层微调 vgg 模型 拟合我的模型 训练 后 我保存我的模型model save name h5 可以毫无问题地保存 但是 当我尝试使用以下命令重新加载模型时load mod
  • NameError:名称“urllib”未定义”

    CODE import networkx as net from urllib request import urlopen def read lj friends g name fetch the friend list from Liv
  • Abaqus 将曲面转化为集合

    我一直试图在模型中找到两个表面的中心 参见照片 但未能成功 它们是元素表面 面 查询中没有选项可以查找元素表面的中心 只能查找元素集的中心 找到节点集的中心也很好 但是我的节点集没有出现在工具 gt 查询 gt 质量属性选项中 而且我找不到
  • Pandas Dataframe 中 bool 值的条件前向填充

    问题 如何转发 fill boolTruepandas 数据框中的值 如果是当天的第一个条目 True 到一天结束时 请参阅以下示例和所需的输出 Data import pandas as pd import numpy as np df
  • 循环中断打破tqdm

    下面的简单代码使用tqdm https github com tqdm tqdm在循环迭代时显示进度条 import tqdm for f in tqdm tqdm range 100000000 if f gt 100000000 4 b
  • VSCode:调试配置中的 Python 路径无效

    对 Python 和 VSCode 以及 stackoverflow 非常陌生 直到最近 我已经使用了大约 3 个月 一切都很好 当尝试在调试器中运行任何基本的 Python 程序时 弹出窗口The Python path in your
  • 循环标记时出现“ValueError:无法识别的标记样式 -d”

    我正在尝试编码pyplot允许不同标记样式的绘图 这些图是循环生成的 标记是从列表中选取的 为了演示目的 我还提供了一个颜色列表 版本是Python 2 7 9 IPython 3 0 0 matplotlib 1 4 3 这是一个简单的代
  • 使用基于正则表达式的部分匹配来选择 Pandas 数据帧的子数据帧

    我有一个 Pandas 数据框 它有两列 一列 进程参数 列 包含字符串 另一列 值 列 包含相应的浮点值 我需要过滤出部分匹配列 过程参数 中的一组键的子数据帧 并提取与这些键匹配的数据帧的两列 df pd DataFrame Proce
  • 协方差矩阵的对角元素不是 1 pandas/numpy

    我有以下数据框 A B 0 1 5 1 2 6 2 3 7 3 4 8 我想计算协方差 a df iloc 0 values b df iloc 1 values 使用 numpy 作为 cov numpy cov a b I get ar
  • Python - 字典和列表相交

    给定以下数据结构 找出这两种数据结构共有的交集键的最有效方法是什么 dict1 2A 3A 4B list1 2A 4B Expected output 2A 4B 如果这也能产生更快的输出 我可以将列表 不是 dict1 组织到任何其他数

随机推荐

  • 如何用Python写一个爬虫

    在当今的互联网时代 网络爬虫已经成为了一种非常重要的技术手段 通过爬虫 我们可以快速地获取大量的数据并进行分析 这对于很多行业都非常有帮助 在本篇文章中 我们将详细介绍如何用Python写一个爬虫 1 爬虫的基本原理 在开始编写爬虫之前 我
  • C++类属(泛型)——模板详解

    第八章 类属 泛型 模板 1 概述 在程序设计中经常会用到这样的一些程序实体 这些程序实体的实现和所完成的基本功能相同 不同的地方仅在于它们所涉及的数据类型不同 对于这些函数或类 如果能分别只用一个函数和一个类来描述它们 将会大大简化程序设
  • 设置openEuler(欧拉系统)安装源

    在安装openEuler时 完整的 ISO映像 使用的是ISO的源一般不用设置安装源 安装netinst版需要连网下载文件 所以需要设置安装源 下面将按照提示一步步配置 先设置网络连网 然后点完成 选择硬盘 默认自动分区 添加安装源 官方列
  • 使用MicroPython制作红绿灯模拟器

    我们将使用行人步行按钮实现交通信号灯 该项目与LED配合使用 这使我们能够在代码执行时看到其状态 对于交通信号灯 也称为刹车灯 我们将使用红色 黄色和绿色的LED来匹配交通信号灯上的相同颜色的灯 我们还将使用红色和黄色的LED来表示 请勿行
  • vue+openlayers实现地图打点

    前言 openlayers的使用 一 使用步骤 1 引入库 代码如下 示例 npm install ol import ol ol css 样式 import Map from ol Map 地图对象 import Feature from
  • sed:当替换内容存在变量

    sed命令使用变量三种方式 1 使用单引号 变量处使用单引号 双引号把变量包括起来 sed i s eco ori g block vf 2 使用双引号 变量直接引用即可 sed i s eco ori g block vf 3 使用单引号
  • Nacos使用教程

    Spring Cloud是一个基于Spring Boot的微服务框架 它提供了一系列的组件和工具 可以帮助开发人员快速构建和部署分布式应用程序 其中 Nacos是一个新兴的服务发现和配置管理组件 可以帮助开发人员轻松地管理微服务的注册 发现
  • dbeaver问题:Public Key Retrieval is not allowed

    1 问题描述 连接数据库时出现错误 Public Key Retrieval is not allowed 2 解决方案 编辑连接信息 设置驱动属性为true 刷新一下
  • 1流明等于多少lux_说说投影仪ANSI亮度和流明的区别

    作为一个投影行业从业者 对于现在市面上的LED光源小微投动不动多少多少ANSI亮度 多少多少光源亮度 实在是看不下去了 不忍看到大家再被一些无良厂商忽悠 先说说现在市面上大家在标的ANSI亮度 ANSI是一个9点测量方法 即投出画面 画面大
  • 实现内网https 内网部署https SpringBoot

    最近项目中要在内网中部署https网址 之前对https完全不了解 一脸懵逼 好在在一顿疯狂必应之后 成功完成了部署 首先需要明确的是 由于是在内网部署 所以完全不需要搞得那么复杂 宝塔啊 申请域名啊什么的 零 前置条件 在本地安装好jdk
  • go 进阶 三方库之 jwt-go

    目录 一 JWT 基础解释 二 JWT Token 组成 三 jwt go 使用示例 一 JWT 基础解释 先了解几个问题 JSON数据使用base64url编码 只对JSON数据是先扁平化处理再用64个可读无冲突字符来表达 没有加密效果
  • 多线程是可以同时读取同一个内存数据的

    记录一下 多线程如果只是读取同一块内存区域的数据 没必要设置成同步线程 线程同步的目的是为了防止同一时间多个线程要修改数据 造成数据错误 所以 如果线程只是访问 完全没必要线程同步
  • C语言 从键盘上依次输入20个数据,输出最大值和最小值,并统计正数和负数的个数。

    C语言 从键盘上依次输入20个数据 输出最大值和最小值 并统计正数和负数的个数 代码 include
  • nvm的介绍和常用命令

    一 介绍 nvm Node Version Manager 是一个用于管理多个Node js版本的工具 它允许你在同一台机器上安装和切换不同的Node js版本 以下是nvm的一些详细介绍 安装和配置 你可以从nvm的GitHub仓库中下载
  • 数据分析和可视化平台:Splunk Enterprise for mac v9.1.1激活版 兼容m1

    Splunk Enterprise 是一个数据分析和可视化平台 可帮助企业理解其数据 虽然没有适用于 Mac OS 的 Splunk Enterprise 官方版本 但他们确实为 Mac OS 提供了一个名为 Splunk Light 的应
  • 刷题之二分查找

    题目 给定一个 n 个元素有序的 升序 整型数组 nums 和一个目标值 target 写一个函数搜索 nums 中的 target 如果目标值存在返回下标 否则返回 1 来源 力扣 LeetCode 链接 https leetcode c
  • 2019超分辨综述

    论文地址 Deep Learning for Image Super resolution A Survey 摘要 图像超分辨率 SR 是一类重要的图像处理技术 旨在提高计算机视觉中图像和视频的分辨率 近年来 目睹了使用深度学习技术的图像超
  • 数据库中的blob是什么类型?

    BLOB binary large object 二进制大对象 是一个可以存储二进制文件的容器 在计算机中 BLOB常常是数据库中用来存储二进制文件的字段类型 BLOB是一个大文件 典型的BLOB是一张图片或一个声音文件 由于它们的尺寸 必
  • vulnstack-ATT&CK实战系列 红队实战(一)

    vulnstack ATT CK实战系列 红队实战 一 前言 在此次攻击过程中 需要用到cobalt strike内网渗透工具 而此软件的破解版在国内还是很难找到的 这里有一个扩展阅读 此次事件互联网上简称为contiLeaks 其中就有C
  • python学习练习题

    文章目录 前言 python简单题目学习 python简单题目学习 1 最小公倍数和最大公约数 2 水仙花数 100 1000 3 百钱百鸡问题 4 猜数字游戏 5 三局两胜猜拳游戏 6 CPAPS赌博游戏 总结 前言 光看知识点不练习终究