关于程序代码严谨性的探索
细节掌握是基础
对关键字的使用:
1.对关键字的使用格式要正确:
常常红标(错误时系统以红标显示错误)出现,大都是格式错误,
例如:
x=5
for x>0
print("True")
else
print("False")
显然是if后未用“:”以正确使用if,由这个简单实例可以说明对关键词的格式要到位。
2.对于关键字的输入输出知道:
主要是输入数据类型和输出数据类型:
input():是将用户的输入数据一律转化成字符(串),此时用来匹配整型的使用就不可避免的出错;
eval(str):将字符(str)去掉引号成数字:
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)
从以上方面,你是否有收获呢?
请留下你的评论