🚀 作者 :“码上有前”
🚀 文章简介 :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'>
🍉 学无止境,都看到这了,点个赞关注支持一下呗!嘿嘿(* ̄︶ ̄)