python写完后打不开门_感觉自己python已经入门了,为什么还是没法用Python写好程序?...

主要是缺乏编程实践练习。在学习编程的过程中,只看不动手是学不会的,可以尝试自己编写一些简单的小程序,提高自己的编码能力。

下面的这个小案例,不看后面的代码,你能编写出来吗?

编程思路

创建一个空的列表,然后使用一个for循环,循环范围为1至自然数n,在每轮循环中,用循环的计数变量去除自然数n,如果自然数n能被计数变量整除,说明这个计数变量是自然数n的因数,把因数添加到列表。循环完成后,列表中的元素就是自然数n的所有因数。

找因数的算法用函数来实现,函数名称为factor,factor函数有一个参数,该参数为自然数n。当其它代码调用factor函数时,需要传入自然数n,函数执行完成后会返回一个列表,该列表的元素为自然数n的所有因数。

factor函数流程图

factor函数的代码

# 定义函数factor

def factor(n):

# 创建一个空的list

num_list = []

for i in range(1,n+1):

# 若n被i整除,i是n的因数

if n % i == 0:

# i添加到list

num_list.append(i)

return num_list

代码解读

factor函数的功能是找出自然数n的所有因数,自然数n在代码调用函数时传入。函数执行完成会返回一个列表,该列表的元素就是自然数n的因数。

在factor函数内部,会先创建一个空的num_list列表,用于存储自然数n的所有因数。然后使用range函数创建一个整数序列,该序列的范围为自然数1~n,for循环在该整数序列内循环,在每一轮循环中,判断自然数n能否被for循环的计数变量i整除,如果自然数n能被i整除,说明i是自然数n的因数,将计数变量i添加到num_list列表。

确定了找自然数n所有因数的函数,阿萌开始梳理编程任务的整体需求。

程序启动后,程序在Shell窗口输出提示信息“请输入一个自然数,输入quit可退出程序:”,学生输入一个自然数,程序找出该自然数的所有因数,并将所有因数输出到Shell窗口。程序再次输出“请输入一个自然数:”,等待学生的下次输入。

程序需要判断学生输入的是否是自然数,如果不是自然数,再判断是否是quit,若是quit退出程序,否则程序输出错误提示“输入错误,请输入一个自然数或者输入quit退出程序”。

程序流程图

在流程图中,使用了while循环,让程序一直处于运行状态,等待学生的输入。当学生输入quit时,调用break语句退出while循环,程序结束。

循环体内首先提示学生输入一个自然数,输入quit可退出程序。学生输入自然数后,程序需要验证学生输入的是否是自然数,若是自然数,调用factor函数找出该自然数的所有因数,并输出这些因数到Shell窗口。若不是自然数,程序需要再判断学生输入的是否是quit,若是quit就调用break语句退出循环,否则输出错误提示信息。

程序的输入与输出

序的输入是自然数n,可以使用input函数获取学生的输入,学生在输入的过程中,可能输入的不是自然数,因此程序需要有验证输入的机制,防止程序出现错误。

程序的输出是自然数n的所有因数,自然数n的因数存储到一个列表中,使用print函数可以直接输出列表的元素。

通过表格方式列出程序的输入和输出,是一种很好的程序设计方式。从表格中可以清晰看出程序需要哪些输入和哪些输出,以及输入输出的类型和方式。

程序完整代码

# 定义函数factor

def factor(n):

# 创建一个空的list

num_list = []

for i in range(1,n+1):

# 若n被i整除,i是n的因数

if n % i == 0:

# i添加到list

num_list.append(i)

return num_list

# 程序入口

if __name__ == '__main__':

while(True):

# 输入提示信息

num = input("请输入一个自然数,输入quit可退出程序:")

# 判断num是否全部是数字

if num.isdigit():

# 调用factor函数找出num的所有因数

print("%s的因数为:%s" % (num,factor(int(num))))

# 判断num是否等于quit,如果是quit跳出循环

elif num == "quit":

break;

# 输出错误信息提示

else:

print("输入错误,请输入一个自然数或者输入quit退出程序")

代码解读

使用while循环,并且设置循环条件为True,目的是让程序一直处于运行状态,随时等待学生的输入。

在这种情况下,程序需要提供一种程序退出机制,让学生来退出程序。这种退出机制就是学生可以输入quit字符串来退出程序。退出机制的实现就是在循环体内部判断学生输入的内容,如果输入的内容是quit,就调用break语句跳出while循环,程序的执行自然就结束了。

在while循环体内部,首先会提示学生输入一个自然数,或输入quit来退出程序,学生输入的内容被赋值给num变量。然后程序会判断num的内容是否是自然数,若是自然数就调用factor函数找出该自然数的所有因数,并输出这些因数。若不是自然数,再判断是否是quit,若是quit就调用break语句跳出循环,否则输出错误提示信息。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值