【Python每日十题菜鸟版--第三天】

🚀 作者 :“码上有前”
🚀 文章简介 :Python
🚀 欢迎小伙伴们 点赞👍、收藏⭐、留言💬
请添加图片描述

往期精彩内容

【Python基础练习100题–第一篇:基础篇】
【Python基础练习100题–第二篇:文件篇】
【Python每日十题菜鸟版–第一天】
【Python每日十题菜鸟版–第二天】
【Python每日十题菜鸟版–第三天】
【Python每日十题菜鸟版–第四天】
【Python每日十题菜鸟版–第五天】
【Python每日十题菜鸟版–第六天】

🍉前言

这些题都是在菜鸟官网上的练习题,
对于刚学python的新手来说十分的适合,
可以加强和巩固我们的基础。
嘿嘿 一起噶油吧!

1.最大公约数

方法一:找最小值,同时取模为0

while True:
    try:
        # 传入一个ascll码,该码是整数
        # 用户输入两个数字
        num1 = int(input("输入第一个数字: "))
        num2 = int(input("输入第二个数字: "))
        break
    except (ValueError, TypeError):
        print("请输入一个正整数")

# 两个数的最大公约数 ,不也会超过两者的最小值
# 因此计算出两个数的最小值,以下这种方法更加优雅
smaller = num2 if num1 > num2 else num1

for i in range(2, smaller+1):  # [2,smaller]
    if num1 % i == 0 and num2 % i == 0:
        print(f"{num1}{num2}的公约数有{i}")
        # 最大公约数是最后一个符合,保存下这个值
        hrc = i
print(f"其中最大公约数是{hrc}")

方法2:欧几德里算法

# 请大家试一试

方法三:辗转相除法

def my_lcm():
    n1 = int(input('请输入一个正整数:'))
    n2 = int(input('请输入另一个正整数:'))
    temp1 = n1
    temp2 = n2
    if n1 == 0:
        n1, n2 = n2, n1
    while n2 != 0:
        n1, n2 = n2, n1 % n2
    return int(temp1 * temp2 / n1)
print(my_lcm())

改进

# 改进
# 当最小值为最大公约数时,直接返回;
# 倒序求最大公约数更合理,
# 因为倒序的数大都都不容易被整除,进入到条件语句就比较少
# 当最小值不为最大公约数时,最大公约数不会大于最小值的1/2;
# for i in range(b//2+1, 1, -1):
#        if b % i == 0 and a % i == 0:

2.最小公倍数

方法一:循环遍历找

while True:
    try:
        # 传入一个ascll码,该码是整数
        # 用户输入两个数字
        num1 = int(input("输入第一个数字: "))
        num2 = int(input("输入第二个数字: "))
        break
    except (ValueError, TypeError):
        print("请输入一个正整数")

# 求两个数的最小公倍数
# 如果这两个数都是素数,那么他们的积就是最小公倍数

bigger = num1 if num1 > num2 else num2
# 如果y能够整除x ,那么x和y的最小公倍数就是y
if (bigger % x == 0 or bigger % y == 0 ):
	print(f"{num1}{num2}的最小公倍数就是{bigger}"

while (True):
    if ((bigger% y == 0) and (bigger% x == 0)):
    	print(f"{num1}{num2}的最小公倍数就是{bigger}"
        break
    else:
        bigger += 1

方法二:利用最大公倍数

# 计算两个数的最大公约数,见上一条
# 即可得到两个数的最小公倍数 = num1 * num2 / 最大公约数 

3.生成日历

# 导入日历模块
import calendar


while True:
    try:
        # 用户输入两个数字
        year = int(input("输入年份: "))
        month = int(input("输入月份: "))
        break
    except (ValueError, TypeError):
        print("请输入一个正整数")

# 将周天设置在第一天
calendar.setfirstweekday(firstweekday=6)  # 设置第一天是星期天
# 调用模块 生成日历
# 显示日历
print(calendar.month(year, month))

while True:
    for i in range(12):
        print(calendar.month(year, i + 1))
        print('*' * 20)
    # 循环一轮后就显示一年的日历,就结束了
    break

4.计算某年某个月的天数

import calendar

# calender的monthrange方法统计该月份的总天数
monthRange = calendar.monthrange(2023, 4)
print(monthRange) # (3, 30)
# 输出的是一个元组,第一个元素是所查月份的第一天对应的是星期几(0-6)
# 第二个元素是这个月的天数。以上实例输出的意思为 2023年4月份的第一天是星期三,该月总共有 30 天。

5.获取昨天日期

# 引入 datetime 模块,时间处理模块
import datetime

def getYesterday():
	# 今天的日期 
    today = datetime.date.today() 
    # 一天的时间 
    oneday = datetime.timedelta(days=1) # 1 day, 0:00:00  <class 'datetime.timedelta'>
    yesterday = today-oneday
    return yesterday


# 输出
print(getYesterday()) # 输出结果为昨天的日期 

6.实现秒表功能

# 导入时间模块
import time 


print('按下回车开始计时,按下 Ctrl + C 停止计时。')
while True:
    input("")
    start_time = time.time()
    print("开始")
    try:
        while True:
            # print("计时:",round(time.time()-start_time,0),"秒")
            print("计时:",round(time.time() - start_time, 0),"秒")
            time.sleep(1)
    except KeyboardInterrupt:
        print("结束")
        endtime = time.time()
        print("总共的时间为:",round(endtime - start_time,2),'secs')
        break

7.将时间戳转换为指定格式日期

# 将时间戳转换为指定格式日期
import datetime
import time

# 获得当前时间时间戳
now = int(time.time())
# 转换为其他日期格式,如:"%Y-%m-%d %H:%M:%S"
timeArray = time.localtime(now)
otherStyleTime = time.strftime("%Y-%m-%d %H:%M:%S", timeArray)
print(otherStyleTime)


# 获得当前时间
now = datetime.datetime.now()
# 转换为指定的格式
otherStyleTime = now.strftime("%Y-%m-%d %H:%M:%S")
print(otherStyleTime)


timeStamp = 1557502800
timeArray = time.localtime(timeStamp)
otherStyleTime = time.strftime("%Y-%m-%d %H:%M:%S", timeArray)
print(otherStyleTime)


timeStamp = 1557502800
dateArray = datetime.datetime.utcfromtimestamp(timeStamp)
otherStyleTime = dateArray.strftime("%Y-%m-%d %H:%M:%S")
print(otherStyleTime)

8.字符串判断

实例一

# 字符串的判断
str = "李杀猪嘟嘟嘟"
print("测试实例一")
print(str.isalnum()) # 判断所有字符都是数字或者字母  True
print(str.isalnum())  # 判断所有字符都是数字或者字母 True
print(str.isalpha())  # 判断所有字符都是字母 True
print(str.isdigit())  # 判断所有字符都是数字 False
print(str.islower())  # 判断所有字符都是小写 False
print(str.isupper())  # 判断所有字符都是大写 False
print(str.istitle())  # 判断所有单词都是首字母大写,像标题 False
print(str.isspace())  # 判断所有字符都是空白字符、\t、\n、\r False

实例二

# 测试实例二
print("测试实例二")
str = "runoob"
print(str.isalnum()) # True
print(str.isalpha()) # True
print(str.isdigit()) # False
print(str.islower()) # True
print(str.isupper()) # False
print(str.istitle())  # False
print(str.isspace())  # False

9.字符串操作

str = "www.baidu.com"
print(str.upper())          # 把所有字符中的小写字母转换成大写字母
print(str.lower())          # 把所有字符中的大写字母转换成小写字母
print(str.capitalize())     # 把第一个字母转化为大写字母,其余小写
print(str.title())          # 把每个单词的第一个字母转化为大写,其余小写

10.IO文件

import os

# 第一个参数是文件名,第二个参数是模式,第三个参数是文档解析格式
# 第二个参数规格还挺多的 建议返回到知识点再看看
# 基本的有三种格式 w是读,r是写,a是追加
# 这里会在你的同级目录下创建一个文件
with open('test_os_txt.txt', 'wt', encoding="utf-8") as fout:
    fout.write("我正在写py,默写,你看到我了嘛,嘿嘿黑")

with open('test_os_txt.txt', 'rt', encoding='utf-8') as fin:
    text = fin.read()
    print(text, type(text))
# 我正在写py,默写,你看到我了嘛,嘿嘿黑 <class 'str'>

🍉 学无止境,都看到这了,点个赞关注支持一下呗!嘿嘿(* ̄︶ ̄)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

码上有前

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值