PYTHON自学笔记3包含一些出错问题

Python打印与函数详解
本文详细介绍了Python中打印的不同方式及格式控制,并深入探讨了函数的定义与调用方法,包括可变参数和关键字参数的使用技巧。

print
在python 中要打印有两种做法,带格式,和不带格式,但容易混淆。%s\%d\%f到底要怎么用?
首先,限定输出长度。在前面加数字:%3s %3d
注意%f,数字前面还有个点:%.3f

如何打印出来呢?
1. 先来个错误示范注意%s
2. 再来个貌似正确示范没了
3. 最后来个标准示范对的
4. 来个究极版这里写图片描述
5. ok
出现了一个问题,从文件中import然后执行,和直接复制代码运行,结果不一样如图:
直接运行
从文件导入

出错信息为什么不一样?

其次学习了PYTHON的函数写法:
要注意定义可变参数和关键字参数的语法:
*args是可变参数,args接收的是一个tuple;
**kw是关键字参数,kw接收的是一个dict。
以及调用函数时如何传入可变参数和关键字参数的语法:
可变参数既可以直接传入:func(1,2,3),又可以先组装list或tuple,再通过argsfunc((1,2,3))
关键字参数既可以直接传入:func(a=1,b=2),又可以先组装dict,再通过kwfunc(a:1,b:2)

如何判断一个对象是可迭代对象呢?方法是通过collections模块的Iterable类型判断:

from collections import Iterable
isinstance(‘abc’, Iterable) # str是否可迭代
True
isinstance([1,2,3], Iterable) # list是否可迭代
True
isinstance(123, Iterable) # 整数是否可迭代
False

**如果要对list实现类似Java那样的下标循环怎么办?**Python内置的enumerate函数可以把一个list变成索引-元素对,这样就可以在for循环中同时迭代索引和元素本身:

for i, value in enumerate([‘A’, ‘B’, ‘C’]):
… print(i, value)

0 A
1 B
2 C

问答环节:

alist = [0, 'list', 1.5, True]
atuple = ('tuple', False, 1.2, 1)
aset = {0,1.1,True, 'set'}

for first, *middle, last in (alist, atuple, aset):
    print(first)
    print(middle)
    print(last)

  1. middle加*后可以运行,为什么不加会报错?too many values to unpack

  2. 为什么单独循环for first in alist
    出来的结果就是一个一个?

  3. 把alist atuple aset 长度都改为4个了,循环还是不对,为什么?

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Z_shsf

来包瓜子嘛,谢谢客官~

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值