美文网首页
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