美文网首页
20210602 py 翻转数字&打印素数(待纠错)

20210602 py 翻转数字&打印素数(待纠错)

作者: DZhhho | 来源:发表于2021-06-03 20:44 被阅读0次

20210602 start

5字回文——% //方法

break continue 循环跳出 原理or标志点是什么

梳理这几种高级数据类型的  循环、增加、删除等操作,用 表格方式 列清楚

再看看 打印符号怎么换行(print('i\n')?

案例——翻转数字

#翻转数字

# 地板除与取余法结合

#跟几位数没关系,都能reverse过来,其实本题并不是真正

#【回文】,其实是reverse的另类练习——将循环、地板除、取余结合

a=int(input('sth<5\n'))

while a!=0:    #剩下个位数时,余数能输出,地板除=0

    print(a%10,end="")  # 空字符,""

    a=a//10

#妈呀,想通了之后简直简单得要si

'''

# 1错误代码——一开始也可以,发现余数是0的时候就不对

while a%10!=0:

    print(a%10,end="")

    a=a//10

#错误2

while a//10!=0: 

#最后个位数因为地板除得0,所以不能输出

    print(a%10,end="")

    a=a//10

'''

#就这么两行代码就完事了。。。

收获

想明白了之后——主要是 真正找到规律了之后——其实非常简单——几行代码

但是这里还是有一些陷阱的——就是条件判断这里,% // !=0 ,当举例中没有0时,好像没有问题,但其实是有问题的——找到真正对的方法

方法想明白后,其实几个字不是限制,而且也不是严格的【回文】,而是【reverse】——原来是我一直记错,人家就叫【翻转数字】

案例——打印素数

#打印素数

# 思路1— 如果一个数能被1、比自己小的数、自己整除,就是素数

20210602也不对,1不应该出现的——检查错误

end=int(input('some num\n'))

for i in range(1,end+1): # 注意终点是否包含

    c=0 # 注意计数器何时清零,是用来判断一个数内部的,所以数字更新-计数器更新

    for j in range(0,i): # 这段循环是基于——一个数能否被比自己小的数整除,若能 则非素数

        if  i%(j+1)==0:

            c+=1

    if c<3: # 接着j的循环,c大小来断定是否能被其他数字整除

        print('{}\n'.format(i))

        # print(i,'\n') 两种都可以,这种简洁些

# 思路2——自身和1不用算,被中间数能整除,就不是素数

# 20210602不对10以内素数,3579,9不应在其中——找错误点

a=int(input('sth\n'))

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

    for j in range(2,i): # 1和本身都不需要判断了,减少预算

        if i%j==0: # 能被整除 不符合 直接跳出

            break

        else:

            print(i)

            break  # 很关键,没有能整除的,就是素数,打出,跳出循环

思路3——左右区间(天地)——没太明白原理——再琢磨

收获

print('{}\n'.format(i))——当需要打印i时,又想再换行时,目前通过{}.format 方法可以 i\n不行

print(i,'\n')——也可以 打出同样效果——这种可能更朴素一些,'\n'单纯就是换行,前面可以直接放要打印的参数

进一步明确了 i和j 各司其职,各自关系,比大学时候的内部嵌套明白了很多——现在想来当时还是没学透

20210602 end

收获

reverse——翻转数字怎么做——除了reverse函数偷懒做法,再底层些——// %地板除和取余相结合的方法

找到规律,想明白原理后,其实问题就变简单了,几行代码就解决了

以为解决了的问题,有时候不过是没有遇到全例,就是举例验证得有些特殊,导致误以为自己对了

注意00 数字中间这类例子,验证一些内容比较有用

每天的思路都不一样,很难想的事情过一天可能才思敏捷,以前明白的方法现在反而会想不出甚至不能理解——所以多看、开阔思路,多接触,多反思——这样能帮助自己学透,而不是碰巧就做对了,做会了

素数练习 训练了 循环嵌套,比大学时候理解得透彻了一些,但也许还不够透彻到底哈哈,而且几种方法相互验证结果不对,在哪里出现问题还需要进一步比较判断

今日目标

5字回文——% //方法

break continue 循环跳出 原理or标志点是什么——在练习中接触了一点,但是讲得比较模糊,定义不够清晰

梳理这几种高级数据类型的  循环、增加、删除等操作,用 表格方式 列清楚

再看看 打印符号怎么换行(print('i\n')?

接下来

打印素数,方法纠错,(天地)思路再理解

break continue 循环跳出——这回应该要看到了——清晰界定

相关文章

网友评论

      本文标题:20210602 py 翻转数字&打印素数(待纠错)

      本文链接:https://www.haomeiwen.com/subject/oneasltx.html