关于python中循环语句的小疑问

#想要实现如果当输入<0 程序还会继续要求输入而不是直接退出

while True:
    n=eval(input('请输入n的值:'))
    if n>0:
        s = 1
        i = n
        while i >= 1:
            s = s * i
            i -= 1
        print('{}!={}'.format(n, s))
    else:
        print('error!')
        continue  

不知道是不是和continue的位置有关系还是应该再加一个循环之类的

img

看了半天没看出问题,我自己测试了也没问题:

img

不知道你这个问题是否已经解决, 如果还没有解决的话:
  • 这有个类似的问题, 你可以参考下: https://ask.csdn.net/questions/7552403
  • 这篇博客也不错, 你可以看下Python如何使用Continue语句?用法示例
  • 除此之外, 这篇博客: Python实现定时任务的几种方法中的 使用字典方式配置调度器 部分也许能够解决你的问题, 你可以仔细阅读以下内容或者直接跳转源博客中阅读:

    其实就是以字典的形式指定参数,看一下例子就明白了。

    from pymongo import MongoClient
    from apscheduler.schedulers.blocking import BlockingScheduler
    from apscheduler.jobstores.memory import MemoryJobStore
    from apscheduler.jobstores.mongodb import MongoDBJobStore
    from apscheduler.executors.pool import ThreadPoolExecutor, ProcessPoolExecutor
    # MongoDB 参数
    host = '127.0.0.1'
    port = 27017
    client = MongoClient(host, port)
    # 输出时间
    def job():
        print("jon executed")
    
    # 存储方式配置
    jobstores = {
        'mongo': MongoDBJobStore(collection='job', database='test', client=client),
        'default': MemoryJobStore()
    }
    # 执行器配置
    executors = {
        'default': ThreadPoolExecutor(10),
        'processpool': ProcessPoolExecutor(3)
    }
    job_defaults = {
        'coalesce': False,
        'max_instances': 3
    }
    scheduler = BlockingScheduler(jobstores=jobstores, executors=executors, job_defaults=job_defaults)
    scheduler.add_job(job, 'interval', seconds=5, jobstore='mongo')
    scheduler.start()
    
  • 您还可以看一下 程序员研修院老师的Python零基础入门课程中的 跳出循环continue小节, 巩固相关知识点

如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^