python基础===* 解包,格式化输出和print的一点知识
python3中的特性:
>>> name = "botoo"
>>> print(f"my name is {name}")
my name is botoo
等价于:
>>> print("my name is {}".format(name))
my name is botoo
再看list,如果我们想打印一个list的每个内容,例如我想输出0,1,2,3,4,5,6,7,8,9的格式
>>> L = list(range(10))
>>> for l in L:
print(l) 0
1
2
3
4
5
6
7
8
9
显然是不行的,所以能想到的是,给print()函数的end参数进行更改:
>>> for l in L:
print(l, end=",") 0,1,2,3,4,5,6,7,8,9,
于是得到了这样的答案,但是最后多了一个逗号。这个是可以通过代码进行去掉的:
>>> for i in L:
if i != L[-1]:
print(i,end = ",")
else:
print(i) 0,1,2,3,4,5,6,7,8,9
至此我们发现,整个过程很繁琐,也很复杂。
有没有更简单的方式,更pythonic的代码
基于此,想到了前几天用*对函数参数解包的作用,代码如下:
>>> def func(a,b,c):
print(a+b+c) >>> arg = (1,2,3)
>>> func(*arg)
6
*将arg的每一项分配给了func函数,而这个过程中*的作用就是解包
于是,再次尝试:
>>> print(*L)
0 1 2 3 4 5 6 7 8 9
果然可行,再加入,号就可以成功。
>>> print(*L,sep = ",")
0,1,2,3,4,5,6,7,8,9
(关于print()函数的sep,和end参数的用法自行百度。)
当然,还有方法就是使用.join(),网上说明很多,故不再赘述。
print(",".join([str(i) for i in L]))
0,1,2,3,4,5,6,7,8,9
python基础===* 解包,格式化输出和print的一点知识的更多相关文章
- Python基础一(格式化输出、流程控制)
(1)格式化输出(%% 第一个% 转译) # 格式化 输入 输出 name = input("Name:") age = input("Age:") job = ...
- Python小代码_2_格式化输出
Python小代码_2_格式化输出 name = input("name:") age = input("age:") job = input("jo ...
- Python的三种格式化输出
今天刚学了python的三种格式化输出,以前没接触过这么有趣的输出方式,现在来分享一下. #!/user/bin/env python#coding:utf-8#三种格式化输出 #第一种格式化输出na ...
- Python基础篇--输入与输出
站长资讯平台:Python基础篇--输入与输出在任何语言中,输入和输出都是代码最基础的开始,so,先来聊一聊输入和输出输出输入END在任何语言中,输入和输出都是代码最基础的开始,so,先来聊一聊输入和 ...
- python之while循环/格式化输出/运算符/初始编码/成员变量
一.主要内容:1.while 循环 (难点)while 条件: 循环体 break: 直接跳出循环continue:停止当前本次循环,继续执行下一次循环.不会中断循环能让循环退出:(1)break ( ...
- Python序列解包
元组的序列解包range对象的序列解包迭代对象的序列解包列表的序列解包字典的序列解包序列解包与遍历序列解包的其它用法 元组的序列解包 x,y,z = (1,2,3) print(x,y,z) 1 2 ...
- 基础数据类型,格式化输出,以及for循环的使用
基础数据类型总览 int :数字类型,可以+-*/等等操作 str:字符串类型,存储少量的数据,+*int 切片等 bool :里面包含True,False这两种值,用来判断真假. list :列表 ...
- python文件操作及格式化输出
1 文件与IO 1.1读写文本数据 读写各种不同的文本数据,如ASCII,UTF-8,UTF-9编码等. 使用带有rt模式的open()函数读取文本文件. 例如: with open('db', 'r ...
- python - 用户交互/数据类型/格式化输出/运算符/流程控制单双多分支
python:用户交互: 等用户输入,做反应: username=input("username:")password=input("password:")pr ...
随机推荐
- 【其他】VS提示不一致的行尾
应该是用不同的编辑器或平台编辑过同一个文件,比如Windows是\r\n,有的系统只有一个\n, 需要都统一,否则代码可能会堆成一堆.
- 简易js调试
1.console显示信息的命令: console.log() console.info() console.error() console.warn() 2.console信息分组 cons ...
- BZOJ 1004 Cards(Burnside引理+DP)
因为有着色数的限制,故使用Burnside引理. 添加一个元置换(1,2,,,n)形成m+1种置换,对于每个置换求出循环节的个数, 每个循环节的长度. 则ans=sigma(f(i))/(m+1) % ...
- 【bzoj3110】[Zjoi2013]K大数查询 权值线段树套区间线段树
题目描述 有N个位置,M个操作.操作有两种,每次操作如果是1 a b c的形式表示在第a个位置到第b个位置,每个位置加入一个数c.如果是2 a b c形式,表示询问从第a个位置到第b个位置,第C大的数 ...
- Codeforces Round #521 Div. 3 玩耍记
A:签到. #include<iostream> #include<cstdio> #include<cmath> #include<cstdlib> ...
- C# 面向对象——继承
继承:代码文字结合理解 class Program { static void Main(string[] args) { //Student s = new Student(); //Driver ...
- P3074 [USACO13FEB]牛奶调度Milk Scheduling
题目描述 Farmer John's N cows (1 <= N <= 10,000) are conveniently numbered 1..N. Each cow i takes ...
- wmware的vmnet0、vmnet1、vmnet8
用vmware安装虚拟机后会出现三种网卡: 1.vmnet0:桥接网卡,虚拟机相当于一台实体机,可以自用访问与被访问及上网. 在桥接模式下,VMware虚拟出来的操作系统就像是局域网中的一独立的主机, ...
- 【题解】Atcoder ARC#90 E-Avoiding Collision
自己做出来固然开心,但是越发感觉到自己写题的确是很慢很慢了……往往有很多的细节反反复复的考虑才能确定,还要加油呀~ 这道题目的突破口在于正难则反.直接求有多少不相交的不好求,我们转而求出所有相交的.我 ...
- [CF785E]Anton and Permutation
题目大意:有一串数为$1\sim n(n\leqslant2\times10^5)$,$m(m\leqslant5\times10^4)$次询问,每次问交换位置为$l,r$的两个数后数列中逆序对的个数 ...