输出结果也为:
3.14
(3)判断某年某天🐣
输入某年某月某日,判断这一天是这一年的第几天。
# (3)判断某年某天
# 输入某年某月某日,判断这一天是这一年的第几天。
import datetime
year,month,day = map(int,input().split())
#创建时间对象
Yuandan = datetime.datetime(year,1,1)
now = datetime.datetime(year,month,day)
#由于 1月31 - 1月1 = 30 而我们1月一共有31天 所以后面还要+1
print((now-Yuandan).days + 1)
Python中的
datetime
模块🍭Python中的**
datetime
模块是处理日期和时间的常用模块之一**,它提供了许多有用的类和函数,可以方便地进行日期和时间的处理和计算。下面是一些
datetime
模块的常见用法:获取当前日期和时间
import datetime # 获取当前日期和时间 now = datetime.datetime.now() print(now) # 2021-08-20 14:35:42.590500
获取指定日期和时间
import datetime # 获取指定日期和时间 dt = datetime.datetime(2021, 8, 20, 14, 35, 0) print(dt) # 2021-08-20 14:35:00
将字符串转换为日期和时间
import datetime # 将字符串转换为日期和时间 dt_str = '2021-08-20 14:35:00' dt = datetime.datetime.strptime(dt_str, '%Y-%m-%d %H:%M:%S') print(dt) # 2021-08-20 14:35:00
将日期和时间转换为字符串
import datetime # 将日期和时间转换为字符串 dt = datetime.datetime(2021, 8, 20, 14, 35, 0) dt_str = dt.strftime('%Y-%m-%d %H:%M:%S') print(dt_str) # 2021-08-20 14:35:00
计算时间差
import datetime # 计算时间差 dt1 = datetime.datetime(2021, 8, 20, 14, 35, 0) dt2 = datetime.datetime(2021, 8, 21, 14, 35, 0) delta = dt2 - dt1 print(delta.days) # 1 print(delta.seconds) # 0
更改日期和时间
import datetime # 更改日期和时间 dt = datetime.datetime(2021, 8, 20, 14, 35, 0) # 向后推迟1天 dt += datetime.timedelta(days=1) print(dt) # 2021-08-21 14:35:00
这些是
datetime
模块的一些基础用法,**它还有很多其他的功能,如对时区的支持,时间格式化等等。**通过datetime
模块的学习,可以更方便地进行日期和时间的处理。
Python中的内置函数-
map()
函数🍰在Python中,
map()
函数是一个内置函数,用于对可迭代对象中的每个元素应用给定函数,**并返回一个新的可迭代对象,**其中包含每个元素的计算结果。
map()
函数的语法如下:map(function, iterable, ...)
其中:
function
是要应用的函数。iterable
是要迭代的序列。
map()
函数的工作原理是将function
依次作用于iterable
的每个元素,并返回一个列表或迭代器,其中包含每个元素被function
处理后的结果。下面是几个使用
map()
函数的例子:# 将列表中所有元素转换为字符串类型 nums = [1, 2, 3, 4, 5] nums_str = list(map(str, nums)) print(nums_str) # ['1', '2', '3', '4', '5'] # 对列表中所有元素求平方 nums = [1, 2, 3, 4, 5] squares = list(map(lambda x: x**2, nums)) print(squares) # [1, 4, 9, 16, 25] # 将两个列表中的元素一一相加 nums1 = [1, 2, 3, 4, 5] nums2 = [10, 20, 30, 40, 50] sums = list(map(lambda x, y: x + y, nums1, nums2)) print(sums) # [11, 22, 33, 44, 55]
在上面的例子中,
map()
函数和lambda
表达式的结合是非常常见的用法,这样可以在不定义函数的情况下实现灵活的操作。
lambda表达式🍫
lambda表达式是一种用于创建匿名函数的语法。它非常适合那些只需短时间使用的函数,因为这样可以避免创建新的函数名称,简化代码。
lambda表达式的语法如下:
lambda arguments : expression
其中,arguments是参数列表,可以为空或者包含一个或多个参数;
expression是一个表达式,通常是由参数组成的表达式,用于计算返回值。
可以使用lambda表达式来定义一个简单的函数,例如:
# 定义一个函数,计算两个参数相加的结果 def add(x, y): return x + y # 使用lambda表达式定义同样的函数 add = lambda x, y: x + y
使用lambda表达式定义的函数可以像普通函数一样使用,例如:
# 调用add函数 result = add(1, 2) print(result) # 使用lambda表达式替代add函数 add = lambda x, y: x + y result = add(1, 2) print(result)
输出结果为:
3 3
使用lambda表达式可以使代码更加简洁,特别是当你需要一个临时函数时,它会很有用。
.days属性在datetime里的使用🍪
在Python中,.days是一个日期时间(datetime)对象的属性,用于获取两个日期之间的天数差。
例如,假设有两个日期对象d1和d2,我们可以使用以下代码计算它们之间的天数差:
delta = d2 - d1 print(delta.days)
此代码将输出这两个日期之间的天数差。
除此之外,.days还可以用于处理时间间隔(timedelta)对象。时间间隔对象表示两个日期或时间之间的差异。和日期时间对象一样,时间间隔对象也具有.days属性,可以用于获取时间间隔的总天数。例如:
from datetime import timedelta delta = timedelta(days=7) print(delta.days) # 输出7
(4)斐波那切数列🍥
又称兔子数列,指的是这样一个数列: 1、1、2、3、5、8、13、21、34、.编写程序找出第n个项
这道题有两种方法:
方法1-递归🍮
递归—>不懂或忘记的小伙伴可以跳转进行学习👉🔗:http://t.csdnimg.cn/qGFmw
首先思考:对于第n个元素
递推条件:f(n-1)+f(n-2)
结束条件: n ==1 或 n == 2 —>1
# (4)斐波那切数列
# 又称兔子数列,指的是这样一个数列: 1、1、2、3、5、8、13、21、34、.编写程序找出第n个项
def fib(n):
if n == 1 or n ==2:
return 1;
else:
return fib( n - 1 ) + fib( n - 2 )
#打印出第六个元素的值
print(fib(6))
注意:
这种递归算法的**时间复杂度为 O(2^n),因为每个数都要递归地计算出它的前两个数的和。**因此,当 n 值较大时,性能会变得非常低下。
方法2-非递归🍨
#非递归
n = 6
fib = [1,1]
for i in range (2,n+1):
fib.append(fib[i-1]+fib[i-2])
#打印整个列表
print(fib)
#利用索引单独打印第六个元素
print(fib[n-1])
索引🍵
在Python中,列表索引指的是列表中每个元素的位置。
列表中的第一个元素的索引为0,第二个元素的索引为1,以此类推。
可以使用方括号[]来访问列表中的元素。
一、Python所有方向的学习路线
Python所有方向的技术点做的整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照下面的知识点去找对应的学习资源,保证自己学得较为全面。
二、Python必备开发工具
工具都帮大家整理好了,安装就可直接上手!
三、最新Python学习笔记
当我学到一定基础,有自己的理解能力的时候,会去阅读一些前辈整理的书籍或者手写的笔记资料,这些笔记详细记载了他们对一些技术点的理解,这些理解是比较独到,可以学到不一样的思路。
四、Python视频合集
观看全面零基础学习视频,看视频学习是最快捷也是最有效果的方式,跟着视频中老师的思路,从基础到深入,还是很容易入门的。
五、实战案例
纸上得来终觉浅,要学会跟着视频一起敲,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。
六、面试宝典
简历模板
网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!