找回密码
 立即注册

扫一扫,访问微社区

QQ登录

只需一步,快速开始

查看: 3452|回复: 6

[求助] python函数问题

1

主题

3

帖子

3

积分

贫民

积分
3
Matz 发表于 2018-12-5 09:56:00 | 显示全部楼层 |阅读模式
def f(x):
    x = 100
    print (x)
   
f(x)  #为什么这样调用不行?

def f():    x = 100    print(x)f()  #为什么这样调用就行?
回复

使用道具 举报

0

主题

4

帖子

4

积分

贫民

积分
4
硕锅锅爱py 发表于 2018-12-6 10:08:25 | 显示全部楼层
本帖最后由 硕锅锅爱py 于 2018-12-6 10:11 编辑

第一个函数可以调用啊,只不过x被你重新赋值了而已
回复 支持 反对

使用道具 举报

0

主题

4

帖子

4

积分

贫民

积分
4
硕锅锅爱py 发表于 2018-12-6 10:13:50 | 显示全部楼层
本帖最后由 硕锅锅爱py 于 2018-12-6 10:17 编辑
硕锅锅爱py 发表于 2018-12-6 10:08
第一个函数可以调用啊,只不过x被你重新赋值了而已

一开始没看懂你的问题,  函数定义时()中的参数 为形式参数,在函数调用时必须为这个形参传递一个实际参数
实参必须有值
def func(x):
    x = 100
    print(x)

x = 200 # 实际参数必须有值
func(x) # 这样调用就可以了
回复 支持 反对

使用道具 举报

0

主题

8

帖子

8

积分

贫民

积分
8
smith6036 发表于 2018-12-7 10:51:53 | 显示全部楼层
这是函数闭包的原因,你可以看一下这方面的内容
回复 支持 反对

使用道具 举报

0

主题

3

帖子

3

积分

贫民

积分
3
ruuning_snail 发表于 2018-12-21 15:49:07 | 显示全部楼层

def f(x):
    x = 100
    print (x)
   
f(x)  #为什么这样调用不行?
调用f函数的时候要传值进去的,f(x)里面的x是未知的所以不行
回复 支持 反对

使用道具 举报

0

主题

102

帖子

102

积分

侠客

积分
102
傻眼貓咪 发表于 2021-8-7 15:42:47 | 显示全部楼层
  1. def func1(x): # 必須有參數
  2.     x = 100
  3.     print(x)

  4. func1(x)
复制代码


列印結果:
  1. NameError: name 'x' is not defined
复制代码


更正後如下:
  1. def func1():
  2.     x = 100
  3.     print(x)

  4. func1()
复制代码

列印結果:
  1. 100
复制代码
回复 支持 反对

使用道具 举报

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

本版积分规则

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