一个python编程的问题

img


题目是 编写程序找到并输出一个特殊的四位数,它的四倍正好是它数字的逆序,比如4✖️abcd🟰dcba
1•为什么这个不用设置p的变量,就是开头p🟰0
2•为什么abcd不在前面写,而是在循环里面写

1、开头的p应该就是定义一下变量p,如果要求题目所求,开头这个p可以不定义,直接使用for循环里的p即可;

2、abcd在for循环里面写,是依次提取当前四位数的个十百千数位数字,然后判断是否是所求的数字,如果在前面写,则提取的是0,不是题目所求,所以需要在for循环里面写。

测试如下:


p=0  # 这个不设置也可以


# for循环遍历1000到9999之间所有的数,即遍历所有的四位数
for p in range(1000,10000):

    # 从p中依次提取千、百、十、个位数字
    a=p//1000
    b=p//100%10
    c=p//10%10
    d=p%10

    # 如果当前的四位数 等于其 逆序数的四分之一,则打印这个数
    # 并退出循环
    if p==(a+b*10+c*100+d*1000)/4:
        print(p)
        break

img

python语法就这样,需要使用变量的时候就直接赋值,不需要提前声明,也不需要定义类型,你传啥就是啥。
慢慢习惯就好了,这个和C语言还有java啥的不一样。

  • 你可以参考下这个问题的回答, 看看是否对你有帮助, 链接: https://ask.csdn.net/questions/7668661
  • 你也可以参考下这篇文章:python练习3:输入分数,输出对应的ABCD级别
  • 除此之外, 这篇博客: Python基础语法之格式化输出与基于Python格式化输出的实例小程序中的 实例2、数值格式化为不同的形式 部分也许能够解决你的问题, 你可以仔细阅读以下内容或跳转源博客中阅读:
  • 在实际开发中,数值类型有多种显示需求,比如货币形式、百分比形式等,使用 format() 方法可以将数值格式化为不同的形式。

    def func2():
        # 以货币形式显示
        print("货币形式:{:,d}".format(1000000))
        # 科学计数法表示
        print("科学计数法:{:E}".format(1200.12))
        # 以十六进制表示
        print("100的十六进制:{:#x}".format(100))
        # 输出百分比形式
        print("0.01的百分比表示:{:.0%}".format(0.01))
    
    if __name__ == '__main__':
        # func1()
        func2()
    
    • 输出结果为:
    货币形式:1,000,000
    科学计数法:1.200120E+03
    100的十六进制:0x64
    0.01的百分比表示:1%