Python入门基础小练习

news2024/12/28 17:41:20

通过前面的两个篇章Python-入门基础篇和Python-入门基础语句篇大家应该已经认识了python基础的语句和函数了,并且可以使用pycharm编译器创建.py文件进行运行了,今天适当的来一些小练习,给枯燥的学习增添一些趣味性。

  • 判断一个数是否为偶数
# 定义一个变量
num = 10

# 判断是否为偶数
if num % 2 == 0:
    print(num, "是偶数")
else:
    print(num, "是奇数")
  • 计算两个数的乘积
# 定义两个变量
a = 3
b = 5

# 计算乘积
result = a * b

# 打印结果
print(a, "和", b, "的乘积是:", result)
  • 打印出 1-10 的数字

循环打印数字

for i in range(1, 11):
    print(i)
  • 猜数字游戏

导入 random 模块,用于生成随机数

import random

生成一个随机数

num = random.randint(1, 10)

循环猜数字

while True:
    # 提示用户输入数字
    guess = int(input("请猜一个 1-10 之间的整数:"))
    
    # 判断是否猜中了
    if guess == num:
        print("恭喜你,猜中了!")
        break
    elif guess < num:
        print("猜的数字太小了,再试试!")
    else:
        print("猜的数字太大了,再试试!")
  • 计算阶乘
# 定义一个函数,计算阶乘
def factorial(n):
    if n == 0:
        return 1
    else:
        return n * factorial(n-1)

# 调用函数,计算阶乘
num = 5
result = factorial(num)

# 打印结果
print(num, "的阶乘是:", result)

这段代码定义了一个计算阶乘的函数factorial(n),接受一个整数参数n,返回它的阶乘值。当n等于0时,函数返回1;否则,函数通过递归调用自身计算n的阶乘值。

在主程序中,变量num被赋值为5,然后调用factorial(num)函数来计算num的阶乘值。最终结果被存储在变量result中。

最后,程序打印了结果字符串,使用了字符串拼接的方式将num的值和计算结果一起输出。


详细一点来讲就是:
函数factorial(n)首先检查n是否等于0。如果是,它返回1,因为0的阶乘是1。如果不是,它递归调用自身,将n-1作为参数,并将返回值乘以n,得到n的阶乘。

在这里,我们传入参数5,factorial(5)会计算5 * factorial(4),而factorial(4)会计算4 * factorial(3),一直递归到factorial(0),这里直接返回1。然后,每个递归调用的结果都将被乘以调用它的函数的参数,最终得到5的阶乘120。

主程序中,我们调用factorial(5)并将结果存储在result中,然后使用print语句打印输出字符串。


ps:在 Python 中编写代码时,要特别注意缩进规则 python缩进规则


  • 计算字符串中字符的个数
# 定义一个字符串
str = "hello world"

# 计算字符串中字符的个数
count = 0
for char in str:
    count += 1

# 打印结果
print(str, "中字符的个数是:", count)
  • 判断一个字符串是否为回文串
# 定义一个字符串
str = "level"

# 判断是否为回文串
if str == str[::-1]:
    print(str, "是回文串")
else:
    print(str, "不是回文串")
  • 求两个数的最大公约数和最小公倍数
# 定义两个数
a = 12
b = 16

# 计算最大公约数
x = a
y = b
while y != 0:
    r = x % y
    x = y
    y = r
gcd = x

# 计算最小公倍数
lcm = a * b // gcd

# 打印结果
print(a, "和", b, "的最大公约数是:", gcd)
print(a, "和", b, "的最小公倍数是:", lcm)

补充:

这段代码的功能是计算两个数的最大公约数和最小公倍数。

  1. 首先,定义了两个整数变量a和b,它们分别被赋值为12和16。
    a = 12
    b = 16
  2. 接下来定义了两个变量x和y,它们的值分别赋为a和b。x和y将用于计算最大公约数。
    x = a
    y = b
  3. 接下来定义了两个变量x和y,它们的值分别赋为a和b。x和y将用于计算最大公约数。
while y != 0:
    r = x % y
    x = y
    y = r
gcd = x

这是计算最大公约数的代码块。while循环的条件是y不等于0,如果y等于0,那么x就是a和b的最大公约数。在while循环中,通过不断使用辗转相除法的方式,将x和y的值进行更新,直到y等于0时,最终得到的x就是a和b的最大公约数。
辗转相除法的基本思想是:设x和y为两个正整数,r为它们的余数,那么x和y的最大公约数等于y和r的最大公约数。在每次循环中,通过计算x除以y的余数r,然后将x赋值为原来的y,y赋值为原来的r,这样不断更新x和y的值,直到y等于0时结束循环。

lcm = a * b // gcd

这一行代码用于计算最小公倍数。lcm变量被赋值为a和b的积除以它们的最大公约数,即最小公倍数等于两个数的积除以它们的最大公约数。

print(a, "和", b, "的最大公约数是:", gcd)
print(a, "和", b, "的最小公倍数是:", lcm)

最后通过print语句将a、b的最大公约数和最小公倍数输出。

ps:

最大公约数是指两个或多个整数共有的约数中,最大的一个;最小公倍数则是指两个或多个整数公共的倍数中,最小的一个。在实际问题中,最大公约数和最小公倍数经常用于化简分数、解决同余方程等。

  • 实现一个简单的计算器
# 定义一个函数,实现加法
def add(a, b):
    return a + b

# 定义一个函数,实现减法
def subtract(a, b):
    return a - b

# 定义一个函数,实现乘法
def multiply(a, b):
    return a * b

# 定义一个函数,实现除法
def divide(a, b):
    if b == 0:
        return "错误:除数不能为 0"
    else:
        return a / b

# 用户输入操作数和运算符
num1 = float(input("请输入第一个操作数:"))
op = input("请输入运算符:")
num2 = float(input("请输入第二个操作数:"))

# 根据运算符调用相应的函数进行计算
if op == "+":
    result = add(num1, num2)
elif op == "-":
    result = subtract(num1, num2)
elif op == "*":
    result = multiply(num1, num2)
elif op == "/":
    result = divide(num1, num2)
else:
    result = "错误:不支持的运算符"

# 打印结果
print("计算结果是:", result)

这些小练习对于初学者来说可以先不求甚解的跟着写一写,等到累计了更多的python知识再来看这些会觉得原来很简单,不要把太多的时间浪费在这里,打好基础才是最重要的!
最后 — Python 是一门非常有用的编程语言,可以用来解决各种各样的问题。它的语法简洁明了,非常容易上手,而且有很多丰富的库和工具可供使用,让你能够更高效地开发出自己的程序。在未来的生活和工作中发挥重要的作用,加油在这里插入图片描述

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

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

相关文章

linux服务器实现百万并发遇到的问题以及解决思路

目录 前言服务器与客户端的配置介绍server 代码client 代码遇到的问题error too many open files为什么会出现这个问题解决这个问题的思路 killed&#xff08;已杀死&#xff09;为什么会出现这个问题解决这个问题的思路 最终结果学到的经验教训 前言 在完成百万并发服务器的时…

搭建家庭影音媒体中心 - 公网远程连接Jellyfin流媒体服务器

文章目录 前言1. 安装Home Assistant2. 配置Home Assistant3. 安装cpolar内网穿透3.1 windows系统3.2 Linux系统3.3 macOS系统 4. 映射Home Assistant端口5. 公网访问Home Assistant6. 固定公网地址6.1 保留一个固定二级子域名6.2 配置固定二级子域名 转载自远程穿透的文章&…

MySQL高级第十六篇:数据库日志有哪些(慢查询日志、通用查询日志、错误日志和二进制日志)

MySQL高级第十六篇&#xff1a;数据库日志有哪些&#xff08;慢查询日志、通用查询日志、错误日志和二进制日志&#xff09; 一、MySQL支持的日志有哪些&#xff1f;1. 日志类型总结2. 日志有什么缺点吗&#xff1f; 二、通用查询日志&#xff08;slow query log&#xff09;三…

【开发工具】idea2023.1社区版设置优化,媲美旗舰版

相信大家很多时候都是用旗舰版来开发&#xff0c;各种序列号破解包各种搞&#xff0c;但说不定哪天又失效了那天又爆泄漏隐私安全问题。随着idea的版本升级破解也不好搞了&#xff0c;所以我就直接用了社区版&#xff0c;经过一番折腾发现社区版一点不比旗舰版差&#xff0c;可…

Linux文件类型与属性

一、文件类型 Linux 系统下一共分为 7 种文件类型。通过 stat 命令或者 ls 命令来查看文件类型。 - &#xff1a;普通文件 d &#xff1a;目录文件 c &#xff1a;字符设备文件 b &#xff1a;块设备文件 l &#xff1a;符号链接文件 s &#xff1a;套接字文件 p &…

Jeston NANO 配置并安装 torch+ torchvision

由于nano的arm64架构&#xff0c;所以用它进行深度学习配置部署时会与用普通电脑&#xff08;x86&#xff09;有所不同: x86架构 x86架构是最常用的计算机架构之一&#xff0c;它是基于英特尔的8086处理器所设计的&#xff0c;后来又逐渐发展成x86-64架构&#xff0c;支持64位处…

开放原子训练营(第二季)RT-Thread Nano学习营刘玉宽

4月22日周六&#xff0c;早早起床充满期待的来到了北京艾丽华酒店&#xff0c;参加“2023年RT-Thread线下培训”。这是疫情三年以来开放原子在北京第一次组织的线下活动。 进入到会场&#xff0c;被震撼了&#xff0c;好火爆啊————满满一屋子人&#xff0c;有白发苍苍的老者…

MySQL运维36-排队论

文章目录 1、排队模型2、什么是排队论3、李特尔法则&#xff08;Little’s law&#xff09;3.1、李特尔法则的内容3.2、李特尔法则的意义 4、肯德尔排队表示法4.1、肯德尔表示法的核心要素A/S/m4.2、肯德尔表示法中对顾客达到分布的表示&#xff1a;4.3、用肯德尔表示法表示的常…

day03_注释丶关键字丶标识符丶常量

​注释 注释的概念&#xff1a;在编写程序的过程中&#xff0c;对程序代码进行解释说明。 代码本身和人类的自然语言相比&#xff0c;可读性肯定是要差一些&#xff0c;所以为了更快能够知道代码的含义、作用、需要注意地方&#xff0c;所有程序员都应该养成写注释的好习惯。 …

【安卓源码】Binder机制1-Servicemanager 进程的启动和defaultServiceManager

1. servicemanager 进程的启动 对于用户空间&#xff0c;不同进程之间彼此是不能共享的&#xff0c;而内核空间却是可共享的。Client进程向Server进程通信&#xff0c;恰恰是利用进程间可共享的内核内存空间来完成底层通信工作的&#xff0c;Client端与Server端进程往往采用io…

Linux客观题错题笔记

目录 第一章课后测试 课堂测试一 课堂测试2 第二次课后测试 课堂测验4 第4次课后作业 Linux 课堂测试5 第五次课后测试 自测一 实验疑难点 第一章课后测试 a 课堂测试一 d 课堂测试2 bb 第二次课后测试 a , b c,d,c 课堂测验4 a 第4次课后作业 c.dc,c Lin…

自动化测试系列-Selenium三种等待详解

一. 强制等待 sleep 在华为工作了10年的大佬出的Web自动化测试教程&#xff0c;华为现用技术教程&#xff01;_哔哩哔哩_bilibili在华为工作了10年的大佬出的Web自动化测试教程&#xff0c;华为现用技术教程&#xff01;共计16条视频&#xff0c;包括&#xff1a;1. 【web自动…

[POJ - 1015]Jury Compromise(01背包问题)

[POJ - 1015]Jury Compromise&#xff08;01背包问题&#xff09; 一、问题二、分析1、状态表示2、状态转移3、方案输出 三、代码 一、问题 二、分析 这道题可以转化为一个01背包问题&#xff0c;问题描述可以改为&#xff0c;每个物品具有两个属性 a a a和 b b b&#xff0c;…

异构系统的事务统一处理模型Saga

承接上文分布式事务Seata-TCC事务模式 Saga事务模式相对来说是最复杂的&#xff0c;用的不多&#xff0c;只需要把概念理解透就可以了。 Saga是Seata提供的长事务解决方案&#xff0c;在业务流程中每个参与者都提供本地事务&#xff0c;当出现某个参与者失败的情况则补偿前面已…

如何设计一个牛逼的API接口

在日常开发中&#xff0c;总会接触到各种接口。前后端数据传输接口&#xff0c;第三方业务平台接口。一个平台的前后端数据传输接口一般都会在内网环境下通信&#xff0c;而且会使用安全框架&#xff0c;所以安全性可以得到很好的保护。这篇文章重点讨论一下提供给第三方平台的…

[自注意力神经网络]Mask Transfiner网络-论文解读

本文为CVPR2022的论文。国际惯例&#xff0c;先贴出原文和源码&#xff1a; 原论文地址https://arxiv.org/pdf/2111.13673.pdf源码地址https://github.com/SysCV/transfiner 一、概述 传统的Two-Stage网络&#xff0c;如Mask R-CNN虽然在实例分割上取得了较好的效果&#xff…

OSCP-Twiggy(ZeroMQ、SaltStack)

目录 扫描 ​编辑WEB 扫描 WEB 80端口 运行着一个名为Mezzanine的东西。快速的谷歌搜索显示这是一个内容管理系统,所以让我们看看它是否对任何可以在我们的目标机器上获得shell的东西都是脆弱的: mezzanine版本是4.3.1,并且此漏洞已在4.2.1中修补。 searchsploit没有返回…

说说MySQL中MVCC机制的原理

一、概述&#xff1a; 了解了MySql的底层架构后&#xff0c;我们今天要深入了解下什么是MVCC。 MVCC&#xff0c;全称Multi-Version Concurrency Control&#xff0c;即多版本并发控制。MVCC是一种多并发控制的方法&#xff0c;一般在数据库管理系统中&#xff0c;实现对数据…

NAS私有云存储 - 搭建Nextcloud私有云盘并公网远程访问

文章目录 摘要视频教程1. 环境搭建2. 测试局域网访问3. 内网穿透3.1 ubuntu本地安装cpolar3.2 创建隧道3.3 测试公网访问 4 配置固定http公网地址4.1 保留一个二级子域名4.1 配置固定二级子域名4.3 测试访问公网固定二级子域名 转载自内网穿透工具的文章&#xff1a;使用Nextcl…

LVS负载均衡集群

引言 如今&#xff0c;在各种互联网应用中&#xff0c;随着站点对硬件性能、响应速度、服务稳定性、数据可靠性等要求也越来越高&#xff0c;单台服务器也将难以无法承担所有的访问需求。 一、群集的含义 集群、群集 由多台主机构成&#xff0c;但对外&#xff0c;只表现为一…