学习教程:参考:http://www.opython.com/

本节知识点:
1、变量赋值与交互
2、进制与数据类型
3、字符串转换函数
4、字符串转义字符

依照教程,对前面所学的几点知识进行补充:

Part 1 变量赋值与交换

一、链式赋值(Chained Assignment)
>>> a = b = c =0		#进行链式赋值
>>> a		# 查看变量a的值
0
>>> b		# 查看变量b的值
0
>>> c		# 查看变量c的值
0

以上示例证明,Python 中可以通过 = 进行连续赋值,这时,每个变量都具有相同的值。

二、序列解包(Sequence Unpacking)

即通过 = 同时为多个变量写入不同的值,示例如下:

>>> a, b, c = 1, 2, 3
>>> a		# 查看变量a的值
1
>>> b		# 查看变量b的值
2
>>> c		# 查看变量c的值
3

从形式上可以得出的是,在变量和为变量写入的值之间通过 “ = ” 连接,变量和值通过 “,” 隔开,这样python就会按照从前到后的顺序为变量赋值。
教程中还谈及了这样实现的原理,一起看下:
先来做个尝试:

>>> 1,2,3
(1, 2, 3)

显而易见,当在Python中输入多个值并用“,”进行分隔,实际上是将这些值组成了一个元组,而Python会自动将元组分解,然后分配给每一个变量。

接下来再做第二个尝试:

>>> a, b, c = (1, 2, 3)
>>> a
1
>>> b
2
>>> c
3

可以很简单的得出的是,依据上述示例,确实我们的上一段话所言非虚。
事实上,字符串、列表、元组、集合、字典等都可以进行类似操作,基操,勿6

然后是第三个尝试:
这会需要说明的是“*”的功能,当最左侧变量带有"*"时,python会优先对右边的变量赋值,然后将多余的值或空值以列表的新式赋值给最左侧的变量 ,即带有“*”的变量;与此同理,当最右边的变量带有“*”时,Python将优先赋值左侧变量,然后将剩余值以列表形式赋值给最右侧变量,即带有“*”的变量;当“*”附带在中间某个变量时,会优先会两侧变量赋值,然后将剩余值或空值以列表形式赋给带有“*”的变量。

>>> *a, b, c = 1, 2
>>> a
[]
>>> b
1
>>> c
2
>>> *a, b, c = 1, 2, 3, 4
>>> a
[1, 2]
>>> b
3
>>> c
4
三、变量交换

这个算比较简单的内容,和赋值类似,且可以支持多个变量值的互换。

>>> a, b = 1, 2
>>> a, b = b, a
>>> a
2
>>> b
1
四 增量赋值

这个用的比较多的,直接上例子:

>>> a = 1
>>> a += 1
>>> a
2

简单来说,“a += 1” 实际上就是 “a = a + 1” 的简写。具体内容请参考Python_Note系列赋值语句。

Part 2 进制与数据类型

一、进制

进制在Python中,目前我也没有涉猎很多,需要用时再去学习,因为一下子学太多用不到的知识不仅没必要,而且会造成学习效率低下,容易给人造成恐惧感和挫败感。

此处仅列举教程中提到的一些进制表示方法:

>>> 0x11 		# 非10进制以0开头,字母x表示16进制
>>> 0o11 		# 非10进制以0开头,字母o表示8进制
>>> 0b11 		# 非10进制以0开头,字母b表示2进制
二、数据类型

Python有六种数据类型:Number(数字)、String(字符串)、List(列表)、Tuple(元组)、Set(集合)和Dict(字典)。

List、Tuple、Set和Dict之前的Python笔记中已有说明,此处就不再赘述,如果有需要,直接翻看前面的笔记内容即可。

本次补充的主要内容是Number和String两种类型:

Number

Number类型包含:Int(整型)、Float(浮点型)、Bool(布尔类型)和Complex(复数类型)四种类型。
Int(整型): 即为整数,可以通过int(x,[base=10])函数将非整数或者整数组成的字符串以及字节转皇城整数。

print(int())		# 显示输出结果为0
print(int(1.23))			# 显示输出结果为1
print(int('5'))			# 显示输出结果为5
print(int('0xF', 16))		# 显示输出结果为15

Float(浮点型): 即为小数,带着小数点。float([x])函数可以将非整数或者整数组成的字符串以及字节装换成整数。

print(float())			# 显示输出结果为0.0
print(float(1))			# 显示输出结果为1.0
print(float('5'))			# 显示输出结果为5.0
print(float(0xf))			# 显示输出结果为15.0

Bool(布尔类型): 通过bool(x)函数,能够得到的参数x的布尔值(True / Flase)

print(bool())			# 现实输出结果为Flase
print(bool(Flase))			# 现实输出结果为Flase
print(bool(''))			# 现实输出结果为Flase
print(bool(0))			# 现实输出结果为Flase
print(bool(None))			# 现实输出结果为Flase
print(bool([]))			# 现实输出结果为Flase
print(bool(()))			# 现实输出结果为Flase
print(bool({}))			# 现实输出结果为Flase


值得一提的是,在Python中,除了空值、‘’、Flase、0、()、{}、{}和None八种类型外,其他均为True。

Complex(复数): 能够通过complex(x)函数创建一个复数。

print(complex(1))		# 显示输出结果为:(1+0j)
print(complex('2+1j'))		# 显示输出结果为:(2+1j)
print(complex(2,5))		# 显示输出结果为:(2+5j)
String(字符串)类型

String(字符串): 通过str(object=’’)函数能够将对象转换为字符串。
一个错误示例:

a = str(1)
b = a + 1

很显然,当我们试图把数字转换为字符串并进行加法运算时,会抛出异常:

TypeError: can only concatenate str (not "int") to str

中文释义是:类型错误:只能将str(而不是“ int”)连接到str。大意就是只支持字符串和字符串的连接,不支持数字和字符串连接或者说相加。(必要时可以参考谷歌、必应或者百度翻译呀)。

说到翻译推荐一个Chrome插件:划词翻译,可以直接在网页上将不认识的词、句选中翻译,对阅读外文网址还是比较方便的。

python如何将变量变成字符串 python 变量转义_列表

String类型相关函数

join(iterable)函数 能够将可迭代对象的元素或多个字符串合并为一个字符串,参数iterable微可迭代对象。
如果参数不是字符串则会抛出类型错误的异常,包括字节对象。此函数通过元素间的分隔符作用。

lst1 = '1', '2', '3'
print('+'.join(lst1))			# 显示输出结果为:1+2+3
lst2 = ['1', '2', '3']
pritn(''.join(lst2))		# 显示输出结果为:123

字符串内单词首字母大写 通常使用string模块中的capwords(s[,sep])的函数,参数s为需要转换的字符串,参数sep为分隔符,省略参数sep时,每个单词的首字母均转换为大写;未省略参数sep时,除了第一个单词首字母大写外,分隔符后方的第一个字母均转换为大写。

import string


old_str = 'hello, welcome to lifeflow.'
new_str1 = string.capwords(old_str)
new_str2 = string.capwords(old_str, 'o ')
new_str3 = string.capwords(newstr2, 'fe')

print(new_str1)			# 显示输出结果为:Hello, Welcome To Lifeflow.
print(new_str2)			# 显示输出结果为:Hello, welcome to Lifeflow.
print(new_str3)			# 显示输出结果为:Hello, welcome to lifeFlow.

多字符转换 这个就比较玄奇了,多字符转换使用字符串对象调用translate(table)函数,参数table为转换表。
起初看到这里我吓一跳,进行一个多字符转换的操作还这么麻烦,不如直接用内置函数replace()一步到位。
后来才发现,其实这里也并非这么麻烦。
使用translate(table)函数时,table转换表包含256个ASCII字符,不需要手工创建,直接使用关键词str调用maketrans(x[,[,y[,z]])函数创建转换表。
只有1个参数时,必须输入一个字典,字典的键和键值可以是ASCII字符,也可以是对应的数字序号,转换时会用键值对应的字符替换对应的字符。

table1 = str.maketrans({102:70})
print('Lifeflow'.translate(table1))			# 键为数字序号,键值也为数字序号,显示输出结果为:LiFeFlow
table2 = str.maketrans({102:'F'})
print('Lifeflow'.translate(table2))			# 键为数字序号,键值为对用字符,显示输出结果为:LiFeFlow

输入2个参数时,前面的参数是被替换的字符,后面的参数时替换后的字符

table = str.maketrans({'f':'F'})
print('Lifeflow'.translate(table))			# 键、键值都为字符,显示输出结果为:LiFeFlow

输入3个参数时,最后一个参数必须是字符串,包含在这个字符串
中的每一个字符串东欧会被替换为None(空值)。
说的简单点,就是“删除”你字符串中出现的table中的第三个参数中出现的字符,然后再讲字符串中的第一个参数字符替换为第二哥参数字符,讲起来是很拗口,自己练习几遍就知道是怎么一回事了。
来看实例:

table = str.maketrans('i', 'e', 'lf')
print('lifeflow'.translate(table))			# 显示输出结果为:eeow

我来详细说明一下其中过程:
首先执行table中第三个参数的替换:即将 “lifeflow” 中的 ‘l’ 和 ‘f’ 替换为 None, 此时 ‘lifeflow’ 则是 ‘ieow’ ;
之后再进行第一个和第二个参数的替换:将 ‘ieow’ 中的第一个参数字符 ‘i’ 替换成第二个参数字符 ‘e’,则此时的 ‘ieow’ 变成 ‘eeow’。

Part 3 字符串转移字符

\:在字符串结尾时为续航符;
\:斜杠(转义的转义)
':单引号
":双引号
\a:响铃
\b:退格符
\n:换行符
\t:横向制表符
\v:纵向制表符
\r:回车符
\f:换页符
\ooo:八进制字符
\xhh:十六进制字符
\000:终止符
\other:其他的字符以普通格式输出
\N(name):Unicode数据库中的字符名
\uhhhh:值为16位的十六位制字符
\Uhhhhhhhh:值为32位的十六进制制字符

本节知识点:
1、变量赋值与交互
2、进制与数据类型
3、字符串转换函数
4、字符串转义字符

本节英文单词与中文释义:

  1. sequence 序列
  2. unpacking (unpack)拆包
  3. chained(chain)链式
  4. assignment 分配,分派;(分配的)工作、任务
  5. complex 复数
  6. concatenate 系上;级联;连环的
  7. iterable 可重复的