我是靠谱客的博主 畅快鸡,最近开发中收集的这篇文章主要介绍PythonNote9_补充 : 变量赋值/数据类型/转义字符,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

学习教程:参考: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插件:划词翻译,可以直接在网页上将不认识的词、句选中翻译,对阅读外文网址还是比较方便的。
在这里插入图片描述

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:十六进制字符
00:终止符
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 可重复的

参考:http://www.opython.com/

最后

以上就是畅快鸡为你收集整理的PythonNote9_补充 : 变量赋值/数据类型/转义字符的全部内容,希望文章能够帮你解决PythonNote9_补充 : 变量赋值/数据类型/转义字符所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(34)

评论列表共有 0 条评论

立即
投稿
返回
顶部