返回参数的所有因子,列表形式

  • 什么叫因子
  • 定义一个函数:
  • 定义一个数组
  • 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)

python 如何计算因子IC 因子函数python_数组