当前位置: 首页 > news >正文

华为机试题:HJ73 计算日期到天数转换(python)

文章目录

  • 博主精品专栏导航
  • 知识点详解
    • 1、input():获取控制台(任意形式)的输入。输出均为字符串类型。
      • 1.1、input() 与 list(input()) 的区别、及其相互转换方法
    • 2、print() :打印输出。
    • 3、整型int() :将指定进制(默认十进制)的字符串或数字转换为十进制整型(强转)。
    •   3.1、bin():十进制整数转换为二进制码。返回值为字符串。
    •   3.2、ord(): ASCII字符转换为十进制整数(Unicode字符 —— Unicode数值)。
    •   3.3、chr():将10进制或16进制数转换为ASCII字符。(Unicode数值 —— Unicode字符)。
    • 4、list列表的常用操作(15+9函数)—— 列表是一个有序可变序列。
    • 5、str.split():通过指定分隔符(默认为空格)对字符串进行切片,并返回分割后的字符串列表(list)。
    • 6、map():将指定函数依次作用于序列中的每一个元素 —— 返回一个迭代器,结果需指定数据结构进行转换后输出。


博主精品专栏导航

  • 🍕  【Pytorch项目实战目录】算法详解 + 项目详解 + 数据集 + 完整源码
  • 🍔 【sklearn】线性回归、最小二乘法、岭回归、Lasso回归
  • 🥘 三万字硬核详解:yolov1、yolov2、yolov3、yolov4、yolov5、yolov7
  • 🍰 卷积神经网络CNN的发展史
  • 🍟 卷积神经网络CNN的实战知识
  • 🍝 Pytorch基础(全)
  • 🌭 Opencv图像处理(全)
  • 🥙 Python常用内置函数(全)

描述

根据输入的日期,计算是这一年的第几天。
保证年份为4位数且日期合法。
进阶:时间复杂度:O(n) ,空间复杂度:O(1)

输入描述:输入一行,每行空格分割,分别是年,月,日

输出描述: 输出是这一年的第几天


示例1

输入:2012 12 31
输出:366

示例2

输入:1982 3 4
输出:63

Python3

while 1:try:y, m, d = map(int, input().split())month = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31]days = sum(month[:m - 1]) + dif m > 2 and (y%4==0 and y%100!=0 or y%400==0):days += 1print(days)except:break

知识点详解

1、input():获取控制台(任意形式)的输入。输出均为字符串类型。

str1 = input()
print(str1)
print('提示语句:', str1)
print(type(str1))'''
asd123!#
提示语句: asd123!#
<class 'str'>
'''
常用的强转类型说明
int(input())强转为整型(输入必须时整型)
list(input())强转为列表(输入可以是任意类型)

1.1、input() 与 list(input()) 的区别、及其相互转换方法

  • 相同点:两个方法都可以进行for循环迭代提取字符,提取后都为字符串类型。
  • 不同点str = list(input()) 将输入字符串转换为list类型,可以进行相关操作。如: str.append()
  • 将列表转换为字符串:str_list = ['A', 'aA', 2.0, '', 1]
  • 方法一:print(''.join(str))
  • 方法二:print(''.join(map(str, str_list)))

备注:若list中包含数字,则不能直接转化成字符串,否则系统报错。

  • 方法一:print(''.join([str(ii) for ii in str_list]))
  • 方法二:print(''.join(map(str, str_list)))
    map():根据给定函数对指定序列进行映射。即把传入函数依次作用到序列的每一个元素,并返回新的序列。

(1) 举例说明:若list中包含数字,则不能直接转化成字符串,否则系统报错。

str = ['25', 'd', 19, 10]
print(' '.join(str))'''
Traceback (most recent call last):File "C:/Users/Administrator/Desktop/test.py", line 188, in <module>print(' '.join(str))
TypeError: sequence item 3: expected str instance, int found
'''

(2)举例说明:若list中包含数字,将list中的所有元素转换为字符串。

str_list = ['A', 'aA', 2.0, '', 1]
print(''.join(str(ii) for ii in str_list))
print(''.join([str(ii) for ii in str_list]))
print(''.join(map(str, str_list))) 		# map():根据给定函数对指定序列进行映射。即把传入函数依次作用到序列的每一个元素,并返回新的序列。'''
AaA2.01
AaA2.01
AaA2.01
'''

2、print() :打印输出。

【Python】print()函数的用法

x, y = 1, 9
print('{},{}' .format(x, y))	# 打印方法一
print('*'*10)					# 打印分割符
print(x, ',', y)				# 打印方法二'''
1,9
**********
1 , 9
'''

3、整型int() :将指定进制(默认十进制)的字符串或数字转换为十进制整型(强转)。

  • Python2 有 long int 类型,而Python3 整型没有范围限制,故可以当作 long int 使用。
  • 布尔类型 bool 是整型的子类型,包括两种:True == 1、False == 0

函数说明:int(x, base=10)
输入参数:

  • x:字符串或数字(整数、浮点数)。
  • base默认十进制
    备注1:若带参数base,表示将 (二进制、十进制、十六进制)的 x 转换为十进制。
    备注2:若带参数base,则输入必须是整数,且整数必须以字符串的形式进行输入。
输入返回值举例输出
int('整数', base=16)输入整数指定为16进制,转换为10进制整数(同理:其余进制)print(int('20', 16))print(int('0XAA', 16))32 和 170
(1)输入为空或整数\\\
int()\print(int())0
int(浮点数)\print(int(-2.1))-2
(2)输入为字符串\\\
int(字符串)\print(int('-2'))-2
int(字符串(浮点数))需先将str转换为float,再转换为int,否则报错。print(int(float('-2.1')))-2

十进制转换为16进制

十六进制范围:0 ~ 65536(0000 ~ FFFF)
方法:

  • (1)十进制数除16(取余数1),得商1
  • (2)商1除16(取余数2),得商2
  • (3)商2除16(取余数3),得商3
  • (4)最后商3等于0(取余数4)
  • 最终结果为倒序余数= [余数4, 余数3, 余数2, 余数1]

举例(整数:65036)
(1)65036 除 16,商4064,余数 12(十六进制C)
(2)4064 除 16,商254,余数 0(十六进制0)
(3)254 除 16,商15,余数 14(十六进制E)
(4)15除16,商0,余数 15(十六进制F)。
(5)结束:得16进制为 = FE0C

十进制0123456789101112131415
16进制0123456789ABCDEF
2进制0000000100100011010001010110011110001001101010111100110111101111

  3.1、bin():十进制整数转换为二进制码。返回值为字符串。

函数说明:bin(整型)

print(bin(-3))
print(type(bin(-3)))'''
-0b11
<class 'str'>
'''

  3.2、ord(): ASCII字符转换为十进制整数(Unicode字符 —— Unicode数值)。

函数说明:ord(字符)

print(ord('A'))
print(type(ord('A')))'''
65
<class 'int'>
'''

  3.3、chr():将10进制或16进制数转换为ASCII字符。(Unicode数值 —— Unicode字符)。

函数说明:chr(number)

print(chr(97))
print(type(chr(97)))'''
a
<class 'str'>
'''

4、list列表的常用操作(15+9函数)—— 列表是一个有序可变序列。

一般来说,有序序列类型都支持索引,切片,相加,相乘,成员操作。

  • 不可变数据类型布尔类型(bool)、整型(int)、字符串(str)、元组(tuple)
  • 可变数据类型列表(list)、集合(set)、字典(dict)
序号函数说明
0list1 = []创建空列表
0list1 = list()创建空列表
1list2 = [元素]创建列表。输入参数可以是任意类型
1list2 = list(元素)创建列表。输入参数可以是任意类型
——————
2list[index]索引(负数表示倒叙)
3list[start, end]切片(获取指定范围元素)
4list[::-1]逆序输出(步长为1)
——————
5list.append(元素)在列表末尾添加任意类型的一个元素
6list.extend(元素)添加可迭代序列
7list.insert(index, 元素)在指定位置插入一个元素
——————
8list.remove(元素)删除指定元素。(1)若有多个相同元素,则只删除第一个元素。(2) 若不存在,则系统报错。
9list.pop(index)删除指定位置元素。默认删除最后一项。
10del list(index)删除指定位置元素
11list.clear()清空内容,返回空列表
——————
12list.index(元素)索引元素位置。(1)若有多个相同元素,则只返回第一个元素的位置。(2)若不存在,则系统报错。
13list.count(元素)计算指定元素出现的次数
14list.reverse()逆序输出
15list.sort(*, key=None, reverse=False)(1)默认从小到大排列。(2)reverse=True 表示从大到小排序。
——————
(1)len(list)元素个数
(2)type(list)查看数据类型
(3)max(list)返回最大值(不能有嵌套序列)
(4)min(list)返回最小值(不能有嵌套序列)
(5)list(tuple)将元组转换为列表
(6)list1 + list2+ 操作符(拼接)
(7)list * 3* 操作符(重复)
(8)元素 in list(in / not in)成员操作符(判断给定值是否在序列中)
(9)for i in list:遍历

5、str.split():通过指定分隔符(默认为空格)对字符串进行切片,并返回分割后的字符串列表(list)。

函数说明:str.split(str=".", num=string.count(str))[n]
参数说明:

  • str: 表示分隔符,默认为空格,但是不能为空。若字符串中没有分隔符,则把整个字符串作为列表的一个元素。
  • num:表示分割次数。如果存在参数num,则仅分隔成 num+1 个子字符串,并且每一个子字符串可以赋给新的变量。
  • [n]: 表示选取第n个切片。
    • 注意:当使用空格作为分隔符时,对于中间为空的项会自动忽略。
s = 'www.dod.com.cn'
print('分隔符(默认): ', s.split())                    # 【输出结果】分隔符(默认):  ['www.dod.com.cn']
print('分隔符(.): ', s.split('.'))                   # 【输出结果】分隔符(.):  ['www', 'dod', 'com', 'cn']
print('分割1次, 分隔符(.): ', s.split('.', 1))        # 【输出结果】分割1次, 分隔符(.):  ['www', 'dod.com.cn']
print('分割2次, 分隔符(.): ', s.split('.', 2))        # 【输出结果】分割2次, 分隔符(.):  ['www', 'dod', 'com.cn']
print('分割2次, 分隔符(.), 取出分割后下标为1的字符串: ', s.split('.', 2)[1])      # 【输出结果】分割2次, 分隔符(.), 取出分割后下标为1的字符串:  dod
print(s.split('.', -1))                             # 【输出结果】['www', 'dod', 'com', 'cn']
###########################################
# 分割2次, 并分别保存到三个变量
s1, s2, s3 = s.split('.', 2)
print('s1:', s1)                                    # 【输出结果】s1: www
print('s2:', s1)                                    # 【输出结果】s2: www
print('s3:', s2)                                    # 【输出结果】s3: dod
###########################################
# 连续多次分割
a = 'Hello<[www.dodo.com.cn]>Bye'
print(a.split('['))                                 # 【输出结果】['Hello<', 'www.dodo.com.cn]>Bye']
print(a.split('[')[1].split(']')[0])                # 【输出结果】www.dodo.com.cn
print(a.split('[')[1].split(']')[0].split('.'))     # 【输出结果】['www', 'dodo', 'com', 'cn']

6、map():将指定函数依次作用于序列中的每一个元素 —— 返回一个迭代器,结果需指定数据结构进行转换后输出。

函数说明:map(function, iterable)
输入参数:

  • function:指定函数。
  • iterable:可迭代对象
print('返回一个迭代器: ', map(int, (1, 2, 3)))
# 返回一个迭代器:  <map object at 0x0000018507A34130>

结果需指定数据结构进行转换后输出

  • 数据结构:list、tuple、set。可转换后输出结果
  • 数据结构:str。返回一个迭代器
  • 数据结构:dict。ValueError,需输入两个参数
print('将元组转换为list: ', list(map(int, (1, 2, 3))))
print('将字符串转换为list: ', tuple(map(int, '1234')))
print('将字典中的key转换为list: ', set(map(int, {1: 2, 2: 3, 3: 4})))'''
将元组转换为list:  [1, 2, 3]
将字符串转换为list:  (1, 2, 3)
将字典中的key转换为list:  {1, 2, 3}
'''################################################################################
dict_a = [{'name': 'python', 'points': 10}, {'name': 'java', 'points': 8}]
print(list(map(lambda x : x['name'] == 'python', dict_a)))
print(dict(map(lambda x : x['name'] == 'python', dict_a)))"""
[True, False]
TypeError: cannot convert dictionary update sequence element #0 to a sequence
"""

相关文章:

华为机试题:HJ73 计算日期到天数转换(python)

文章目录博主精品专栏导航知识点详解1、input()&#xff1a;获取控制台&#xff08;任意形式&#xff09;的输入。输出均为字符串类型。1.1、input() 与 list(input()) 的区别、及其相互转换方法2、print() &#xff1a;打印输出。3、整型int() &#xff1a;将指定进制&#xf…...

将springboot项目生成可依赖的jar,并引入到项目中

1、将springboot项目生成可依赖的jar包的方法 SpringBoot项目默认打包的是可运行jar包&#xff0c;也可以打包成不可运行的jar包。 能打成可运行的jar包是因为&#xff0c;Spring Boot 项目引入了 spring-boot-maven-plugin 依赖包。 spring-boot-maven-plugin具有repackage …...

小红书搜索关键词布局指南,这4种词一定要把握好

在小红书搜索关键词布局&#xff0c;是提升搜索推流的重要方法&#xff0c;今天跟你讲清楚小红书搜索关键词布局怎么做&#xff5e;做小红书的都知道&#xff0c;小红书的主要流量来源一个是推荐&#xff0c;另一个就是搜索&#xff0c;关键词决定了你的精准人群&#xff0c;那…...

安全研发人员能力模型窥探

能力 是一个比较抽象的概念&#xff0c;不同的行业、管理者、研发人员对能力的认知都会有差异。另外&#xff0c;作为研发团队的相应的职级定级、绩效考核的基础&#xff0c;一个“大家普遍认可”的能力的模型是非常重要的。这是比职级模型更高层的一个基本模型&#xff0c;所谓…...

【面试总结】Linux篇·操作及原理篇

【面试总结】Linux篇原理篇1.介绍一下inode2.说一下Linux系统的目录结构3.说一下Linux系统的文件类型4.如何在Linux上配置一个IP地址5.Linux负载是什么&#xff1f;6.Linux中的软链接和硬链接有什么区别&#xff1f;1.介绍一下inode 硬盘的最小存储单位是扇区(Sector)&#xf…...

C++中如何实现用异或运算找出数组中只出现一次的数字???

文章目录1、异或运算符的运算1、异或运算符的运算 问题描述&#xff1a; 给出一个指定的数组&#xff0c;只有一个数出现一次&#xff0c;剩下都出现两次&#xff0c;找出出现一次的数字。指定数组为[1,2,2,1,3,4,3]。 样例输出&#xff1a;4 #include<iostream> using…...

红黑树的历史和由来。

一个数组&#xff0c;1,2,3,4,5,...n; 一共n个数字。1、直接查找想要查询第n个数字&#xff0c;直接搜索&#xff0c;就是n次查询。ps:那么问题来了&#xff0c;这样查询也太慢了&#xff0c;有什么改进的呢&#xff1f;2、二分查找这个时候&#xff0c;二分查找更快。不过就是…...

蓝库云|制造业数字化转型为何转不动?资料处理很重要

数字化转型已经成为每个产业势在必行的课题&#xff0c;没有人会怀疑数字化技术与科技能解放的生产力能量&#xff0c;但为什么看似美好的愿景&#xff0c;实行起来却如此缓慢&#xff1f;蓝库云认为这是因为没有盖好「资料治理」的地基。 面对不断变化的法令规范要求&#xf…...

【python学习笔记】 :Lambda 函数

Lambda 函数是 Python 中的匿名函数。有些人将它们简称为lambdas&#xff0c;它们的语法如下&#xff1a; lambda arguments: expressionlambda 关键字可以用来创建一个 lambda 函数&#xff0c;紧跟其后的是参数列表和用冒号分割开的单个表达式。例如&#xff0c;lambda x: 2…...

Nginx的proxy buffer参数设置

1. proxy_buffering 语法&#xff1a;proxy_buffering on|off 默认值&#xff1a;proxy_buffering on 上下文&#xff1a;http,server,location作用&#xff1a;该指令开启从后端被代理服务器的响应body缓冲。 如果proxy_buffering开启,nginx假定被代理的后端服务器会以最…...

SPI简介与实例分析

SPI简介 SPI 协议是由Motorola提出的通讯协议 (Serial Peripheral Interface) &#xff0c;是一种高速全双工的串行通信总线。 SPI 通讯使用 3 条总线 &#xff1a;SCK、 MOSI、 MISO &#xff0c;以及若干片选线(SS、CS、NSS)。 主机要和哪个从机通信&#xff0c;就把对应的…...

通过基于pgsql的timescaleDB的time_bucket函数实现自定义聚合粒度

1、自己写的不完全满足要求的实现方式 with tb_tmp as (select *, //计算该时间距离第一天有多少天((extract(epoch from create_time) /3600/24)::integer) as ct_ifrom test.test_salary )select min(a.create_time) as create_time,sum(a.salary) from (select *,//移动数据…...

一台电脑安装26个操作系统(windows,macos,linux)

首先看看安装了哪些操作系统1-4: windows系统 四个5.Ubuntu6.deepin7.UOS家庭版8.fydeOS9.macOS10.银河麒麟11.红旗OS12.openSUSE Leap13.openAnolis14.openEuler(未安装桌面UI)15.中标麒麟&#xff08;NeoKylin&#xff09;16.centos17.debian Edu18.fedora19.oraclelinux20.R…...

dockerfile文件

dockerfile文件内容 Form ip端口/centos:regular ENV JAVA_HOME /E:/Program Files/Java/jdk1.8.0_351 ENV PATH $JAVA_HOME/bin:$JAVA_HOME/jre/bin:$PATH ENV LANG en_US.UTF-8 ENV LANGUAGE en_US:en ENV LC_ALL en_US.UTF-8 WORKDIR /opt COPY target/fast.jar /op…...

视觉SLAM ch11回环检测

回环检测的关键&#xff1a;如何有效的检测出相机经过同一个地方。如果成功的检测到可以为后端的位姿图提供更多有效数据&#xff0c;得到全局一致的估计。 回环检测提供了当前数据和所有历史数据的关联&#xff0c;还可以用回环检测进行重定位。 具体方法&#xff1a; 一&am…...

关于Ubuntu20.04文件系统思考

文章目录问题产生Ubuntu文件系统中普通用户可读写地址Ubuntu文件系统Ubuntu文件系统详解一级目录二级目录查找Ubuntu中软件安装位置Ubuntu修改文件权限问题产生 使用electron框架开发桌面端跨平台软件时&#xff0c;当开发完成的程序部署到Ubuntu上&#xff0c;系统无法产生日…...

内嵌于球的等边三棱柱

( A, B )---3*30*2---( 1, 0 )( 0, 1 ) 做一个网络让输入只有3个节点&#xff0c;每个训练集里有两张图片&#xff0c;让B的训练集全为0&#xff0c;排列组合A&#xff0c;观察迭代次数平均值的变化。共完成了64组&#xff0c;但只有12组不同的迭代次数。 差值结构 A-B 迭代次…...

论文解读 | [CVPR2020] ContourNet:向精确的任意形状场景文本检测迈出进一步

目录 1 研究背景和目的 1.1 主要贡献&#xff1a; 1.2 两个挑战&#xff1a; 2 ContourNet 3 方法论 3.1 Adaptive-RPN 3.2 LOTM 3.3 点重定位算法 4 实验和结果 论文地址&#xff1a;ContourNet: Taking a Further Step toward Accurate Arbitrary-shaped Scene Tex…...

干货分享|数据可视化报表制作技巧

脑中想得再好&#xff0c;也要看最终的效果呈现。但偏偏有些用户分析思维不差&#xff0c;就是数据分析报表的制作拖了后腿&#xff0c;导致始终无法完美呈现数据可视化分析效果。本文将总结奥威BI软件上的常用的数据可视化报表制作技巧&#xff0c;供大家随时查阅。 BI数据可…...

Longhorn,企业级云原生容器分布式存储 - 备份与恢复

Longhorn&#xff0c;企业级云原生容器分布式存储 - 备份与恢复快照手动快照周期性快照和备份使用 Longhorn UI 设置周期性快照使用 StorageClass 设置 Recurring Jobs分离卷时允许 Recurring Job容灾卷创建容灾(DR)卷备份设置备份目标使用阿里云OSS备份存储准备工作为 S3 兼容…...

测试微信模版消息推送

进入“开发接口管理”--“公众平台测试账号”&#xff0c;无需申请公众账号、可在测试账号中体验并测试微信公众平台所有高级接口。 获取access_token: 自定义模版消息&#xff1a; 关注测试号&#xff1a;扫二维码关注测试号。 发送模版消息&#xff1a; import requests da…...

idea大量爆红问题解决

问题描述 在学习和工作中&#xff0c;idea是程序员不可缺少的一个工具&#xff0c;但是突然在有些时候就会出现大量爆红的问题&#xff0c;发现无法跳转&#xff0c;无论是关机重启或者是替换root都无法解决 就是如上所展示的问题&#xff0c;但是程序依然可以启动。 问题解决…...

C++.OpenGL (10/64)基础光照(Basic Lighting)

基础光照(Basic Lighting) 冯氏光照模型(Phong Lighting Model) #mermaid-svg-GLdskXwWINxNGHso {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-GLdskXwWINxNGHso .error-icon{fill:#552222;}#mermaid-svg-GLd…...

拉力测试cuda pytorch 把 4070显卡拉满

import torch import timedef stress_test_gpu(matrix_size16384, duration300):"""对GPU进行压力测试&#xff0c;通过持续的矩阵乘法来最大化GPU利用率参数:matrix_size: 矩阵维度大小&#xff0c;增大可提高计算复杂度duration: 测试持续时间&#xff08;秒&…...

EtherNet/IP转DeviceNet协议网关详解

一&#xff0c;设备主要功能 疆鸿智能JH-DVN-EIP本产品是自主研发的一款EtherNet/IP从站功能的通讯网关。该产品主要功能是连接DeviceNet总线和EtherNet/IP网络&#xff0c;本网关连接到EtherNet/IP总线中做为从站使用&#xff0c;连接到DeviceNet总线中做为从站使用。 在自动…...

学校时钟系统,标准考场时钟系统,AI亮相2025高考,赛思时钟系统为教育公平筑起“精准防线”

2025年#高考 将在近日拉开帷幕&#xff0c;#AI 监考一度冲上热搜。当AI深度融入高考&#xff0c;#时间同步 不再是辅助功能&#xff0c;而是决定AI监考系统成败的“生命线”。 AI亮相2025高考&#xff0c;40种异常行为0.5秒精准识别 2025年高考即将拉开帷幕&#xff0c;江西、…...

短视频矩阵系统文案创作功能开发实践,定制化开发

在短视频行业迅猛发展的当下&#xff0c;企业和个人创作者为了扩大影响力、提升传播效果&#xff0c;纷纷采用短视频矩阵运营策略&#xff0c;同时管理多个平台、多个账号的内容发布。然而&#xff0c;频繁的文案创作需求让运营者疲于应对&#xff0c;如何高效产出高质量文案成…...

如何更改默认 Crontab 编辑器 ?

在 Linux 领域中&#xff0c;crontab 是您可能经常遇到的一个术语。这个实用程序在类 unix 操作系统上可用&#xff0c;用于调度在预定义时间和间隔自动执行的任务。这对管理员和高级用户非常有益&#xff0c;允许他们自动执行各种系统任务。 编辑 Crontab 文件通常使用文本编…...

FFmpeg:Windows系统小白安装及其使用

一、安装 1.访问官网 Download FFmpeg 2.点击版本目录 3.选择版本点击安装 注意这里选择的是【release buids】&#xff0c;注意左上角标题 例如我安装在目录 F:\FFmpeg 4.解压 5.添加环境变量 把你解压后的bin目录&#xff08;即exe所在文件夹&#xff09;加入系统变量…...

uniapp 实现腾讯云IM群文件上传下载功能

UniApp 集成腾讯云IM实现群文件上传下载功能全攻略 一、功能背景与技术选型 在团队协作场景中&#xff0c;群文件共享是核心需求之一。本文将介绍如何基于腾讯云IMCOS&#xff0c;在uniapp中实现&#xff1a; 群内文件上传/下载文件元数据管理下载进度追踪跨平台文件预览 二…...