返回参数的所有因子,列表形式
- 什么叫因子
- 定义一个函数:
- 定义一个数组
- abs()函数获取绝对值,直接加“-”得到这个数值的负数
- range()函数左包含,右不包含,注意“+1”
- 在数组的最后插入元素:
- 如何给数组去重
- 脚本运行的其他问题
- 我的脚本
什么叫因子
整数a除以整数b(b≠0)的商正好是整数而没有余数,我们就说b是a的因子。0不是0的因子。
例如,8=18,24,42,81,因子是1,2,4,8。
整数包含正整数,负整数和0。
如果是-8,则结果是-1,-2,-4,-8,1,2,4,8。
0的因子是除了0以外的所有整数。
定义一个函数:
def 函数名(参数):
内容
return 返回值
注意:不要忘记冒号哦~~,不论是定义函数还是if(elif)、else语句、for循环等等都要记得加“:”并且注意加内容的时候要注意缩进!!
函数的返回值:返回布尔值:return False ,return True
返回字符串:return ‘字符串内容’
定义一个数组
数组名 = []
abs()函数获取绝对值,直接加“-”得到这个数值的负数
range()函数左包含,右不包含,注意“+1”
在数组的最后插入元素:
数组名.append(元素)
如何给数组去重
定义一个新数组,把原数组的元素插入到新数组,插入之前判断数组中是否已经存在,存在则不插入。
for i in 原数组名称:
if i not in 新数组名称:
新数组名.append(i)
return 新数组名
脚本运行的其他问题
# encoding: utf-8
注释不加这行有时候会报错编码格式不对;报错SyntaxError: Non-ASCII character ‘\xe6’
2、执行脚本的时候报“IndentationError: unindent does not match any outer indentation level" 错误,遇到这个错误,是因为代码对齐中,混用了TAB和空格。
3、通过raw_input获取到参数后,print函数的结果时,函数名(参数)不要忘记传参。
print "The factor of this number is: ", number2(a)
我的脚本
# encoding: utf-8
#整数a除以整数b(b≠0)的商正好是整数而没有余数,我们就说b是a的因子。0不是0的因子。
#1的因子是其本身,0的因子是除了0以外的所有整数
def number2(a):
#定义一个数组用来保存最后的因子结果
alist = []
blist = []
clist = []
dlist = []
if a == 0:
#python函数返回字符串
return 'all integers except zero'
#abs()函数会返回数字的绝对值
elif a < 0:
b = abs(a)
for i in range(1,b+1):
if b % i == 0:
#向一个数组的最后插入一个数
alist.append(i)
alist.append(-i)
#给数组去重,创建一个新数组,把原数组的元素逐个添加到新数组中,如果元素已经在目标数组中(说明此元素已经重复),则不添加。
for j in alist:
if j not in blist:
blist.append(j)
#python函数返回一个数组
return blist
else:
for m in range(1,a+1):
if a % m == 0:
clist.append(m)
for n in clist:
if n not in dlist:
dlist.append(n)
return dlist
#得到参数值,并且转化为int类型
a = int(raw_input("please input your number:"))
#输出函数结果,调用函数给函数传参数
print "The factor of this number is: ", number2(a)