klandan 发表于 2024-10-15 22:47:39

求解哪里错了


import time
from timeit import main

def lovestory():

    for i in range(1, 52):

         print(' ' * (51 - i), end='')

         for j in range(1, 2 * i):

             print('*', end='')

             time.sleep(0.005)

         print()

    for i in range(51, 0, -1):

         print(' ' * (51 - i), end='')

         for j in range(1, 2 * i):

             print('*', end='')

             time.sleep(0.005)

             print()

    if __name__ == '__main__':

      lovestory()
#include<stdio.h>
#include<stdlib.h>
#include<windows.h>


int main(int argc,char *argv[]){
    float x,y,a;
   for(y=1.5;y>-1.5;y-=0.1){
      for(x=-1.5;x<1.5;x+=0.05){
            a=x*x+y*y-1;
            putchar(a*a*a-x*x*y*y*y<=0.0?'*':' ');
         }
         system("color 0c");
         putchar('\n');
      }
   printf("");
   printf("\n");
   return 0;
}


FishC 发表于 2024-10-15 22:47:54

你的Python代码出现了几处错误和结构问题,以下是针对这些问题的建议:

1. **缩进问题**:Python 对缩进非常敏感。你的 `if __name__ == '__main__': lovestory()` 这一部分缩进位置不正确,它应该与函数 `lovestory()` 平齐,因为这是一个模块的运行入口。

    修正代码:
    import time

    def lovestory():
      for i in range(1, 52):
            print(' ' * (51 - i), end='')
            for j in range(1, 2 * i):
                print('*', end='')
                time.sleep(0.005)
            print()

      for i in range(51, 0, -1):
            print(' ' * (51 - i), end='')
            for j in range(1, 2 * i):
                print('*', end='')
                time.sleep(0.005)
            print()

    if __name__ == '__main__':
      lovestory()

2. **去掉不相关的内容**:你的代码里面含有 C 语言代码的片段,这可能是从其他地方粘贴过来的,建议将其删除,以免混淆。

如果这些问题解决后仍有问题,请检查你的运行环境是否与 Python 脚本相匹配,确保一切正常。

以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。

smallwh 发表于 2024-10-18 19:19:20

主要是一些缩进问题。其次,如果 print 后跟有 time.sleep,需要传入 flush=True 的参数,保证每次输出的内容能及时更新到屏幕上(刷新缓冲区),避免被 sleep 阻断。最后,请保证有一个足够宽的输出窗口,避免一行输出不开引起换行。
修改后如下:
import time
from timeit import main #该模块没有用到,可以删除

def lovestory():
    for i in range(1, 52):
      print(' ' * (51 - i), end='')
      for j in range(1, 2 * i):
            print('*', end='',flush=True)
            time.sleep(0.005)
      print()

    for i in range(51, 0, -1):
      print(' ' * (51 - i), end='')
      for j in range(1, 2 * i):
            print('*', end='',flush=True)
            time.sleep(0.005)
      print()

if __name__ == '__main__':
    lovestory()

在原来这段代码的下面还有一段 C 语言代码,它是不能包含在 python 代码里面的。你可以尝试用 C 语言的编译器编译并执行。
页: [1]
查看完整版本: 求解哪里错了