1.神奇的print函数

print函数相信读者一定对它不陌生,因为在前面的章节,几乎每个例子都使用了print函数,这个函数的功能就是在控制台输出文本。不过print在输出文本时还可以进行一些设置,以及输出多参数字符串。

如果为print函数传入多个参数值,那么print函数会将所有的参数值首尾相接输出。

# 输出结果:a b c d e
print("a","b","c","d","e");

我们可以看到,上面的这行代码输出了a到e,共5个字母。在Python控制台中输出了“a b c d e”。很明显是将这5个字符首尾相接输出了。不过这些字母之间用空格分隔,这是print函数默认的分隔符,用于分隔输出的多个参数值,这个默认设置是非常有用的,例如,执行下面的代码,会在等号(=)后面加一个空格。

print("name =", "Bill")
print("age =", 30)

输出结果如下:

name = Bill
age = 30

其中等号(=)前面的空格是第1个参数值包含的。

print函数会为除了第1个参数值以外的其它参数值前面添加一个空格,这样做,在需要用空格分隔的场景下,就不需要在每一个参数值前面添加空格了。

不过这种默认设置有利有弊,在不需要用空格分隔时,print函数仍然会添加空格。例如,要输出字符串“Apple,Orange,Banana”。其中Apple、Orange和Banana之间用逗号(,)分隔,逗号(,)与英文单词之间没有空格。如果按前面的做法,会有如下的代码输出这行字符串。

print("Apple",",", "Orange",",","Banana")

输出的结果如下:

Apple , Orange , Bananaprint("Apple",",", "Orange",",","Banana")

很明显,逗号(,)前后都有空格。当然,可以将逗号(,)与前面的英文单词合并,但逗号(,)与后面的英文单词之间仍然会有空格。

print("Apple",",", "Orange",",","Banana")

解决这个问题的方法很多,例如,可以用传统的字符串相加的方式输出字符串“Apple,Orange,Banana”。

print("Apple" + "," + "Orange" + "," + "Banana")

现在我们要用print函数特有的方法解决这个问题,就是修改默认的多参数值分隔符。在print函数最后添加“sep=","”,就可以将分隔符从空格改成逗号(,)。现在可以直接使用下面的代码输出字符串“Apple,Orange,Banana”。

print("Apple", "Orange","Banana", sep=",")

输出结果。

Apple,Orange,Banana

print函数输出字符串时,默认会在字符串结尾添加换行符(\n),这样每次调用print函数输出字符串,都会另起一行。不过有时我们希望调用多次print函数都在同一行输出,这时我们可以在print函数最后加上“end=" "”,让最后一个输出字符串结尾符变成空格,而不是原来的“\n”,当然,也可以将结尾符设成长度为0的字符串,这样多次使用print函数输出的结果就会首尾相接了,中间没有任何分隔符。

'''
学习中遇到问题没人解答?小编创建了一个Python学习交流QQ群:531509025
寻找有志同道合的小伙伴,互帮互助,群里还有不错的视频学习教程和PDF电子书!
'''
print("a",end="");
print("b",end="");
print("c");

输出结果:abc

下面的例子演示了print函数输出多参数值,修改默认多参数值分隔符,以及修改输出字符串结尾字符的方法。

#  输出用空格分隔的多参数值
print("name =", "Bill")
#  输出用空格分隔的多参数值
print("age =", 30)
#  使用加号(+)连接字符串
print("Apple" + "," + "Orange" + "," + "Banana")
#  修改多参数值分隔符为逗号(,),然后输出多参数值
print("Apple", "Orange","Banana", sep=",")
#  修改多参数值分隔符为“&”,然后输出多参数值
print("Can","you","tell","me", "how", "to", "get", "to","the","nearest", "tube", "station", sep="&")
#  修改输出字符串结尾符为空格,这样下一次调用print函数,就会中同一行输出内容了
#  运行结果:Hello world
print("Hello", end=" ")
print("world")
# 修改输出字符串结尾符为长度为0的字符串,这样下一次调用print函数,输出的内容不仅会在同一行,
# 而且会首尾相接,运行结果:abc
print("a",end="");
print("b",end="");
print("c");

程序运行结果如下图所示。

2.有趣的赋值操作

在很多读者看来,赋值操作是再简单不过了,我们在前面的章节也多次使用了赋值操作。不过Python语言中的赋值操作要有趣的多。例如,可以同时将多个值赋给多个变量。

'''
学习中遇到问题没人解答?小编创建了一个Python学习交流QQ群:531509025
寻找有志同道合的小伙伴,互帮互助,群里还有不错的视频学习教程和PDF电子书!
'''
>>> x,y,z = 1,2,3
>>> print(x,y,z)
1 2 3

在上面的代码中,将1,2,3分别赋给了x,y,z三个变量,并输出这3个变量的值。使用Python语言中的这个特性可以很容易实现两个变量中值的交换。

>>> x,y = 20,30
>>> x,y = y,x
>>> print(x,y)
30 20

这种同时将多个值赋给多个变量的操作,等号(=)右侧的值与左侧的变量个数必须相等,否则会抛出异常。

>>> x,y,z = 1,2
Traceback (most recent call last):File "<stdin>", line 1, in <module>
ValueError: not enough values to unpack (expected 3, got 2)
>>> x,y = 1,2,3
Traceback (most recent call last):File "<stdin>", line 1, in <module>
ValueError: too many values to unpack (expected 2)

Python语言的这种特性称为序列解包(Sequence Unpacking),其实任何一个可迭代(Iterable)的对象都支持这一特性,关于迭代对象(列表、集合等)的详细信息会在后面的章节介绍。

Python语言还支持链式赋值(Chained Assignments)和增量赋值(Augmented Assignments),链式赋值是指将同一个值连续赋给多个变量。

x = y = 20

增量赋值是指将变量自身增加或减小(负增量)指定值的表达式的简化形式。例如,x = x + 2,如果用增量赋值表达式,可以写成x += 2,也就是将等号(=)右侧的x省略,并将加号(+)放到等号左侧。
其实前面介绍的二元运算符都支持增量赋值,例如,x = x * 20可以写成x *= 20,x = x % 3可以写成x %= 3。

下面的例子演示了序列解包、链式赋值和增量赋值的使用方法。

'''
学习中遇到问题没人解答?小编创建了一个Python学习交流QQ群:531509025
寻找有志同道合的小伙伴,互帮互助,群里还有不错的视频学习教程和PDF电子书!
'''
x,y,z = 1,2,3              # 使用序列解包方式进行赋值
print(x,y,z)x,y = y,x                  #  利用序列解包交换x和y的值
print(x,y)# x,y,z = 1,2            # 抛出异常
# x,y = 1,2,3              # 抛出异常x = y = 20                  #  使用链式赋值设置x和y
print(x,y)x *= 2                   #  增量赋值
x %= 3                 #  增量赋值
print(x)

程序运行结果如下图所示。

3. 用缩进创建代码块

代码块并非一种语句,而是在学习条件和循环语句之前必须要掌握的知识。

代码块是在条件为真(true)时执行的一组语句,在代码前放置空格来缩进语句即可创建代码块。

注意:使用tab字符也可以缩进语句形成代码块。Python将一个tab字符解释为到下一个tab字符位置的移动,而一个tab字符为8个空格,不过Python标准推荐使用空格缩进的方式创建代码块,建议使用4个空格缩进的方式创建代码块。

代码块的每行语句应该缩进同样的量。下面的伪代码(并非真正的Python代码)展示了如何用缩进的方式创建代码块。

This is a code line
This is another code line:This is a blockcontinuing the same blockthe last line of this block
We escaped the inner block

很多编程语言使用特殊单词或字符来表示一个代码块的开始,用另外的单词或字符表示代码块的结束,例如,Pascal语言使用begin表示代码块的开始,使用end表示代码块的结束,而C风格的编程语言(如Java、C#、C++等)使用一对大括号表示代码块的开始和结束。

Python语言和这些语言都不一样,Python语言使用冒号(:)表示代码块的开始,代码块中的每一条语句都是缩进的(缩进量相同)。当回退到与快的开始语句同样的缩进量时,就表示当前块已经结束。很多集成开发环境(IDE)会帮助用户轻松把握缩进,因此读者不必担心缩进量不对导致Python程序无法编译通过。

学习Python必会内容:print函数、赋值与代码块相关推荐

  1. Python第一课:print()函数、变量与赋值

    Python第一课:print()函数.变量与赋值 所有的符号输入,必须是英文状态 一.print()函数的用法 单刀赴会:不带引号:数据 黄袍加身:单引号.双引号.三引号 单引号与双引号效果一致 当 ...

  2. python基础单词-学习Python必背的初级单词有哪些?

    今天小编要跟大家分享一些学习Python必须认识的英文单词,同时也是学习编程都必须会的单词,下面来和小编一起学习一下吧! application 应用程式 应用.应用程序 application fr ...

  3. python100个必背知识-python必背内容有哪些

    python必背内容:1.变量,掌握变量的命名方法:2.数据类型,掌握int整型.float浮点型.bool布尔值型等各类型相互转换:3.掌握数组类型,定义在[[ ]]内,其内元素之间使用逗号分隔. ...

  4. 学python需要记得的单词_学习Python必背的初级单词有哪些?

    今天小编要跟大家分享一些学习Python必须认识的英文单词,同时也是学习编程都必须会的单词,下面来和小编一起学习一下吧! application 应用程式 应用.应用程序 application fr ...

  5. python的基础_python基础知识,python必背内容,一、python的基

    python基础知识,python必背内容,一.python的基 一.python的基础 1.简单写一行python代码:print('hello,world')print('你好,北京') 2.变量 ...

  6. python基础知识-python基础知识,python必背内容,一、python的基

    python基础知识,python必背内容,一.python的基 一.python的基础 1.简单写一行python代码:print("hello,world')print("你好 ...

  7. python必背入门代码-python必背内容有哪些

    python必背内容:1.变量,掌握变量的命名方法:2.数据类型,掌握int整型.float浮点型.bool布尔值型等各类型相互转换:3.掌握数组类型,定义在[[ ]]内,其内元素之间使用逗号分隔. ...

  8. 如何看待,入门学习Python必看视频?python字符串(string)方法整理

    如何看待,入门学习Python必看视频?哈佛大学教授推荐,python字符串(string)方法整理 哈佛大学推荐,Python基础入门,Python小白书籍,Python学习路线,Python进阶, ...

  9. 学习Python必刷的100道经典实战练习真题(第010集 怎样对简单列表元素排序-第011集 怎样实现学生成绩排序)

    学习Python必刷的100道经典实战练习真题(第010集 怎样对简单列表元素排序-第011集 怎样实现学生成绩排序) 一,第010集 怎样对简单列表元素排序 二,第011集 怎样实现学生成绩排序 来 ...

最新文章

  1. 中国平安“豪赌”科技?从产险业务IT变形计聊起
  2. F5负载均衡配置手册-实操后的
  3. Python中import导入上一级目录模块及循环import问题的解决
  4. mysql查询_MySQL基础,查询语句详解
  5. 文献学习(part87)--Linearized Alternating Direction Method with Adaptive Penalty for Low-Rank ...
  6. Python 面向对象【1】
  7. Educational Codeforces Round 95 (Rated for Div. 2)
  8. 迅雷Chrome插件引发的Uncaught ReferenceError: xl_chrome_menu is not defined JS报错
  9. 最长递增子序列 子串_最长递增子序列
  10. HTML meter控件
  11. java中 银行存款取款_java银行存款取款
  12. FPGA信号处理系列文章——相关与卷积
  13. DLang 编译实验
  14. 南京美食,为吃遍天下做准备~~
  15. TRIZ系列-创新原理-16-部分或超额行动原理
  16. 403 Forbidden You don‘t have permission to access this resource. Apache Server at IP Port 80的解决方法
  17. 怎样才能学好编程呢?
  18. Android 11整合Mopria联盟的代码贡献以实现增强的打印功能
  19. jQuery 一次定时器_史上最全的js、jQuery面试题
  20. IEEE论文检测的字体未嵌入问题

热门文章

  1. ios遍历模块的方式
  2. android登录窗口——基础编
  3. CentOS 5.10安装Oracle 11G R2
  4. jetty 添加basic auth
  5. android volley http请求框架
  6. 基于linux使用mysql二进制包安装mysql
  7. Wowza® Media Systems 使用配置手册。
  8. 【博客话题】感谢您,我的老师
  9. 自由自在带你品尝一种能长出果蔬的冰淇淋
  10. PM你真的很忙吗?如何进行时间管理