磊之茶 发表于 2020-5-25 18:55:05

请问这个代码发生了什么?

我做了个程序,在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:}

磊之茶 发表于 2020-5-25 18:55:38

我试了很多次

Twilight6 发表于 2020-5-25 18:57:55

本帖最后由 Twilight6 于 2020-5-25 19:36 编辑

磊之茶 发表于 2020-5-25 18:55
我试了很多次

好吧 的确加了注释,原谅我英语白痴{:10_245:}

qiuyouzhi 发表于 2020-5-25 18:58:47

在代码最后加一个input()

Chysial 发表于 2020-5-25 18:59:59

我记得这是运行环境的问题吧,这个不是问题吧,我记得在easygui时候就必须使用cmd环境才行,打开后闪退才出现自己的可视化界面。一般程序就是闪一下,我理解是这样不一定对

永恒的蓝色梦想 发表于 2020-5-25 19:07:50

你的注释里的代码是什么鬼……

磊之茶 发表于 2020-5-25 22:26:01

qiuyouzhi 发表于 2020-5-25 18:58
在代码最后加一个input()

不是这个问题。。。。

磊之茶 发表于 2020-5-25 22:26:38

永恒的蓝色梦想 发表于 2020-5-25 19:07
你的注释里的代码是什么鬼……

你不太需要知道。。。其实那是我的实验结果

永恒的蓝色梦想 发表于 2020-5-25 22:27:22

磊之茶 发表于 2020-5-25 22:26
你不太需要知道。。。其实那是我的实验结果

是的,所以我根本就运行不了你的代码,
把你的奇怪的符号去掉,重新发

磊之茶 发表于 2020-5-25 22:31:11

Chysial 发表于 2020-5-25 18:59
我记得这是运行环境的问题吧,这个不是问题吧,我记得在easygui时候就必须使用cmd环境才行,打开后闪退才出 ...

那怎么解决{:10_263:}

Stubborn 发表于 2020-5-25 22:33:56

双击是不能运行的,除非你编译过了,如果是想通过cmd运行这个文件, 请使用<python *path.py>python +具体路径运行py文件,运行前确保python存在环境变量中,或者可以直接使用Git bash.

如果 Stubbron 帮助到你,请给 3楼的 Twilight6 一个最佳答案

磊之茶 发表于 2020-5-25 22:34:26

其实。。。。这就是代码+环境问题。。。。。
就连我同学也运行过。。。他有python。。。。。
也是双击有问题。。。。。
可在IDLE运行就没问题,就连我同学也一样。。。。。
我想知道详细的,可。。。。(网站不能访问。。。)

磊之茶 发表于 2020-5-26 18:43:51

本帖最后由 磊之茶 于 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:44:38

本帖最后由 磊之茶 于 2020-5-26 18:47 编辑

我不小心点错了{:10_292:}

磊之茶 发表于 2020-5-26 18:50:55

Stubborn 发表于 2020-5-25 22:33
双击是不能运行的,除非你编译过了,如果是想通过cmd运行这个文件, 请使用python +具体路径运行py文件,运 ...

请问为啥我其他程序却可以双击运行{:10_263:}它们难道有啥区别,并且都是我用Pyton写的
是不是我触及到了Python的潜规则!{:10_334:}

Stubborn 发表于 2020-5-26 18:59:51

磊之茶 发表于 2020-5-26 18:50
请问为啥我其他程序却可以双击运行它们难道有啥区别,并且都是我用Pyton写的
是不是我触及到 ...

你是说双击,就去IDE哪里运行这样的?

磊之茶 发表于 2020-5-26 19:25:46

本帖最后由 磊之茶 于 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的影都没见到

磊之茶 发表于 2020-5-26 19:30:36

Stubborn 发表于 2020-5-26 18:59
你是说双击,就去IDE哪里运行这样的?

直接双击运行,不是IDLE就像双击打开某个程序一样

Twilight6 发表于 2020-5-29 19:31:28

Stubborn 发表于 2020-5-25 22:33
双击是不能运行的,除非你编译过了,如果是想通过cmd运行这个文件, 请使用python +具体路径运行py文件,运 ...

就是因为你我获得到了这个最佳嘛?

人在家中坐,锅...呸...最佳天上来

nizitao 发表于 2020-5-29 19:38:33

磊之茶 发表于 2020-5-26 19:25
真相大白了!是这段字符串出了问题,但是。。。我想问这字符串有什么问题?
他说问题出在su ...

第一行 """版本号=1.0.0.0.1'三引号无结束
页: [1]
查看完整版本: 请问这个代码发生了什么?