华为机试题:HJ107 求解立方根(python)

本文详细介绍了Python3中的基础操作,包括input()和list(input())的使用,print()的打印功能,while循环的逻辑,abs()和fabs()的区别,以及round()函数的四舍五入规则。此外,还讲解了float()类型转换和算术运算符的应用。内容涵盖了从输入输出到基本计算的重要概念。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

(1)题目描述

在这里插入图片描述

(2)Python3实现

n = float(input())
x = 1
while abs(x**3 - n) > 1e-7:
	# 立方根公式
    x = x - (x**3 - n) / (3*x**2)		
print(round(x, 1))

(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、while循环 —— 用于在某个条件为真(True)时重复执行一段代码块。

while condition:
    # 在condition条件为真时,该代码块执行。
    
"""
备注:condition 是一个布尔表达式。
		当其值为 True 时,循环将继续执行。
		当条件为 False 时,循环将停止执行并退出。
备注:while 循环的代码块被缩进,通常用四个空格或一个制表符来缩进,以表示它们属于循环体。
"""

举例:使用 while 循环来打印从1到3的数字。

count = 1
print("打印结果:")
while count <= 3:
    print(count)
    count += 1

"""
打印结果:
1
2
3
"""

4、abs()与fabs()的区别(返回输入x的绝对值)

abs()fabs()
abs()是python的内置函数fabs()是math模块中的函数
适用于float型、int型、复数类型只适用于float型、int型
(若输入为整型,则返回整型)若输入为浮点型或复数类型,则返回浮点型。(只返回浮点值)若输入为整型,则自动保留一个小数。
import math

# 输入整型
print(abs(10))						# 10
print(math.fabs(10))				# 10.0

# 输入浮点型
print(abs(10.125))					# 10.125
print(math.fabs(10.125))			# 10.125

# 输入复数类型
print(abs(10.125+12j))				# 15.62850460696736
# print(math.fabs(10.125+12j))		# TypeError: can't convert complex to float

5、round():返回浮点数x的四舍五入值。可指定保留几位小数,只对浮点数有效。

函数说明:round(x, n)
输入参数:

  • x:浮点数。
  • n:保留小数点的位数。
    备注:若为整数,则即使指定了保留小数点的位数,也直接输出整数。

四舍五入的规则:
(1)要求保留位数的后一位 <=4,则进位。如:round(5.214,2),结果为5.21。
(2)要求保留位数的后一位 =5,且该位数后面没有数字,则不进位,如:round(5.215, 2),结果为5.21。
(3)要求保留位数的后一位 =5,且该位数后面有数字,则进位,如:round(5.2151, 2),结果为5.22。
(4)要求保留位数的后一位 >=6,则进位。如:round(5.216,2),结果为5.22。

print(round(5, 2))			# 5				# 整数
print(round(5.214, 2))		# 5.21			# <=4,则进位
print(round(5.215, 2))		# 5.21			# =5,且该位数后面没有数字,则不进位
print(round(5.2151, 2))		# 5.22			# =5,且该位数后面有数字,则进位
print(round(5.216, 2))		# 5.22			# >=6,则进位

6、浮点型float() :将数字、字符串或布尔值转化为浮点数(强转) —— 只支持十进制输入和输出。

函数说明:float(object)
输入参数:

  • object:整数、字符串、布尔值(若没有输入参数,则float=0.0
    备注1:当非十进制的字符串作为参数时,若超出数字字符时会报错。比如:float('2a1')
    备注2:不能进行不同进制之间的转换,否则系统报错。与int()完全不同。
print('空输入参数', float())
print('整数转换为浮点数', float(5))
print('浮点数转换为浮点数', float(-5.5))
print('字符串转换为浮点数', float('-5.5'))
print('布尔值转换为浮点数', float(True))

'''
空输入参数 0.0
整数转换为浮点数 5.0
浮点数转换为浮点数 -5.5
字符串转换为浮点数 -5.5
布尔值转换为浮点数 1.0
'''

7、算术运算符

序列运算符名称说明举例结果数据类型
【1】+(1)对于数字:求和。c = 1 + 2c = 3int型
【1】+(2)对于序列类型(如:字符串):拼接操作str = 'a' + 'b'str = 'ab'字符串型
2-求差值c = 1 - 2c = -1int型
【3】*(1)对于数字:求积。c = 2 * 3c = 6int型
【3】*(2)对于序列类型(如:字符串):重复操作str = 'a' * 3str = 'aaa'字符串型
4/求商(两个整数或浮点数相除,结果为float型)c = 3 / 2c = 1.5浮点型
5%取余求余数c = 3 % 2c = 1int型
6**求次幂c = 3 ** 2c = 9int型
【7】//地板除法向下取整。(1)两个整数相除,结果为int型c = 3 // 2c = 1int型
【7】//地板除法向下取整。(2)除数或被除数为float类型,则结果为float类型。c = 3 // 2.0c = 1.0浮点型
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

胖墩会武术

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值