HarmonyOS鸿蒙最新python每日一练(5),互联网大厂高频重点面试题

img
img

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化的资料的朋友,可以戳这里获取

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

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,以此类推。

可以使用方括号[]访问列表中的元素

例如,如果我们有一个名为mylist的列表,我们可以通过以下方式访问列表中的元素:

mylist = [10, 20, 30, 40, 50]
print(mylist[0])    # 输出:10
print(mylist[2])    # 输出:30
print(mylist[-1])   # 输出:50,-1表示最后一个元素的索引

我们还可以使用分片(slicing)来访问列表中的多个元素。例如,如果我们想访问列表中的前三个元素,我们可以使用以下代码:

mylist = [10, 20, 30, 40, 50]
print(mylist[0:3])  # 输出:[10, 20, 30]

此外,我们还可以使用一些其他的内置函数,如len()来获取列表的长度,例如:

mylist = [10, 20, 30, 40, 50]
print(len(mylist))  # 输出:5

我最喜欢的表情包🐒

我的自创表情包🐵

提示:请至少分享5个表情包

深知大多数程序员,想要提升技能,往往是自己摸索成长,但自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!


img
img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上鸿蒙开发知识点,真正体系化!

由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新

需要这份系统化的资料的朋友,可以戳这里获取

成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!**


[外链图片转存中…(img-SN3JZ86N-1715882872792)]
[外链图片转存中…(img-EZWvqECp-1715882872792)]

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上鸿蒙开发知识点,真正体系化!

由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新

需要这份系统化的资料的朋友,可以戳这里获取

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值