鱼C论坛

 找回密码
 立即注册
查看: 1251|回复: 6

[已解决]有关函数什么时候需要参数的问题求助

[复制链接]
发表于 2020-6-13 16:51:59 | 显示全部楼层 |阅读模式

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

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

x
  1. def kacha():

  2.     (sex,items) = each_line.split(':',1)
  3.     if sex == '小甲鱼':
  4.         boy.append(items)
  5.     if sex == '小客服':
  6.         girl.append(items)
  7.         
  8. def saves(boy,girl,count):
  9.     boy_name = 'boy_'+str(count)+'.txt'
  10.     girl_name = 'girl_'+str(count)+'.txt'
  11.     boy_file = open((r"C:\Users\Administrator\Desktop/%s" %boy_name),'w')
  12.     girl_file = open((r"C:\Users\Administrator\Desktop/%s" %girl_name),'w')
  13.    
  14.     boy_file.writelines(boy)
  15.     girl_file.writelines(girl)
  16.     boy_file.close()
  17.     girl_file.close()
  18.    
  19. f = open(r"C:\Users\Administrator\Desktop/record.txt")
  20. boy = []
  21. girl = []
  22. count = 0
  23. for each_line in f:
  24.     if each_line[0:6] != '======':
  25.         #进行字符串的分割操作
  26.         #将分割的内容存入列表中
  27.         kacha()
  28.     else:
  29.         count += 1
  30.         #进行文件保存的操作
  31.         saves(boy,girl,count)
  32.         boy = []
  33.         girl = []
  34. count +=1
  35. saves(boy,girl,count)
复制代码



为什么我将kacha()这个定义的函数传入参数each_line会报错啊,这个函数不是要对each_line这个参数进行操作吗?
最佳答案
2020-6-13 17:22:22
lingedu 发表于 2020-6-13 17:13
那我要定义def saves():而不是def saves(boy, girl, count):呢,就是我觉得boy, girl, count这三个都是全 ...

你定义的是 def saves(boy, girl, count) 而不是def saves() 所以 你一定要传入 3 个参数
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2020-6-13 16:57:25 | 显示全部楼层

应该是你的编码错误这样试试:
  1. def kacha():
  2.     (sex, items) = each_line.split(':', 1)
  3.     if sex == '小甲鱼':
  4.         boy.append(items)
  5.     if sex == '小客服':
  6.         girl.append(items)


  7. def saves(boy, girl, count):
  8.     boy_name = 'boy_' + str(count) + '.txt'
  9.     girl_name = 'girl_' + str(count) + '.txt'
  10.     boy_file = open((r"C:\Users\Administrator\Desktop/%s" % boy_name), 'w',encoding='utf-8')
  11.     girl_file = open((r"C:\Users\Administrator\Desktop/%s" % girl_name), 'w',encoding='utf-8')

  12.     boy_file.writelines(boy)
  13.     girl_file.writelines(girl)
  14.     boy_file.close()
  15.     girl_file.close()


  16. f = open(r"C:\Users\Administrator\Desktop/record.txt",encoding='utf-8')
  17. boy = []
  18. girl = []
  19. count = 0
  20. for each_line in f:
  21.     if each_line[0:6] != '======':
  22.         # 进行字符串的分割操作
  23.         # 将分割的内容存入列表中
  24.         kacha()
  25.     else:
  26.         count += 1
  27.         # 进行文件保存的操作
  28.         saves(boy, girl, count)
  29.         boy = []
  30.         girl = []
  31. count += 1
  32. saves(boy, girl, count)
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-6-13 17:03:06 | 显示全部楼层
Twilight6 发表于 2020-6-13 16:57
应该是你的编码错误这样试试:

我想问问就是为什么kacha()这个函数不需要传入参数,而saves()则需要传入三个参数?saves()那三个参数不是都是全局变量吗,为啥还要传入参数?
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-6-13 17:05:32 | 显示全部楼层
lingedu 发表于 2020-6-13 17:03
我想问问就是为什么kacha()这个函数不需要传入参数,而saves()则需要传入三个参数?saves()那三个参 ...

def kacha():

def saves(boy, girl, count):


函数是否传入参数是看你怎么定义函数的参数滴,Baby
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-6-13 17:07:50 | 显示全部楼层
lingedu 发表于 2020-6-13 17:03
我想问问就是为什么kacha()这个函数不需要传入参数,而saves()则需要传入三个参数?saves()那三个参 ...



你自己没有定义参数,那么就可以不用填,如果你自己定义了函数的参数,而且没有设置默认值那么就一定要传入参数哈
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-6-13 17:13:28 | 显示全部楼层
Twilight6 发表于 2020-6-13 17:05
函数是否传入参数是看你怎么定义函数的参数滴,Baby

那我要定义def saves():而不是def saves(boy, girl, count):呢,就是我觉得boy, girl, count这三个都是全局变量啊,没有传入的必要啊?
就像是:
  1. def adds():
  2.     return x+y

  3. def adds2(x,y):
  4.     return x+y

  5. x = 5
  6. y = 6

  7. adds()
  8. adds2(x,y)
复制代码


我定义函数有没有参数不是都行吗?这个程序我定义def saves():,之后调用saves(),为啥说我必须要传入3个参数啊?不理解啊,里面用到的参数都是全局变量啊,而adds()那个就不用传参我太难了
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-6-13 17:22:22 | 显示全部楼层    本楼为最佳答案   
lingedu 发表于 2020-6-13 17:13
那我要定义def saves():而不是def saves(boy, girl, count):呢,就是我觉得boy, girl, count这三个都是全 ...

你定义的是 def saves(boy, girl, count) 而不是def saves() 所以 你一定要传入 3 个参数
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-6-21 18:29

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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