Python初学的问题记录1-2

问题一

新建一个空列表,赋值时出现错误提示:IndexError: list index out of range

问题原因:Python和C的语法不同,对空列表不能直接进行指定位置的赋值。

问题解决:使用append函数进行赋值

举例:编写一个函数返回最大值和最小值

def function2():
    list1 = []
    while True:
        a = int(input('请输入整数 按0结束'))
        if a == 0:
            break
        else:
            list1.append(a)
            #C的方式是以下,会出现报错,原因是空列表不能直接指定位置
            #n=0
            #list1[n] = a
            #n += 1

    print('max is %d' %max(list1))
    print('min is %d' %min(list1))

function2()

 

问题二

对list列表进行文件操作,open与write文件输入输出问题

写入文件使用的是write函数,如果直接把write后面加list列表,系统会提示write的参数必须是str:

TypeError: write() argument must be str, not list

采用强制转换的策略,看一下输出结果:

file3 = open('test_file.txt', 'w')
list3 = ['\n , this is a test list ']

file3.write(str(list3))
file3.close()

写到file3的文件内容是:

['\n , this is a test list ']

很显然,这不是我们想要的结果,因为转义字符\n被原样输出了,因此这样的方式其实是保留了列表原样的显示方式。

所以换一种显示方法,用for循环输出写入文件

file3 = open('test_file.txt', 'w')
list3 = ['\n , this is a test list ']

if len(list3) == 1:
    file3.write(list3[0])
else:
    for i in range(0, len(list3)-1):
        file3.write(list3[i])

file3.close()

写到file3的文件内容是:


 , this is a test list 

这是正常显示内容。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值