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 ...
随机推荐
- 【bzoj1096】[ZJOI2007]仓库建设 斜率优化dp
题目描述 L公司有N个工厂,由高到底分布在一座山上.如图所示,工厂1在山顶,工厂N在山脚.由于这座山处于高原内陆地区(干燥少雨),L公司一般把产品直接堆放在露天,以节省费用.突然有一天,L公司的总裁L ...
- Go语言【第七篇】:Go函数
Go语言函数 函数是基本的代码块,用于执行某个任务.Go语言最少有个main()函数,可以通过函数来划分不同功能,逻辑上每个函数执行的是指定的任务.函数声明告诉了编译器函数的名称,返回类型和参数.Go ...
- [NOIP2017]宝藏 子集DP
题面:[NOIP2017]宝藏 题面: 首先我们观察到,如果直接DP,因为每次转移的代价受上一个状态到底选了哪些边的影响,因此无法直接转移. 所以我们考虑分层DP,即每次强制现在加入的点的距离为k(可 ...
- Android 常用控件自定义样式RadioButton、CheckBox、ProgressBar、
一.RadioButton / CheckBox 系统自带的RadioButton/CheckBox的样式,注定满足不了实际运用中的情况,有时候自定义自己的样式:此次把自己中工作学习过程中所学到的东西 ...
- BZOJ1568:[JSOI2008]Blue Mary开公司——题解
https://www.lydsy.com/JudgeOnline/problem.php?id=1568 李超线段树(不会的话去网上搜吧……). 完. #include<map> #in ...
- HDOJ(HDU).1003 Max Sum (DP)
HDOJ(HDU).1003 Max Sum (DP) 点我挑战题目 算法学习-–动态规划初探 题意分析 给出一段数字序列,求出最大连续子段和.典型的动态规划问题. 用数组a表示存储的数字序列,sum ...
- Object.defineProperty基本用法
1. 基本形式 Object.defineProperty(obj,prop,descriptor) 参数说明: obj: 必需,目标对象prop: 必需,需定义或修改属性的名字descriptor: ...
- Eclipse NDK 打印LOG信息(都在jni目录下操作)
http://blog.csdn.net/u013045971/article/details/46448975 1 在.c文件中,引用头文件,定义TAG.LOG宏: #include <and ...
- Sandglass
题目描述 We have a sandglass consisting of two bulbs, bulb A and bulb B. These bulbs contain some amount ...
- Eclipse中安装Tomcat
1. 下载Tomcat并安装: http://tomcat.apache.org/download-60.cgi 2. 下载最新Eclipse的Tomacat插件: http://www.eclips ...