python 使用turtle显示no module named turtle

img


python 使用turtle显示no module named turtle

【若有帮助,望给个采纳,谢谢】
如果你在 Python 中使用 turtle 的时候遇到了 No module named 'turtle' 错误,很可能是因为你的 Python 环境没有安装相关的依赖。

如果你使用的是 Python 2.x 版本,通常 turtle 是自带的库,不需要额外安装。

如果你使用的是 Python 3.x 版本,则需要先安装 turtle 库,才能正常使用。你可以使用以下命令来安装 turtle:

在 Linux 和 macOS 上:

sudo apt-get install python3-tk

在 Windows 上:

你可以参考以下步骤来安装 turtle:

打开 CMD 命令行工具。

使用以下命令来安装 turtle 库:

pip install turtle

在python3.7.9下,turtle包是可以直接引入的,不需要安装。
但是你报错了: no module named turtle

这个错误信息确定地指出你没有turtle包,可以试试以下的情况:

  1. 是不是你把turtle包打错了,有时候输入法或者编码设置可能会导致看起来是正确的,实际识别起来并不正确。
  2. 你python版本是多少,不同版本可能有不同表现,特别如果你是python2的话。
  3. 运行pip install turtle, 重新安装这个包,可能也就解决问题了。
  • 这个问题的回答你可以参考下: https://ask.csdn.net/questions/7491646
  • 这篇博客也不错, 你可以看下python turtle库的使用
  • 你还可以看下python参考手册中的 python-turtle --- 海龟绘图
  • 除此之外, 这篇博客: python二级操作题与分析(10)中的 代码模板 | # 你的代码import turtle | import turtle 部分也许能够解决你的问题, 你可以仔细阅读以下内容或跳转源博客中阅读:
  • d = 0 | d = 0for i in range(1): | for i in range(1):
    turtle.fd(2) | turtle.fd(100)
    d = 3 | d = (i + 100) * 100
    turtle.seth(d) | turtle.seth(d)
    则在提交代码页面输入:
    print(‘1’, ‘100’, ‘(i + 100) * 100’)
    提交后即可以查看得分

    注:如果有运算符,请在运算符两侧加上空格
    习题讲解

    答案:
    import turtle
    d = 0
    k = 1
    for j in range(10):
       for i in range(4):
           turtle.fd(k)
           d += 91
           turtle.seth(d)
           k += 2
     turtle.done()
    

    要点:

    1. 降低了难度,让填写的都是最简单的
      5.202
      描述
      参照代码模板完善代码,实现下述功能,可以修改其它代码。附件文件 question.txt 中有一道 Python 选择题,第 1 行的第 1 个数据为题号,后续的 4 行是 4 个选项。示例内容如下:
    2. 以下关于字典类型的描述,错误的是:
      A. 字典类型中的数据可以进行分片和合并操作
      B. 字典类型是一种无序的对象集合,通过键来存取
      C. 字典类型可以在原来的变量上增加或缩短
      D. 字典类型可以包含列表和其他数据类型,支持嵌套的字典

    读取其中的内容,提取题干和四个选项的内容,利用 jieba 分词并统计出现频率最高的 3 个词,其中要删除以下的常用字和符号“的 ,::可以是和中以下B”,作为该题目的主题标签,显示输出在屏幕上。

    输入输出示例
    输入 输出
    示例 1 从文件 question.txt 中读取所有内容 第3题的主题是:
    类型:5
    集合:2
    组合:2
    习题讲解

    答案:
    import jieba
    fi = open("question.txt",'r')
    con = ''
    num = 0
    for l in fi:
    l=l.replace('\n','').strip().split('.')		//返回字符串中的 old(旧字符串) 替换成 new(新字符串)后生成的新字符串,
    //Python strip() 方法用于移除字符串头尾指定的字符(默认为空格)。
        # print(l)
        try:
            ft = eval(l[0])
        except:
            pass
        else:
            num = ft
    con += l[1]
    print('第{}题的主题是:'.format(num))
    conls = jieba.lcut(con)		//直接返回列表
    dict = {}
    for word in conls:
        dict[word] = dict.get(word, 0) + 1
    dictls = list(dict.items())
    dictls.sort(key = lambda x:x[1], reverse = True)		//按照第二个元素排序,倒叙排序
    k = 0
    for it in dictls:
        if it[0] in '的 ,::可以是和中以下B':
            continue
        else:
            if k == 3:
                break
            else:
                print('{}:{}'.format(it[0],it[1]))
                k += 1
    fi.close()
     
    

    要点:

    1. 导入jieba库,使用lcut分词,返回列表conls
    2. 打开文件,读文件,关闭文件
    3. 按行从文件里读,每一行是一个字符串,用strip和split处理成列表,因为要识别题号,还要提取题目和选项的内容,所以要按照’.'分隔来提取,分别返回题号和选项号作为列表l的第0个字段,后面的内容是列表l的第一个字段;
    4. 为了识别题号,要利用eval,并逆向利用try-except结构捕捉第一个字段是整数的字段,把题号提取出来放到num里面,把其他的内容都用字符串加法,拼成一个大字符串con
    5. 给出第一句显示:print(‘第{}题的主题是:’.format(num))
    6. 接下来处理con,提取整个题干的主题词:
    7. 用jieba分词,然后用字典dict来保存没个词出现的次数。一种惯用法是for word in conls:
      dict[word] = dict.get(word, 0) + 1
      8.统计出来的词以及词频,需要排序找到最大三个词频,此时需要把字典的键值对items()提取出来形成列表dictls,并利用列表排序和lambda函数。得到排好序的dictls
      9.显示的时候,遍历字典的每个键,要避开那些没有意义的词,题目里给出了剔除列表,拿过来判断一下,如果是没用的词,就直接跳过,循环下一个,用continue;
    8. 如果是有意义的词,题目要求显示三个最高词频的词,因为中间有跳过的词,不能直接只循环排序靠前的3个词。要对显示了的词做计数,计够三个,就中断循环,所以要用break;
    9. 这里用了嵌套的分支结构,在第一个分支里是有意义的词,在第二个分支里是计数不到三个,才做显示输出的语句,显示完了,要把计数器k加一。
      12.程序最后记着关闭文件。
      6.301

    描述
    老王的血压有些高,医生让家属给老王测血压。老王的女儿记录了一段时间的血压测量值,在文件 xueyajilu.txt 中,内容示例如下:
    2018/7/2 6:00,140,82,136,90,69
    2018/7/2 15:28,154,88,155,85,63
    2018/7/3 6:30,131,82,139,74,61
    2018/7/3 16:49,145,84,139,85,73
    2018/7/4 5:03,152,87,131,85,63
    文件内各部分含义如下:
    测量时间,左臂高压,左臂低压,右臂高压,右臂低压,心率

    参照代码模板完善代码,实现下述功能,可以修改给定代码。
    (1)使用字典和列表类型进行数据分析,获取老王的
    • 左臂和右臂的血压平均值
    • 左臂和右臂的高压最高值、低压最高值
    • 左臂和右臂的高/低压差平均值
    • 心率的平均值
    给出左臂和右臂血压情况的对比表,输出到屏幕上,请注意每行三列对齐。示例如下:

    (2)上述显示的五个项目,如果左臂有大于 50% 的项目高于右臂,则输出“结论:左臂血压偏高”;如果等于 50% 的项目高于右臂,则输出“结论:左臂血压与右臂血压相当”;如果小于 50% 的项目高于右臂,则输出“结论:右臂血压偏高”。示例如下:
    结论:左臂血压偏高, 心率的平均值为66
    (注意:此处为格式示例,实际数据与此不同)

    输入输出示例

    输入	输出
    

    示例 1 读取文件 xueyajilu.txt 内容
    结论:左臂血压偏高, 心率的平均值为66
    习题讲解

    答案:
    fi = open("xueyajilu.txt",'r')
    jl = [[],[],[],[],[]]   # 1:zb_h, zb_l,yb_h,yb_l
    zyc = []
    yyc = []
    xl  = []
    for l in fi:
        lls=l.replace('\n','').strip().split(',')
        for i in range(1,5):
            jl[i].append(eval(lls[i]))
        zyc.append(eval(lls[1])-eval(lls[2]))
        yyc.append(eval(lls[3])-eval(lls[4]))
        xl.append(eval(lls[5]))
    fi.close()
    
    cnt = len(xl)
    res = []
    res.append(list(("高压最大值",max(jl[1]),max(jl[3]))))
    res.append(list(("低压最大值",max(jl[2]),max(jl[4]))))
    res.append(list(("压差平均值",sum(zyc)//cnt,sum(yyc)//cnt)))
    res.append(list(("高压平均值",sum(jl[1])//cnt,sum(jl[3])//cnt)))
    res.append(list(("低压平均值",sum(jl[2])//cnt,sum(jl[4])//cnt)))
    res.append(list(("心率平均值",sum(xl)//cnt,0)))
    
    zbg = 0
    ybg = 0
    print('{:<10}{:<10}{:<10}'.format("对比项", "左臂", "右臂"))
    for r in range(len(res)-1):
        print('{:<10}{:<10}{:<10}'.format(res[r][0],res[r][1],res[r][2]))
        if res[r][1]> res[r][2]:
            zbg += 1
        else:
            ybg += 1
    if zbg > ybg:
    print('结论:左臂血压偏高',end ='')
    elif zbg == ybg:
    print('结论:左臂血压与右臂血压相当',end ='')
    else:
    print('结论:右臂血压偏高',end ='')
    print(', 心率的平均值为{}'.format(res[5][1]))
    
    

    输出结果:

    对比项 左臂 右臂
    高压最大值 163 155
    低压最大值 93 90
    压差平均值 61 57
    高压平均值 146 140
    低压平均值 85 82
    结论:左臂血压偏高, 心率的平均值为66

    要点:

    1. 这道题的关键问题是解决对行数据按照列的方式来处理
      2.参考答案给出的是一般思路,把文件里读出来的数据分别按列的方式,拷贝到一维列表中去,对一维列表进行各种max,min,sum,len操作
      4.数据处理的逻辑并不复杂,这里不赘述。
      5.其次要解决的问题,是当列数有些多的时候,程序看起来很冗余,需要做一些优化合并;
      6.答案里给出的方案是前四个计算公式类似的,放到一个二维列表里,加个循环结构,就可以把四条语句缩成一条。
      7.第三个问题,显示输出要求像表格一样输出,又要比较高效率,就引入了一个二维列表,把要输出的行头和内容,变成列表,再加到二维列表中去
      8.最后的显示就变得很容易,一个循环就搞定了。
      9.最后的问题,是要对输出的二维表格数据作统计、比对、下结论。比较好的方法是输出的时候,顺便做计数;
    2. 显示输出结论的时候,遇到一个小问题,要在做比对后的不同的结论后面,追加一条相同的心率的平均值,还不能换行;解决的方法就是用end=’’,然后在最后加一句print心率的结果。
    3. 当然可以在每条结论的后面,都重复的写一句心率的结果,虽然最后的结果是一样的,但代码有冗余。
      如果把咱们写程序,比喻成女娲造人,冗余的程序就像胖子,而高效简洁的程序就像美女,咱们还是要追求造出美女,而不是胖子
  • 您还可以看一下 龙豪杰老师的Python网络爬虫课程中的 turtle绘制图形分析小节, 巩固相关知识点
  • 以下回答由chatgpt基于相关博客总结生成:

    回答:根据参考资料,Turtle模块是Python中的一个绘图模块,用于绘制各种简单的形状和图形。如果在Python中调用Turtle模块时出现“no module named turtle”这个错误,可能是因为Turtle库没有被正确安装或者没有在Python环境中正确配置。

    具体解决方案如下: 1. 确认Turtle库是否已经被正确安装,可以通过在命令行窗口中输入以下命令来检查:

    pip list
    

    该命令可以列出当前环境下已安装的Python库,如果Turtle库没有列出,说明它没有被安装。可以通过以下命令来安装Turtle库:

    pip install turtle
    
    1. 确认Turtle库是否已经被正确配置。在Python中调用Turtle模块时,需要先导入Turtle模块,可以通过以下命令来导入Turtle模块:
    import turtle
    

    如果一切正常,就可以开始使用Turtle模块来绘图了。

    如果您已经检查了Turtle库已经被正确安装并在Python环境中进行了正确的配置,但仍然无法调用Turtle模块,那么可能是由于其他原因导致的错误。在这种情况下,您可以通过搜索相关错误信息来查找解决方案,或者请教其他Python专家提供帮助。