【Python训练营】Python每日一练

编程入门 行业动态 更新时间:2024-10-23 14:25:56

【Python<a href=https://www.elefans.com/category/jswz/34/1769135.html style=训练营】Python每日一练"/>

【Python训练营】Python每日一练

📢📢📢📣📣📣
🌻🌻🌻Hello,大家好我叫是Dream呀,一个有趣的Python博主,多多关照😜😜😜
🏅🏅🏅2021年度博客之星TOP100,2021年度博客之星领域TOP5,Python领域优质创作者,欢迎大家找我合作学习(文末有VX 想进学习交流群or学习资料 欢迎+++)
💕入门须知:这片乐园从不缺乏天才,努力才是你的最终入场券!🚀🚀🚀
💓最后,愿我们都能在看不到的地方闪闪发光,一起加油进步🍺🍺🍺
🍉🍉🍉“一万次悲伤,依然会有Dream,我一直在最温暖的地方等你”,唱的就是我!哈哈哈~🌈🌈🌈
🌟🌟🌟✨✨✨

前言:【Python训练营】是针对Python语言学习所打造的一场刷题狂欢party! 对基础知识把握不牢固的话,欢迎参考此套课程:Python公开课 搭配使用最佳嗷~喜欢的话就抓紧订阅起来吧!🍋🍋🍋如果对学习没有自制力或者没有一起学习交流的动力,欢迎私信或者在文末添加我的VX,我会拉你进学习交流群,我们一起交流学习,报团打卡

Python每日一练:

  • 题目描述
  • 解题思路
  • 源码分享
  • 学习总结
  • 🏆往期文章----好文推荐🏆

题目描述

题目描述
1/7 = 0.142857142⋯ 是个无限循环小数。
任何有理数都可以表示为无限循环小数的形式。
题目要求即是:给出一个数字的循环小数表示法。

输入描述
输入一行,两个整数。

每个整数范围均为:1 ~ 1000。

输出描述
输出两个整数做除法产生的小数或无限循环小数(循环节用方括号括起)。

输入输出样例
示例
输入
1,7

输出
0.[142857]

运行限制
最大运行时间:1s
最大运行内存: 256M

解题思路

  • 首先题目的意思是,任意两数相除都可以产生小数或无限循环小数,无限循环小数需要我们找的循环节,就是我们得到的小数中,如果一个数出现第二次,则说明第二次这个数之前的数都是循环节,按照这个来展开写。
  • 输入采用map()函数来一下定义两个数:a, b = map(int,input().split(','))
  • 将第一个余数先表示出来:yushu = a % b,首次创建list1将余数存储在列表中,看看每次得到的余数是否之前存在过,如果存在过就退出循环;接着创建列表list2来存储每次得到的整除后的结果;
  • 可以再设置一个flag作为标志,如果之前就结束了我们的循环,flag发生变化,之后将列表拆分便不需要进行了;
  • 设置一个while True循环,用余数来*10也就是我们所说的补0进行下一次的小数运算,得到整除后的整数部分m = (yushu*10)//b,紧接着把下一次要进行运算的小数部分求出来yushu = (yushu*10)%b,将我们整除后得到的小数部分加入到我们的列表中,供循环结束后拆分列表使用list2.append(m)
  • 最后用join方法,将列表中的数据转化为字符串进行拼接相连:d = ''.join(str(i) for i in list2),最后格式化输出字符串print(f'{a//b}.[{d}]')

源码分享

# Time    : 2022/2/23 13:55
# File    : 有理数的循环节.py
# Author  : 是Dream呀!
# VX      : 18300396393
# 一万次悲伤,依然会有Dream,我一直在最温暖的地方等你!
a, b = map(int,input().split(','))
# 将其余数表示出来
yushu = a % b
# 将余数存储在列表中,看看每次得到的余数是否之前存在过,如果存在过就退出循环;
list1 = [yushu]
# 创建列表list2来存储每次得到的整除后的结果
list2 = []
flag = 0
while True:# 用余数来*10也就是我们所说的补0进行下一次的小数运算,得到整除后的整数部分;m = (yushu*10)//b# 紧接着把下一次要进行运算的小数部分求出来;yushu = (yushu*10)%b# 将我们整除后得到的小数部分加入到我们的列表中,供下一次使用;list2.append(m)# 如果下一次运算没有小数部分,则说明不存在循环节,直接输出相除的值即可;if yushu == 0:print(a/b)flag = 1breakelif yushu in list1:breakelse:list1.append(yushu)
if flag == 0:# 将列表转化为字符串形式进行拼接d = ''.join(str(i) for i in list2)# f-string方法格式化输出字符串print(f'{a//b}.[{d}]')

学习总结

1.连续输入两个变量方法:a, b = map(int,input().split(','))
2.将列表转化为字符串形式进行拼接 d = ''.join(str(i) for i in list2)
3.f-string方法格式化输出字符串 print(f'{a//b}.[{d}]')

🏅今天是我在Python训练营的第 29 天,希望每天都能见到最棒的你🏅

🏆往期文章----好文推荐🏆

🥇 [Python公开课]零基础玩转Python基础篇----第一节:Python的自我介绍

🥈 [Python公开课]零基础玩转Python进阶篇----第一节:Python中的文件操作

🥉 快来一场一场刷题狂欢的party吧!----【Python训练营】
🌲🌲🌲 好啦,这就是今天要分享给大家的全部内容了
❤️❤️❤️如果你喜欢的话,就不要吝惜你的一键三连了~

更多推荐

【Python训练营】Python每日一练

本文发布于:2024-03-13 02:51:06,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1733019.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:训练营   Python

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!