华为机试题:HJ99 自守数(python)
文章目录
- (1)题目描述
- (2)Python3实现
- (3)知识点详解
- 1、input():获取控制台(任意形式)的输入。输出均为字符串类型。
- 1.1、input() 与 list(input()) 的区别、及其相互转换方法
- 2、print() :打印输出。
- 3、range() :输出指定范围内的所有值(前闭后开)。
- 3、整型int() :将指定进制(默认十进制)的一个字符串或数字转换为十进制整型(强转)。</font>
- 3.1、bin():十进制整数转换为二进制码。返回值为字符串。
- 3.2、ord(): ASCII字符转换为十进制整数(Unicode字符 —— Unicode数值)。
- 3.3、chr():将10进制或16进制数转换为ASCII字符。(Unicode数值 —— Unicode字符)。
- 4、字符串str() :将参数转换成字符串类型(强转)—— 字符串是有序不可变序列。
- 5、算术运算符
- 6、str.endswith():判断字符串中(可指定范围)是否以指定字符或子串结尾。返回bool值。
(1)题目描述
(2)Python3实现
while True:try:n = int(input())num = 0for i in range(n+1): # 包括nb = str(i**2) # 平方,转字符串格式if b.endswith(str(i)): # 检测是否以指定字符串结尾num += 1print(num)except:break
(3)知识点详解
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、range() :输出指定范围内的所有值(前闭后开)。
函数说明:
range(start=0,stop,step=1)
输入参数:
- start:序列的起始点,默认值0。
- stop:序列的终止点。
- step:滑动步长,默认为1。正数表示迭代上升,负数表示迭代下降。
备注:前闭后开[A,B),即可以取到A值,但取不到B值。
# (1)指定stop=9, start默认为0,step默认为1
for i in range(9):print('A =', i)
'''
A = 0
A = 1
A = 2
A = 3
A = 4
A = 5
A = 6
A = 7
A = 8
'''
# (2)指定start=2, stop=9, step默认为1
for i in range(2, 9):print('B =', i)
'''
B = 2
B = 3
B = 4
B = 5
B = 6
B = 7
B = 8
'''
# (3)指定start=2, stop=9, step=-2
for i in range(9, 2, -2):print('C =', i)
'''
C = 9
C = 7
C = 5
C = 3
'''
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
| 十进制 | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 16进制 | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | A | B | C | D | E | F |
| 2进制 | 0000 | 0001 | 0010 | 0011 | 0100 | 0101 | 0110 | 0111 | 1000 | 1001 | 1010 | 1011 | 1100 | 1101 | 1110 | 1111 |
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、字符串str() :将参数转换成字符串类型(强转)—— 字符串是有序不可变序列。
函数说明:
str(x, base=10)
一般来说,有序序列类型都支持索引,切片,相加,相乘,成员操作。
print('返回空字符串:', str())
print('整数转换为字符串:', str(-23))
print('浮点数转换为字符串:', str(1.3e2))
print('列表转换为字符串:', str([12, '-23.1', 'Python']))
print('元组转换为字符串:', str((23, '9we', -8.5)))
print('字典转换为字符串:', str({'Huawei': 'China', 'Apple': 'USA'}))
print('集合转换为字符串:', str({'China', 'Japan', 'UK'}))'''
返回空字符串:
整数转换为字符串: -23
浮点数转换为字符串: 130.0
列表转换为字符串: [12, '-23.1', 'Python']
元组转换为字符串: (23, '9we', -8.5)
字典转换为字符串: {'Huawei': 'China', 'Apple': 'USA'}
集合转换为字符串: {'China', 'UK', 'Japan'}
'''
5、算术运算符
| 序列 | 运算符 | 名称 | 说明 | 举例 | 结果 | 数据类型 |
|---|---|---|---|---|---|---|
| 【1】 | + | 加 | (1)对于数字:求和。 | c = 1 + 2 | c = 3 | int型 |
| 【1】 | + | 加 | (2)对于序列类型(如:字符串):拼接操作 | str = 'a' + 'b' | str = 'ab' | 字符串型 |
| 2 | - | 减 | 求差值 | c = 1 - 2 | c = -1 | int型 |
| 【3】 | * | 乘 | (1)对于数字:求积。 | c = 2 * 3 | c = 6 | int型 |
| 【3】 | * | 乘 | (2)对于序列类型(如:字符串):重复操作 | str = 'a' * 3 | str = 'aaa' | 字符串型 |
| 4 | / | 除 | 求商(两个整数或浮点数相除,结果为float型) | c = 3 / 2 | c = 1.5 | 浮点型 |
| 5 | % | 取余 | 求余数 | c = 3 % 2 | c = 1 | int型 |
| 6 | ** | 幂 | 求次幂 | c = 3 ** 2 | c = 9 | int型 |
| 【7】 | // | 地板除法 | 向下取整。(1)两个整数相除,结果为int型 | c = 3 // 2 | c = 1 | int型 |
| 【7】 | // | 地板除法 | 向下取整。(2)除数或被除数为float类型,则结果为float类型。 | c = 3 // 2.0 | c = 1.0 | 浮点型 |
6、str.endswith():判断字符串中(可指定范围)是否以指定字符或子串结尾。返回bool值。
函数说明:
str.endswith(suffix, start, end)
输入参数:
- suffix:后缀。可以是字符、字符串、元组(常用于判断文件类型)。
- start:索引字符串的起始位置。默认0。
- end:索引字符串的结束位置。默认字符串的长度。
备注:空字符的情况。返回值通常为True。
str = "i love python"
print("1:",str.endswith("")) # 空字符
print("2:",str.endswith("n"))
print("3:",str.endswith("python"))
print("4:",str.endswith("n",0, 6)) # 索引 'i love' 是否以 'n' 结尾。
print("5:",str.endswith(("n","z"))) # 遍历元组,任意一个满足条件即返回True
print("6:",str.endswith(("k","m"))) # 遍历元组,任意一个满足条件即返回True# 判断文件类型
file = "python.txt"
if file.endswith("txt"): # 字符串类型print("该文件为文本。")
elif file.endswith(("AVI","WMV","RM")): # 元祖类型print("该文件为视频。")
else:print("文件格式未知。")'''
1: True
2: True
3: True
4: False
5: True
6: False
该文件为文本。
'''
相关文章:
华为机试题:HJ99 自守数(python)
文章目录(1)题目描述(2)Python3实现(3)知识点详解1、input():获取控制台(任意形式)的输入。输出均为字符串类型。1.1、input() 与 list(input()) 的区别、及其相互转换方…...
如何提高推广邮件的发送成功率?
随着经济的发展,国际之间的贸易往来越加频繁,很多外贸企业需要发送大量的商业推广邮件,来获得销售订单开拓公司业务市场。 随之而来的问题也是越来越多,给众多的外贸企业带来诸多的困扰。外贸企业在发送推广邮件中究竟会遇到什么问…...
关于提高PX4抗风性
滚转角速率控制器:(MC_ROLLRATE_P, MC_ROLLRATE_I, MC_ROLLRATE_D) 滚转角速率控制器:(MC_PITCHRATE_P, MC_PITCHRATE_I,MC_PITCHRATE_D) 滚转角速率控制器…...
AVL 树实现
AVL 树的概念 也许因为插入的值不够随机,也许因为经过某些插入或删除操作,二叉搜索树可能会失去平衡,甚至可能退化为单链表,造成搜索效率低。 AVL Tree 是一个「加上了额外平衡条件」的二叉搜索树,其平衡条件的建立是…...
跟我学c++高级篇——模板元编程之八惰性加载
一、Lazy evaluation 惰性加载或者延迟计算,在前面的文章《跟我学c中级篇——迟延计算》中分析过。叫法怎么叫都可以,只要大家明白这个意思即可。Lazy evaluation一般可用于下面的情况: 1、模板中的对象非立刻的模板实例化,也就是…...
【Python入门第二十二天】Python 类和对象
Python 类/对象 Python 是一种面向对象的编程语言。 Python 中的几乎所有东西都是对象,拥有属性和方法。 类(Class)类似对象构造函数,或者是用于创建对象的“蓝图”。 创建类 如需创建类,请使用 class 关键字&…...
qml的进度条
QML是一种用于创建动态用户界面的声明式语言,它支持使用JavaScript表达式来定义属性绑定和信号处理器。在本文中,我们将介绍如何使用JavaScript在QML中绘制一个进度条(ProgressBar),并设置其前景色和背景色。进度条是一…...
Pycharm补丁包使用教程
虽然社区版在大多情况下已经够用,但是有很多功能都是没有的,对照起一些教程之类的就很不方便 现在直接教一种简单中的简单的补丁包使用方法 我这里用的是 pycharm 19.2.6 注意右下角的configure 一般别的方法都是 打开,然后添加路径&#…...
用VAE生成图像
用VAE生成图像自编码器AE,auto-encoderVAE讲讲为什么是log_var为什么要用重参数化技巧用VAE生成图像变分自编码器是自编码器的改进版本,自编码器AE是一种无监督学习,但它无法产生新的内容,变分自编码器对其潜在空间进行拓展&#…...
你只会说MVC模型是什么但是不会实现?今天带你走通Web、Servlet、MVC、SpringMVC。代码演示很清晰
文章目录HTTP请求和HTTP响应从0手写一个Web服务器,看看能有多累人使用Servlet实现一个服务器,看看多简单Serlvet的创建Servlet的运行Servlet的其他问题Servlet这么爽,我们简单地探索一下它的原理JSP跟Servlet合作啦,我们来看一下他…...
C++中邻接矩阵、邻接表、链式前向星具体用法及讲解
图论在提高组中几乎占据半壁江山,而今天要讲的就是如何存储一个图一.邻接矩阵原理要建立一个图,根本的要素就是边和点而想要让计算机存储边和点就需要用到一些数据结构邻接矩阵是最简单的他使用了一个二维数组,来表示一个图假设数组名为map那…...
appium的安装详解
安装appium 爬虫手机APP需要实现自动化,所以要使用appnium来实现点击,输入,滑动等操作。由于appnium的安装较为繁琐,所以特意整理一篇文章来展示安装的详细过程过程中。 安装appnium共有3个步骤 安装 Android SDK安装 JDK安装 …...
STM32之 串口
串口通信串行接口简称串口,也称串行通信接口或串行通讯接口(通常指COM接口),是采用串行通信方 式的扩展接口。串行接口(Serial Interface)是指数据一位一位地顺序传送。其特点是通信线路简 单,只…...
CSDN 编程竞赛三十三期题解
竞赛总览 CSDN 编程竞赛三十三期题解:比赛详情 (csdn.net) 竞赛题解 题目1、奇偶排序 给定一个存放整数的数组,重新排列数组使得数组左边为奇数,右边为偶数(奇数和偶数的顺序根据输入的数字顺序排列)。 第七期竞赛…...
逆向练习之 mingyue.exe wp
目录 一.查壳 二.主函数 三.operate函数 四.storage函数及4618和4620指针功能的解释 五.judge函数 六.求解flag 七.其他--ida字符识别问题 一.查壳 64位无壳 二.主函数 1.这里的pointer_4618和4620是两个相邻的八字节内存单元,其中4620是字符串链表表头head 2.puts和s…...
LeetCode 热题 HOT 100 Java 题解 -- Part 3
练习地址 Part 1 : https://blog.csdn.net/qq_41080854/article/details/128829494 Part 2 : https://blog.csdn.net/qq_41080854/article/details/129278336 LeetCode 热题 HOT 100 Java 题解 -- Part 376. 最佳买卖股票时机含冷冻期77. 戳气球78. 零钱兑换79. 打家劫舍 III…...
QML键盘事件
在QML中,当有一个按键按下或释放时,会产生一个键盘事件,将其传递给获得有焦点的QML项目(讲focus属性设置为true,则获得焦点)。 按键处理的基本流程: Qt接收密钥操作并生成密钥事件。如果 QQuic…...
跨域问题怎么解决
解决跨域,原因:域名不同,域名相同端口不同;二级域名不同 什么是跨域? 就是两个项目之间通讯,如果访问的域名与ajax访问的地址不一致情况,默认情况浏览器有一个安全机制。 postman不一定能测试…...
微服务网关Gateway和Zuul的区别
spring-cloud-Gateway是spring-cloud的一个子项目。而zuul则是netflix公司的项目,只是spring将zuul集成在spring-cloud中使用而已。 因为zuul2.0连续跳票和zuul1的性能表现不是很理想,所以催生了spring团队开发了Gateway项目。 Zuul: 使用的…...
专访华西二院吴邦华:隐私计算+AI全栈技术,构筑智慧医院建设的坚实数据底座|爱分析访谈
从IT时代步入DT时代,医疗大数据成为智慧医院建设的重要驱动力。经过多年信息化系统建设,很多医院已经积累了大量的医疗数据资源,但由于各业务系统间数据孤岛化严重、系统架构落后、数据缺乏深度治理等问题存在,导致现有数据深度及…...
龙虎榜——20250610
上证指数放量收阴线,个股多数下跌,盘中受消息影响大幅波动。 深证指数放量收阴线形成顶分型,指数短线有调整的需求,大概需要一两天。 2025年6月10日龙虎榜行业方向分析 1. 金融科技 代表标的:御银股份、雄帝科技 驱动…...
.Net框架,除了EF还有很多很多......
文章目录 1. 引言2. Dapper2.1 概述与设计原理2.2 核心功能与代码示例基本查询多映射查询存储过程调用 2.3 性能优化原理2.4 适用场景 3. NHibernate3.1 概述与架构设计3.2 映射配置示例Fluent映射XML映射 3.3 查询示例HQL查询Criteria APILINQ提供程序 3.4 高级特性3.5 适用场…...
mongodb源码分析session执行handleRequest命令find过程
mongo/transport/service_state_machine.cpp已经分析startSession创建ASIOSession过程,并且验证connection是否超过限制ASIOSession和connection是循环接受客户端命令,把数据流转换成Message,状态转变流程是:State::Created 》 St…...
页面渲染流程与性能优化
页面渲染流程与性能优化详解(完整版) 一、现代浏览器渲染流程(详细说明) 1. 构建DOM树 浏览器接收到HTML文档后,会逐步解析并构建DOM(Document Object Model)树。具体过程如下: (…...
Java面试专项一-准备篇
一、企业简历筛选规则 一般企业的简历筛选流程:首先由HR先筛选一部分简历后,在将简历给到对应的项目负责人后再进行下一步的操作。 HR如何筛选简历 例如:Boss直聘(招聘方平台) 直接按照条件进行筛选 例如:…...
力扣-35.搜索插入位置
题目描述 给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引。如果目标值不存在于数组中,返回它将会被按顺序插入的位置。 请必须使用时间复杂度为 O(log n) 的算法。 class Solution {public int searchInsert(int[] nums, …...
JAVA后端开发——多租户
数据隔离是多租户系统中的核心概念,确保一个租户(在这个系统中可能是一个公司或一个独立的客户)的数据对其他租户是不可见的。在 RuoYi 框架(您当前项目所使用的基础框架)中,这通常是通过在数据表中增加一个…...
Linux离线(zip方式)安装docker
目录 基础信息操作系统信息docker信息 安装实例安装步骤示例 遇到的问题问题1:修改默认工作路径启动失败问题2 找不到对应组 基础信息 操作系统信息 OS版本:CentOS 7 64位 内核版本:3.10.0 相关命令: uname -rcat /etc/os-rele…...
springboot整合VUE之在线教育管理系统简介
可以学习到的技能 学会常用技术栈的使用 独立开发项目 学会前端的开发流程 学会后端的开发流程 学会数据库的设计 学会前后端接口调用方式 学会多模块之间的关联 学会数据的处理 适用人群 在校学生,小白用户,想学习知识的 有点基础,想要通过项…...
JavaScript 数据类型详解
JavaScript 数据类型详解 JavaScript 数据类型分为 原始类型(Primitive) 和 对象类型(Object) 两大类,共 8 种(ES11): 一、原始类型(7种) 1. undefined 定…...
