你是否经常对程序出错感到困扰呢?follow me!

本文讨论了程序代码的严谨性,包括关键字的正确使用格式及输入输出数据类型的重要性,并通过求1~100内素数之和的例子展示了逻辑错误的影响。强调了细节掌握和功能逻辑的重要性。

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

关于程序代码严谨性的探索

细节掌握是基础

对关键字的使用:

1.对关键字的使用格式要正确:

常常红标(错误时系统以红标显示错误)出现,大都是格式错误,
例如:

x=5
for x>0
    print("True")
else
    print("False")
    

显然是if后未用“:”以正确使用if,由这个简单实例可以说明对关键词的格式要到位。

2.对于关键字的输入输出知道:

主要是输入数据类型和输出数据类型:
input():是将用户的输入数据一律转化成字符(串),此时用来匹配整型的使用就不可避免的出错;
eval(str):将字符(str)去掉引号成数字:
IDLE
str():是将()中的加上引号变成字符串输出
#这三个关键词经常关联使用,以功能简便为基准
如果没掌握,就会经常出现:
这是一次错误范例
窥一斑而知全豹。

功能逻辑是关键

功能逻辑错误也属于程序错误——这是部分人常常对自己编写的代码叹息的理由。

来练练手

1~100内素数相加的问题

原理:用循环2~100之间的数,然后再在除1和其本身的数,进行取余看是否为零,最后在循环中完成相加,最后输出 和。
这是错误范例:

这是第一次循环错误:

for i in range(2,100):
	s=0
    c=0
    for n in range(2,i):
        c=i%n
        if c==0:
            break
        else:    #这说明如果不是相除为零就会执行s+=i
            s+=i
print(s)'''

's=0’放入了for循环里,导致每次刷新s,使之为零

这是第二个循环中逻辑错误:
原意是想着对i判断其有无除1和i本身后的因子,一旦有i%n=0,就break停止循环,否则输出i。

s=0 
for i in range(2,100):
    c=0
    for n in range(2,i):
        c=i%n
        if c==0:
            break
        else:    #这说明如果不是相除后余数为零就会执行s+=i
            s+=i
print(s)'''

结果是:66705
这与答案差的莫不是十万八千里,这里就说明逻辑错误,是由于如果i%n!=0时就会持续执行s+=i,就造成出错了。

通过上面,就展示了——如果出错,这就需要反复思考你的逻辑,看看哪里出错,需要有判别和怀疑思想。
正解:
1.

s=0 
for i in range(2,100):
    for n in range(2,i):
        c=i%n
        if c==0:
            i=0#使i无效化
    s+=i'''这不属于for语句,不要缩进,否则就会出错,此时与
    错解二一样了,可停下来揣摩一下'''
print(s)

2.

def is_prime(n):
    for i in range(2,n):
        if n%i == 0:
            return False
    return True
sum = 0
for i in range(2,100):
    if is_prime(i):
        sum += i
print(sum)

从以上方面,你是否有收获呢?
请留下你的评论

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值