《Python数学编程》练习-day006:编写一个计算程序(1)
提示→《Python数学编程》练习系列往期笔记,如下 👇:
Day1:《Python数学编程》练习-day001:斐波那契序列 Day2:《Python数学编程》练习-day002:分数操作 Day3:《Python数学编程》练习-day003:基本数学运算 Day4:《Python书序编程》练习-day004:复数Day5:《Python书序编程》练习-day005:数值输入
提示:菜鸟一枚,此系列文主要是用于我自己的学习记录,如果能对您有帮助,我荣幸至极。
文章目录
- 《Python数学编程》练习-day006:编写一个计算程序(1)
- 前言
- 一、第一个数学计算程序:计算整数因子
- 二、程序
- 1.计算整数因子的程序:
- 2.程序分析
- 总结
前言
前面学习了Python中整数、分数、小数以及复数如何实现和输入,以及Python中数学基本运算的实现,下面就运用这些知识,用Python编写一个数学计算程序
提示:以下是本篇文章正文内容,下面案例可供参考
一、第一个数学计算程序:计算整数因子
什么是因子?
当非零整数a除另一个整数b,余数为0时,a称为b的因子。
(以此定义进行程序编写)
二、程序
1.计算整数因子的程序:
代码如下:
def factors(b):
for i in range(1, b+1):
if b % i == 0:
print(i)
if __name__ == '__main__':
b = input('your number please:')
b = float(b)
if b > 0 and b.is_integer():
factors(int(b))
else:
print('please enter a positive integer')
运行:
结果:
>>> your number please:2021
1
43
47
2021
2.程序分析
‘’代码1‘’:
def factors(b):
for i in range(1, b+1):
if b % i == 0:
print(i)
‘’代码 1‘ ’这部分代码中factors()函数定义了一个for循环,该循环使用range()函数对1和输入的整数之间的每个整数迭代一次,然后输出所有符合条件的i,即是余数为0对应的i。
【补充:迭代、迭代器】
【补充:range()函数:Python3 range() 函数返回的是一个可迭代对象(类型是对象),而不是列表类型, 所以打印的时候不会打印列表。】
【补充:range()函数的语法】:
函数语法:
range(stop)
range(start, stop[, step])
参数说明:
start: 计数从 start 开始。默认是从 0 开始。例如range(5)等价于range(0, 5);
stop: 计数到 stop 结束,但不包括 stop。例如:range(0, 5) 是[0, 1, 2, 3, 4]没有5
step:步长,默认为1。例如:range(0, 5) 等价于 range(0, 5, 1)
‘’代码2‘’:
if __name__ == '__main__':
b = input('your number please:')
b = float(b)
if b > 0 and b.is_integer():
factors(int(b))
else:
print('please enter a positive integer')
‘’代码 2‘ ’这部分主要的作用是检查输入的有效性——输入的是否是整数,来避免无效输入,用到的主要函数是float的 is_integer() 方法 。
is_integer()函数:Returns True if the float instance is finite with integral value, and False otherwise.
语法:
float.is_integer()
总结
1.函数定义
2.for循环
3.range()函数
4.float的is_integer()方法,判断浮点数是否是整数。
5.if __name__ == __'main__':
if __name__ == '__main__':
# Do something
func() # func()是一个我们在程序中定义的函数
这段代码确保块中的语句只有当程序自己运行时才被执行。
当程序运行时,特殊变量__name__
自动设置为__main__
,所以if条件的结果为True,程序将调用func()函数。除了这个功能外,还有其他的功能,后续会继续学习(很遗憾,还没找到一个把这个代码块逻辑讲的让人一听就懂的文章)。