请问这个代码发生了什么?
我做了个程序,在IDLE上运行是没毛病的,可是如果我双击打开运行就会出现问题并闪退,图片:代码:dai_ma="""版本号='1.0.0.0.1'
注意事项='''
这个框柱东西的函数只能用一个字节的英文字符
'''
##########################################################
# Tim Peters的《Python的禅》 #
# #
# 美丽胜于丑陋。 #
# 显性比隐性好。 #
# 简单总比复杂好。 #
# 复杂总比复杂好。 #
# 平的比嵌套的好。 #
# 稀疏总比密集好。 #
# 可读性很重要。 #
# 特例不足以打破规则。 #
# 尽管实用性胜过纯粹。 #
# 错误不应该无声无息地过去。 #
# 除非明确禁止。 #
# 面对歧义,拒绝猜测的诱惑。 #
#应该有一个——最好只有一个——显而易见的方法来做这件事。#
# 尽管这种方式一开始可能并不明显,除非你是荷兰人。 #
# 现在总比没有好。 #
# 虽然从来没有比现在更好。 #
# 如果实现很难解释,这是个坏主意。 #
# 如果实现很容易解释,这可能是一个好主意。 #
#命名空间是一个非常棒的主意——让我们做更多的事情吧!#
##########################################################
def kuang_zhu(mu_biao='''Tim Peters的《Python的禅》\n\n美丽胜于丑陋。\n显性比隐性好。\n简单总比复杂好。\n复杂总比复杂好。\n平的比嵌套的好。\n稀疏总比密集好。\n可读性很重要。\n特例不足以打破规则。\n尽管实用性胜过纯粹。\n错误不应该无声无息地过去。\n除非明确禁止。\n面对歧义,拒绝猜测的诱惑。\n应该有一个——最好只有一个——显而易见的方法来做这件事。\n尽管这种方式一开始可能并不明显,除非你是荷兰人。\n现在总比没有好。\n虽然从来没有比现在更好。\n如果实现很难解释,这是个坏主意。\n如果实现很容易解释,这可能是一个好主意。\n命名空间是一个非常棒的主意——让我们做更多的事情吧!''',kuang='#',ju_zhong=True,fen_ge=False,da_yin=True,isprint=True):
'''这个框柱东西的函数的kuang参数只能用一个字节的英文字符'''
yin_wen_list=[' ','q', 'w', 'e', 'r', 't', 'y', 'u', 'i', 'o', 'p', '[', ']', 'a', 's', 'd', 'f', 'g', 'h', 'j', 'l', ';', '\\\\', 'z', 'x', 'c', 'v', 'b', 'n', 'm', ',', '.', '/', '1', '2', '3', '4', '5', '6', '7', '8', '9', '0', '-', '=', '!', '@', '#', '
这是个安装程序
请问这是为什么?{:10_263:} , '%', '^', '&', '*', '(', ')', '`', '~', '<', '>', '?', ':', '"', '|', '{', '}']
def len1(mb):
sumf=0
for i in mb:
if i != '':
if i in yin_wen_list:
sumf+=1
else:
sumf+=2
return sumf
def max1(mb):
Max=''
for i in mb:
if len1(i) > len1(Max):
Max=i
return Max
mei_hang=mu_biao.split('''\n''')
hang_max=len1(max1(mei_hang))
if not kuang:
kuang=''
else:
kuang=str(kuang)
return_list=
if ju_zhong:
for i in mei_hang:
return_list.extend()
if fen_ge:
return_list.extend()
else:
for i in mei_hang:
return_list.extend()
if fen_ge:
return_list.extend()
return_list.extend()
if da_yin:
gai_da_yin_de=''
for i in return_list:
gai_da_yin_de=gai_da_yin_de+i
if isprint:
print(gai_da_yin_de)
else:
return gai_da_yin_de
else:
return return_list
def finder(目标,isprint=False):
'''I can find all the characters in your string and count their occurrences, then output:" one character: number of occurrences ..."'''
mb=目标
a=[]
b=[]
for i in mb:
if i in a :
b=b+1
elif i != '''\n''':
a.append(i)
b.append(1)
if isprint:
for i in a:
print(i,b,end=' ',sep=':')
return dict([(a,b)for x in range(len(a))])
def findstr(目标,sub):
'''I can count the number of' sub' sub characters in your string.'''
mb=目标
tj=[]
sum1=0
for i in range(len(mb)-len(sub)+1):
tj.append(mb)
for i in tj:
if i == sub:
sum1+=1
return sum1
"""
def gen_xin(filename):
wen_jan=open(filename,'w',encoding='utf-8')
print(dai_ma,file=wen_jan)
try:
import PyGuan as pyg
版本号='1.0.0.0.1'
def shu(a):
number=''
for i in a.split('.'):
number+=i
number=int(number)
return number
if shu(pyg.版本号)>=shu(版本号):
print('你不用更新了谢谢,你的版本已经是新的了。')
else:
gen_xin(pyg.__file__)
print('PyGuan更新成功!')
except:
from sys import path
while '' in path:
path.pop(path.index(''))
for i in path:
print(path.index(i)+1,i,sep=':')
answer=input('请输入你选择激活路径(填序号):')
xu_hao=1 if answer=='' else int(answer)-1
xu_hao=xu_hao if xu_hao < len(path) else len(path)-1
gen_xin(path+'\\PyGuan.py')
print('PyGuan安装成功!')
这是个安装程序
请问这是为什么?{:10_263:} 我试了很多次 本帖最后由 Twilight6 于 2020-5-25 19:36 编辑
磊之茶 发表于 2020-5-25 18:55
我试了很多次
好吧 的确加了注释,原谅我英语白痴{:10_245:} 在代码最后加一个input() 我记得这是运行环境的问题吧,这个不是问题吧,我记得在easygui时候就必须使用cmd环境才行,打开后闪退才出现自己的可视化界面。一般程序就是闪一下,我理解是这样不一定对 你的注释里的代码是什么鬼…… qiuyouzhi 发表于 2020-5-25 18:58
在代码最后加一个input()
不是这个问题。。。。 永恒的蓝色梦想 发表于 2020-5-25 19:07
你的注释里的代码是什么鬼……
你不太需要知道。。。其实那是我的实验结果 磊之茶 发表于 2020-5-25 22:26
你不太需要知道。。。其实那是我的实验结果
是的,所以我根本就运行不了你的代码,
把你的奇怪的符号去掉,重新发 Chysial 发表于 2020-5-25 18:59
我记得这是运行环境的问题吧,这个不是问题吧,我记得在easygui时候就必须使用cmd环境才行,打开后闪退才出 ...
那怎么解决{:10_263:} 双击是不能运行的,除非你编译过了,如果是想通过cmd运行这个文件, 请使用<python *path.py>python +具体路径运行py文件,运行前确保python存在环境变量中,或者可以直接使用Git bash.
如果 Stubbron 帮助到你,请给 3楼的 Twilight6 一个最佳答案 其实。。。。这就是代码+环境问题。。。。。
就连我同学也运行过。。。他有python。。。。。
也是双击有问题。。。。。
可在IDLE运行就没问题,就连我同学也一样。。。。。
我想知道详细的,可。。。。(网站不能访问。。。) 本帖最后由 磊之茶 于 2020-5-26 18:45 编辑
dai_ma="""版本号='1.0.0.0.1'
def kuang_zhu(mu_biao='''Tim Peters的《Python的禅》\n\n美丽胜于丑陋。\n显性比隐性好。\n简单总比复杂好。\n复杂总比复杂好。\n平的比嵌套的好。\n稀疏总比密集好。\n可读性很重要。\n特例不足以打破规则。\n尽管实用性胜过纯粹。\n错误不应该无声无息地过去。\n除非明确禁止。\n面对歧义,拒绝猜测的诱惑。\n应该有一个——最好只有一个——显而易见的方法来做这件事。\n尽管这种方式一开始可能并不明显,除非你是荷兰人。\n现在总比没有好。\n虽然从来没有比现在更好。\n如果实现很难解释,这是个坏主意。\n如果实现很容易解释,这可能是一个好主意。\n命名空间是一个非常棒的主意——让我们做更多的事情吧!''',kuang='#',ju_zhong=True,fen_ge=False,da_yin=True,isprint=True):
'''这个框柱东西的函数的kuang参数只能用一个字节的英文字符'''
yin_wen_list=[' ','q', 'w', 'e', 'r', 't', 'y', 'u', 'i', 'o', 'p', '[', ']', 'a', 's', 'd', 'f', 'g', 'h', 'j', 'l', ';', '\\\\', 'z', 'x', 'c', 'v', 'b', 'n', 'm', ',', '.', '/', '1', '2', '3', '4', '5', '6', '7', '8', '9', '0', '-', '=', '!', '@', '#', ' , '%', '^', '&', '*', '(', ')', '`', '~', '<', '>', '?', ':', '"', '|', '{', '}']
def len1(mb):
sumf=0
for i in mb:
if i != '':
if i in yin_wen_list:
sumf+=1
else:
sumf+=2
return sumf
def max1(mb):
Max=''
for i in mb:
if len1(i) > len1(Max):
Max=i
return Max
mei_hang=mu_biao.split('''\n''')
hang_max=len1(max1(mei_hang))
if not kuang:
kuang=''
else:
kuang=str(kuang)
return_list=
if ju_zhong:
for i in mei_hang:
return_list.extend()
if fen_ge:
return_list.extend()
else:
for i in mei_hang:
return_list.extend()
if fen_ge:
return_list.extend()
return_list.extend()
if da_yin:
gai_da_yin_de=''
for i in return_list:
gai_da_yin_de=gai_da_yin_de+i
if isprint:
print(gai_da_yin_de)
else:
return gai_da_yin_de
else:
return return_list
def finder(目标,isprint=False):
'''I can find all the characters in your string and count their occurrences, then output:" one character: number of occurrences ..."'''
mb=目标
a=[]
b=[]
for i in mb:
if i in a :
b=b+1
elif i != '''\n''':
a.append(i)
b.append(1)
if isprint:
for i in a:
print(i,b,end=' ',sep=':')
return dict([(a,b)for x in range(len(a))])
def findstr(目标,sub):
'''I can count the number of' sub' sub characters in your string.'''
mb=目标
tj=[]
sum1=0
for i in range(len(mb)-len(sub)+1):
tj.append(mb)
for i in tj:
if i == sub:
sum1+=1
return sum1
"""
def gen_xin(filename):
wen_jan=open(filename,'w',encoding='utf-8')
print(dai_ma,file=wen_jan)
try:
import PyGuan as pyg
版本号='1.0.0.0.1'
def shu(a):
number=''
for i in a.split('.'):
number+=i
number=int(number)
return number
if shu(pyg.版本号)>=shu(版本号):
print('你不用更新了谢谢,你的版本已经是新的了。')
else:
gen_xin(pyg.__file__)
print('PyGuan更新成功!')
except:
from sys import path
while '' in path:
path.pop(path.index(''))
for i in path:
print(path.index(i)+1,i,sep=':')
answer=input('请输入你选择激活路径(填序号):')
xu_hao=1 if answer=='' else int(answer)-1
xu_hao=xu_hao if xu_hao < len(path) else len(path)-1
gen_xin(path+'\\PyGuan.py')
print('PyGuan安装成功!')
本帖最后由 磊之茶 于 2020-5-26 18:47 编辑
我不小心点错了{:10_292:} Stubborn 发表于 2020-5-25 22:33
双击是不能运行的,除非你编译过了,如果是想通过cmd运行这个文件, 请使用python +具体路径运行py文件,运 ...
请问为啥我其他程序却可以双击运行{:10_263:}它们难道有啥区别,并且都是我用Pyton写的
是不是我触及到了Python的潜规则!{:10_334:} 磊之茶 发表于 2020-5-26 18:50
请问为啥我其他程序却可以双击运行它们难道有啥区别,并且都是我用Pyton写的
是不是我触及到 ...
你是说双击,就去IDE哪里运行这样的? 本帖最后由 磊之茶 于 2020-5-26 19:31 编辑
磊之茶 发表于 2020-5-26 18:50
请问为啥我其他程序却可以双击运行它们难道有啥区别,并且都是我用Pyton写的
是不是我触及到 ...
真相大白了!是这段字符串出了问题,但是。。。我想问这字符串有什么问题?"""版本号='1.0.0.0.1'
注意事项='这个框柱东西的函数只能用一个字节的英文字符'
##########################################################
# Tim Peters的《Python的禅》 #
# #
# 美丽胜于丑陋。 #
# 显性比隐性好。 #
# 简单总比复杂好。 #
# 复杂总比复杂好。 #
# 平的比嵌套的好。 #
# 稀疏总比密集好。 #
# 可读性很重要。 #
# 特例不足以打破规则。 #
# 尽管实用性胜过纯粹。 #
# 错误不应该无声无息地过去。 #
# 除非明确禁止。 #
# 面对歧义,拒绝猜测的诱惑。 #
#应该有一个——最好只有一个——显而易见的方法来做这件事。#
# 尽管这种方式一开始可能并不明显,除非你是荷兰人。 #
# 现在总比没有好。 #
# 虽然从来没有比现在更好。 #
# 如果实现很难解释,这是个坏主意。 #
# 如果实现很容易解释,这可能是一个好主意。 #
#命名空间是一个非常棒的主意——让我们做更多的事情吧!#
##########################################################
def kuang_zhu(mu_biao='''Tim Peters的《Python的禅》\n\n美丽胜于丑陋。\n显性比隐性好。\n简单总比复杂好。\n复杂总比复杂好。\n平的比嵌套的好。\n稀疏总比密集好。\n可读性很重要。\n特例不足以打破规则。\n尽管实用性胜过纯粹。\n错误不应该无声无息地过去。\n除非明确禁止。\n面对歧义,拒绝猜测的诱惑。\n应该有一个——最好只有一个——显而易见的方法来做这件事。\n尽管这种方式一开始可能并不明显,除非你是荷兰人。\n现在总比没有好。\n虽然从来没有比现在更好。\n如果实现很难解释,这是个坏主意。\n如果实现很容易解释,这可能是一个好主意。\n命名空间是一个非常棒的主意——让我们做更多的事情吧!''',kuang='#',ju_zhong=True,fen_ge=False,da_yin=True,isprint=True):
'''这个框柱东西的函数的kuang参数只能用一个字节的英文字符'''
yin_wen_list=[' ','q', 'w', 'e', 'r', 't', 'y', 'u', 'i', 'o', 'p', '[', ']', 'a', 's', 'd', 'f', 'g', 'h', 'j', 'l', ';', '\\\\', 'z', 'x', 'c', 'v', 'b', 'n', 'm', ',', '.', '/', '1', '2', '3', '4', '5', '6', '7', '8', '9', '0', '-', '=', '!', '@', '#', '{:10_313:}, '%', '^', '&', '*', '(', ')', '`', '~', '<', '>', '?', ':', '"', '|', '{', '}']
def len1(mb):
sumf=0
for i in mb:
if i != '':
if i in yin_wen_list:
sumf+=1
else:
sumf+=2
return sumf
def max1(mb):
Max=''
for i in mb:
if len1(i) > len1(Max):
Max=i
return Max
mei_hang=mu_biao.split('''\n''')
hang_max=len1(max1(mei_hang))
if not kuang:
kuang=''
else:
kuang=str(kuang)
return_list=
if ju_zhong:
for i in mei_hang:
return_list.extend()
if fen_ge:
return_list.extend()
else:
for i in mei_hang:
return_list.extend()
if fen_ge:
return_list.extend()
return_list.extend()
if da_yin:
gai_da_yin_de=''
for i in return_list:
gai_da_yin_de=gai_da_yin_de+i
if isprint:
print(gai_da_yin_de)
else:
return gai_da_yin_de
else:
return return_list
def finder(目标,isprint=False):
'''I can find all the characters in your string and count their occurrences, then output:" one character: number of occurrences ..."'''
mb=目标
a=[]
b=[]
for i in mb:
if i in a :
b=b+1
elif i != '''\n''':
a.append(i)
b.append(1)
if isprint:
for i in a:
print(i,b,end=' ',sep=':')
return dict([(a,b)for x in range(len(a))])
def findstr(目标,sub):
'''I can count the number of' sub' sub characters in your string.'''
mb=目标
tj=[]
sum1=0
for i in range(len(mb)-len(sub)+1):
tj.append(mb)
for i in tj:
if i == sub:
sum1+=1
return sum1
def Len(目标,是按字节=True):
'''me good then python's len()'''
sumf=0
if 是按字节:
yin_wen_list=[' ','q', 'w', 'e', 'r', 't', 'y', 'u', 'i', 'o', 'p', '[', ']', 'a', 's', 'd', 'f', 'g', 'h', 'j', 'l', ';', '\\\\', 'z', 'x', 'c', 'v', 'b', 'n', 'm', ',', '.', '/', '1', '2', '3', '4', '5', '6', '7', '8', '9', '0', '-', '=', '!', '@', '#', '{:10_313:}, '%', '^', '&', '*', '(', ')', '`', '~', '<', '>', '?', ':', '"', '|', '{', '}']
for i in mb:
if i != '':
if i in yin_wen_list:
sumf+=1
else:
sumf+=2
return sumf
else:
for i in mb:
sumf+=1
return sumf
def Max(目标,是按字节=True):
'''I will return the largest character in the target.'''
Maxstr=''
if 是按字节:
for i in mb:
if Len(i) > Len(Maxstr):
Maxstr=i
return Maxstr
else:
for i in mb:
if len(i) > len(Maxstr):
Maxstr=i
return Maxstr
"""{:10_313:}
他说问题出在sumf=0和def len1(mb):里,说Non-UTF-8 code starting wth '\xe5' in on line 30,but no encoding declared
可我连\xe5的影都没见到 Stubborn 发表于 2020-5-26 18:59
你是说双击,就去IDE哪里运行这样的?
直接双击运行,不是IDLE就像双击打开某个程序一样 Stubborn 发表于 2020-5-25 22:33
双击是不能运行的,除非你编译过了,如果是想通过cmd运行这个文件, 请使用python +具体路径运行py文件,运 ...
就是因为你我获得到了这个最佳嘛?
人在家中坐,锅...呸...最佳天上来 磊之茶 发表于 2020-5-26 19:25
真相大白了!是这段字符串出了问题,但是。。。我想问这字符串有什么问题?
他说问题出在su ...
第一行 """版本号=1.0.0.0.1'三引号无结束
页:
[1]