想学py的小白 发表于 2023-4-4 16:30:24

输出 1~100 之间不能被 7 整除的数, 每行输出 10 个数字, 要求应用字符 串格式...

j=0
for i in range(1, 101):#循环
    if i % 7 == 0: #如果能整除7,则再执行循环
      continue
    elif:    #如果大于0并且不能被7整除,输出;
      print("{:3d}".format(i), end=' ')#??????????????希望大佬解释一下这一步
      j += 1   #j用来控制每行输出是否是10个
      if j % 10 == 0:
            print('\n')
            j = 0
    else:
         continue;

最后代码无法运行,elif那一步出错了,请问是哪里错了呢?

isdkz 发表于 2023-4-4 16:36:01

代码中的错误是在elif语句那里。elif后面需要跟一个条件,

但是在你的代码中,elif后面没有条件。因为这里其实不需要elif,你可以使用else语句替换掉它。下面是修改后的代码:

j = 0
for i in range(1, 101):# 循环
    if i % 7 == 0:# 如果能整除7,则再执行循环
      continue
    else:# 如果不能被7整除,输出;
      print("{:3d}".format(i), end=' ')# 使用格式化字符串,将数字按照三位数的宽度输出,并用空格作为分隔符
      j += 1# j用来控制每行输出是否是10个
      if j % 10 == 0:
            print('\n')
            j = 0

关于"{:3d}".format(i)的解释:这是字符串格式化的方法,{:3d}表示一个占位符,其中的3表示宽度为3个字符,

d表示输出的是一个整数。.format(i)会将占位符替换为变量i的值。end=' '表示每次输出一个数字后,不换行,而是用一个空格分隔。
页: [1]
查看完整版本: 输出 1~100 之间不能被 7 整除的数, 每行输出 10 个数字, 要求应用字符 串格式...