鱼C论坛

 找回密码
 立即注册
查看: 1820|回复: 14

[已解决]python 50讲 动动手 第0题 运行不了

[复制链接]
发表于 2018-1-6 15:17:15 | 显示全部楼层 |阅读模式
50鱼币
本帖最后由 wow7jiao 于 2018-1-6 17:11 编辑
  1. # const 模块就是这道题要求我们自己写的
  2. # const 模块用于让 Python 支持常量操作
  3. import const

  4. const.NAME = "FishC"
  5. print(const.NAME)

  6. try:
  7.     # 尝试修改常量
  8.     const.NAME = "FishC.com"
  9. except TypeError as Err:
  10.     print(Err)

  11. try:
  12.     # 变量名需要大写
  13.     const.name = "FishC"
  14. except TypeError as Err:
  15.     print(Err)
复制代码

  1. # 该模块用于让 Python 支持常量操作
  2. class Const:   
  3.     def __setattr__(self, name, value):
  4.         if name in self.__dict__:
  5.             raise TypeError('常量无法改变!')
  6.             
  7.         if not name.isupper():
  8.             raise TypeError('常量名必须由大写字母组成!')

  9.         self.__dict__[name] = value

  10. import sys
  11. sys.modules[__name__] = Const()
复制代码



自己解决
最佳答案
2018-1-6 15:17:16
你这个python3.3.3是官网下载的吧!要不你换个python版本试试,别用python3.3.3。
QQ截图20180106151345.png
QQ截图20180106170752.png

最佳答案

查看完整内容

你这个python3.3.3是官网下载的吧!要不你换个python版本试试,别用python3.3.3。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2018-1-6 15:17:16 | 显示全部楼层    本楼为最佳答案   
你这个python3.3.3是官网下载的吧!要不你换个python版本试试,别用python3.3.3。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2018-1-6 17:13:24 | 显示全部楼层
小甲鱼.你要记得给我鱼币
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2018-1-7 19:46:54 | 显示全部楼层
那上面不是说常量名要大写字母组成吗
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2018-1-7 20:10:56 | 显示全部楼层
刘英超 发表于 2018-1-7 19:46
那上面不是说常量名要大写字母组成吗



主程序里面有try结构.常用变量用大写是主动引发.作try结构要蓝色提示,提示红字是try没有起作用.

问题是出在

import sys
sys.modeles[__name__] = Const()
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2018-1-7 21:23:32 | 显示全部楼层
本帖最后由 冰封雪舞 于 2018-1-7 21:34 编辑

你这问题主要出在
import sys
sys.modules[__name__] = const()
上,你调用这个const类的命令里const名字第一个字母是小写,但是你看看你程序里定义类的语句的第一句话class Const:   你这个类的名字首字母是大写C,你用小写c来调用怎么会运行呢?用const来调用Const类?
你把sys.modules[__name__] = const()中那个const()的c改成与类的首字母大小写一样试试看,一种方法把const首字母变大写,一种把class Const:  类大写字母变成小写c都可以,总之你定义的名字是什么调用时就用什么名字,别一个大写一个小写。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2018-1-7 21:36:38 | 显示全部楼层
冰封雪舞 发表于 2018-1-7 21:23
你这问题主要出在
import sys
sys.modules[__name__] = const()

下面 那个改过来的c是正确的.

上面的是错误的.小甲鱼的答案错了,运行不了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2018-1-7 22:04:37 | 显示全部楼层
本帖最后由 冰封雪舞 于 2018-1-7 22:27 编辑

我刚才重新复制粘贴了下你贴出的两个程序,貌似可以执行,所以我建议检查下你那个const.py存储的时候是不是首字母大写了,因为好多时候,你存的是Const.py,但是windows与模拟器提示里边提示时大小写不分,你程序里边调用的时候,程序他妈的检查的很细,它分大小写,就造成了错误,而且你说我另存然后改成小写,它会提示你已经有这个文件了(其实是首字母大写的,但是,系统分不出来),不行你必须把原来的删掉再另存或者直接直接重新命名成小写const.py。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2018-1-7 22:27:45 | 显示全部楼层
wow7jiao 发表于 2018-1-7 21:36
下面 那个改过来的c是正确的.

上面的是错误的.小甲鱼的答案错了,运行不了

我刚才重新复制粘贴了下你贴出的两个程序,貌似可以执行,所以我建议检查下你那个const.py存储的时候是不是首字母大写了,因为好多时候,你存的是Const.py,但是windows与模拟器提示里边提示时大小写不分,你程序里边调用的时候,程序他妈的检查的很细,它分大小写,就造成了错误,而且你说我另存然后改成小写,它会提示你已经有这个文件了(其实是首字母大写的,但是,系统分不出来),不行你必须把原来的删掉再另存或者直接直接重新命名成小写const.py。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2018-1-7 22:42:06 | 显示全部楼层
冰封雪舞 发表于 2018-1-7 22:27
我刚才重新复制粘贴了下你贴出的两个程序,貌似可以执行,所以我建议检查下你那个const.py存储的时候是不 ...

我肯定没有大写
QQ截图20180107223649.png
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2018-1-8 10:34:52 | 显示全部楼层
wow7jiao 发表于 2018-1-7 22:42
我肯定没有大写

这个程序,我这里能运行
Python 3.4.4 (v3.4.4:737efcadf5a6, Dec 20 2015, 19:28:18) [MSC v.1600 32 bit (Intel)] on win32
Type "copyright", "credits" or "license()" for more information.
>>>
===== RESTART: C:\Documents and Settings\Administrator\桌面\学习\linshi1.py =====
FishC
常量无法改变!
常量名必须由大写字母组成!
>>>
所以我想肯定不是程序错了,或许是版本的问题,我的是3.3.4,亦或许是你的内部import文件遭到破坏,尝试重新安装下3.3.4版本试试。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2018-1-8 11:15:07 | 显示全部楼层
冰封雪舞 发表于 2018-1-8 10:34
这个程序,我这里能运行
Python 3.4.4 (v3.4.4:737efcadf5a6, Dec 20 2015, 19:28:18) [MSC v.1600 32 b ...


我换了台电脑,重装,还是一样的出错。你把你的代码贴出来我我看一下
QQ截图20180108111338.png
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2018-1-8 16:57:45 | 显示全部楼层
wow7jiao 发表于 2018-1-8 11:15
我换了台电脑,重装,还是一样的出错。你把你的代码贴出来我我看一下


程序运行.JPG
这是我测试的程序,也是粘贴你的
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2018-1-8 19:05:50 | 显示全部楼层
冰封雪舞 发表于 2018-1-8 17:04
你这个python3.3.3是官网下载的吧!要不你换个python版本试试,别用python3.3.3。

确实是版本问题
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2018-1-8 21:39:45 | 显示全部楼层
wow7jiao 发表于 2018-1-8 19:05
确实是版本问题

找到原因就好,要不总有心事,睡不好觉了,呵呵。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-4-19 09:56

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表