鱼C论坛

 找回密码
 立即注册
查看: 2671|回复: 12

[已解决]019讲课后问题求助!!回我帖子的都是帅哥美女!!

[复制链接]
发表于 2016-4-3 14:31:49 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
为什莫有红色警告,还能正确运行??


  1. symbols = r'''`!@#$%^&*()_+-=/*{}[]\|'";:/?,.<>'''
  2. chars = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ'
  3. nums = '0123456789'
  4. space = ' '
  5. def myfun(str1,str2):
  6.       length1 = len(str1)
  7.       if length1 ==0:
  8.             print('您输入的第1个字符串为空!')
  9.       length2 = len(str2)
  10.       if length2 ==0:
  11.             print('您输入的第2个字符串为空!')
  12.       str1_sym_count =  0
  13.       str1_cha_count  =  0
  14.       str1_num_count = 0
  15.       str1_spa_count =  0
  16.       for each in str1:
  17.             if each in symbols:
  18.                   global str1_sym_count
  19.                   str1_sym_count +=1
  20.             if each in chars:
  21.                   global str1_cha_count
  22.                   str1_cha_count +=1
  23.             if each in nums:
  24.                   global str1_num_count
  25.                   str1_num_count +=1
  26.             if each in space:
  27.                   global str1_spa_count
  28.                   str1_spa_count +=1
  29.       print('第1个字符串中   其他字符:{0}  英文字母:{1}  数字:{2}  空格:{3}'.format(str1_sym_count ,str1_cha_count,str1_num_count,str1_spa_count))

  30.       str2_sym_count =  0
  31.       str2_cha_count  =  0
  32.       str2_num_count = 0
  33.       str2_spa_count =  0
  34.       for each in str2:
  35.             if each in symbols:
  36.                   global str2_sym_count
  37.                   str2_sym_count +=1
  38.             if each in chars:
  39.                   global str2_cha_count
  40.                   str2_cha_count +=1
  41.             if each in nums:
  42.                   global str2_num_count
  43.                   str2_num_count +=1
  44.             if each in space:
  45.                   global str2_spa_count
  46.                   str2_spa_count +=1
  47.       print('第2个字符串中   其他字符:{0}  英文字母:{1}  数字:{2}  空格:{3}'.format(str2_sym_count ,str2_cha_count,str2_num_count,str2_spa_count))



  48. str1 = input('请输入第1个字符串:')
  49. str2 = input('请输入第2个字符串:')
  50. myfun(str1,str2)
复制代码
最佳答案
2016-4-3 23:19:54
出现错误的原因是在函数中定义了变量,然后声明为全局变量。首先次程序无需定义全局变量,其次如果需定义全局变量要先在主程序中给变量赋值,再在函数中使用前先声明为全局变量。python能够容忍这个错误,所以提示错误,但能够正常运行。
举个简单的例子:
  1. def a():
  2.     x = 3
  3.     global x
  4.     print(x)
  5. x = 5
  6. a()
  7. print(x)
复制代码

以上跟楼主的错误提示一样。
修改一下
  1. def a():
  2.     global x
  3.     x = 3
  4.     print(x)
  5. x = 5
  6. a()
  7. print(x)
复制代码
QQ截图20160403141632.png
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2016-4-3 14:34:32 | 显示全部楼层
还有就是怎样发悬赏帖子??
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2016-4-3 14:39:08 | 显示全部楼层
你们没有爱心
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2016-4-3 16:53:55 | 显示全部楼层
仔细查看下你的缩进形式,或者是变量名字是否有误,一般就是这两种原因
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2016-4-3 17:01:40 | 显示全部楼层
liun 发表于 2016-4-3 16:53
仔细查看下你的缩进形式,或者是变量名字是否有误,一般就是这两种原因

你说的这两个有错的话,程序就运行不起来了啊
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2016-4-3 17:41:33 | 显示全部楼层
老鲨鱼 发表于 2016-4-3 14:34
还有就是怎样发悬赏帖子??

就是圈圈里面,都看不见是不是眼神不太好啊

就在这里啊。。。

就在这里啊。。。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2016-4-3 17:49:49 | 显示全部楼层
本帖最后由 小火木 于 2016-4-3 22:58 编辑

代码里面的global 后面的变量不是全局变量,不需要,python红色警告提醒,但不影响程序执行为啥不影响,我也不知道啊
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2016-4-3 23:03:03 | 显示全部楼层
老鲨鱼 发表于 2016-4-3 17:01
你说的这两个有错的话,程序就运行不起来了啊

C:\Documents and Settings\Administrator\桌面\QQ截图20160403230158.png
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2016-4-3 23:04:30 | 显示全部楼层
老鲨鱼 发表于 2016-4-3 17:01
你说的这两个有错的话,程序就运行不起来了啊

file:///C:/Documents and Settings/Administrator/桌面/QQ截图20160403230158.png
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2016-4-3 23:05:21 | 显示全部楼层
liun 发表于 2016-4-3 23:04
file:///C:/Documents and Settings/Administrator/桌面/QQ截图20160403230158.png

额  没法发图片啊
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2016-4-3 23:19:54 | 显示全部楼层    本楼为最佳答案   
出现错误的原因是在函数中定义了变量,然后声明为全局变量。首先次程序无需定义全局变量,其次如果需定义全局变量要先在主程序中给变量赋值,再在函数中使用前先声明为全局变量。python能够容忍这个错误,所以提示错误,但能够正常运行。
举个简单的例子:
  1. def a():
  2.     x = 3
  3.     global x
  4.     print(x)
  5. x = 5
  6. a()
  7. print(x)
复制代码

以上跟楼主的错误提示一样。
修改一下
  1. def a():
  2.     global x
  3.     x = 3
  4.     print(x)
  5. x = 5
  6. a()
  7. print(x)
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2016-4-4 11:15:16 | 显示全部楼层

这样就不会有警告了!因为楼主那样写的话这些参数本身就不是全局变量,是myfun函数内部的参数。。下面的程序又引入全局变量所以就会有警告!!
  1. str1_sym_count =  0
  2. str1_cha_count  =  0
  3. str1_num_count = 0
  4. str1_spa_count =  0
  5. str2_sym_count =  0
  6. str2_cha_count  =  0
  7. str2_num_count = 0
  8. str2_spa_count =  0
  9. def myfun(str1,str2):
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2016-4-4 11:16:40 | 显示全部楼层
冬雪雪冬 发表于 2016-4-3 23:19
出现错误的原因是在函数中定义了变量,然后声明为全局变量。首先次程序无需定义全局变量,其次如果需定义全 ...

你看我这样理解对吗??
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2026-2-20 13:16

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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