楼主: 一亿两白银
685 4

[问答] 程序求助 [推广有奖]

  • 8关注
  • 0粉丝

博士生

27%

还不是VIP/贵宾

-

威望
0
论坛币
72 个
通用积分
0.0605
学术水平
8 点
热心指数
8 点
信用等级
7 点
经验
3227 点
帖子
219
精华
0
在线时间
197 小时
注册时间
2012-12-10
最后登录
2020-4-16

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币
a = [100]
def func(x):
        a=a.append(x)
        return a

func(1)
为何在IDLE里输入这段代码程序出错:
Traceback (most recent call last):
  File "C:/python_work/例10-99乘法表(双循环).py", line 6, in <module>
    func(1)
  File "C:/python_work/例10-99乘法表(双循环).py", line 3, in func
    a=a.append(x)
UnboundLocalError: local variable 'a' referenced before assignment


但是我在工作平台输入逐步输入如下代码就没问题:
a=[100]
a=a.append(1)
a
结果为[100,1]

二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

关键词:工作平台 双循环

改成这个试试?
def func(a,x):
        a=a.append(x)
        return a

使用道具

藤椅
一亿两白银 学生认证  发表于 2018-6-9 16:55:52 |只看作者 |坛友微信交流群
不二不幸福 发表于 2018-6-9 16:51
改成这个试试?
def func(a,x):
        a=a.append(x)
我傻逼了,list中append方法会自动赋值给a,没必要a=a.append()这种,直接a.append()就行,哈哈。我估计你的那个也还是出现一样的问题,还好解决问题了

使用道具

板凳
startyxf 在职认证  发表于 2018-6-14 14:19:30 |只看作者 |坛友微信交流群

def func(x):
        a.append(x)
        return a

使用道具

报纸
杨Yuer参上 发表于 2018-6-23 16:35:00 |只看作者 |坛友微信交流群
这样写代码是相当不规范的
在函数内部最好不要去操作外部定义的变量,否则代码很容易出问题.
这样写比较好
  1. a = [100]
  2. def func(x,list1):
  3.         list1.append(x)
  4.         return list1

  5. func(1,a)
复制代码

使用道具

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

本版微信群
加好友,备注cda
拉您进交流群

京ICP备16021002-2号 京B2-20170662号 京公网安备 11010802022788号 论坛法律顾问:王进律师 知识产权保护声明   免责及隐私声明

GMT+8, 2024-4-26 14:50