3 min read

Python Learning 1学习-变量

str1, str2, str3 = "A", "B", "c"

Python中有7个标准的数据类型:Bool(布尔)、Number(数字)、String(字符串)、Tuple(元组)、List(列表)、Set(集合)、Dictionary(字典)。

str1, str2, str3 = "A", "B", "c"

在Python标准的6个基本数据类型中,Number、String、Tuple是不可变数据,其余3个都是可变数据。那到底什么是不可变数据呢

不可变的数据类型: 不可变是指系统分配的位置是固定的,比如以下

x = 1
print(id(x))
y = 1
print(id(y))
z = 2
print(id(z))
x = 2
print(id(x))
1842763295024
1842763295024
1842763295056
1842763295056

布尔类型 Bool

布尔类型既True和False。

string = "Hello Word"
print(string.isalnum()) # 查看是否所有字符都是数字 -> False
print(string.isalpha()) 
print(string.isupper()) # Check if string contains upper case
print(string.istitle())
False
False
False
True
True and False # False
True and True # True
False and True # False
False or True # True
False and False # False
True ^ False # True
True ^ True # False
False

数字 Number

Python3中数字有4种类型:int(整数)、long(长整数)、float(浮点数)、complex(复数)。我们可以使用内置的type函数来查看变量所指的对象类型:

a, b, c, d = True, 20, 5.5, 4+3j
print(type(a), type(b), type(c), type(d))
# <class 'bool'> <class 'int'> <class 'float'> <class 'complex'>
<class 'bool'> <class 'int'> <class 'float'> <class 'complex'>

整数可以使用十六进制和八进制来表示:

number = 0xA0F # 十六进制
print(number) # 2575
number = 0o37 # 八进制
print(number) # 31
2575
31

任何带有小数点的数字都是浮点数,当我们把浮点数和整数混合的时候,我们会得到一个浮点数。 我们也可以在

print(2 + 2) # 加法
print(3 - 2) # 减法
print(2 * 3) # 乘法
print(3 / 2) # 除法, 得到一个浮点数
print(2 // 4) # 除法, 得到一个整数
print(3 % 2) # 取余
print(3 ** 2) # 乘方

python默认的是17位小数的精度,前16位是准确的,第17位开始不准确

复数(complex)是由实数部分和虚数部分构成的,可以用a + bj或者complex(a, b)表示,复数的实部a和虚部b都是浮点数。

除了数字的基本操作之外,我们也需要注意数字的命名规则:

universe_age = 14_000_000_000 # 在数字中使用下划线可以让很长的数字易读性更强
MAX_CONNECTIONS = 5000 # 恒定的数字需要全部大写

字符串 String

字符串是由一系列的字符组成的,是由单引号 ‘ 或双引号 ” 括起来的,同时使用反斜杠 \ 转义特殊字符。

str1 = 'This is a string.'
str2 = "This is also a string."

双引号和单引号的自由转换,可以让你在引号中套用引号更方便:

str1 = 'I told my friend, "Python is my favorite language!"'
str2 = "The language 'Python' is named after Montry Python, not the snake."

我们可以在字符串中带入变量,只要在开头引号前加f就可以了 (f代表format)

first_name = "Enoch"
last_name = "Zheng"
full_name = f"{first_name} {last_name}" # Enoch Zheng
full_name2 = f"{first_name.upper()} {last_name.upper()}" # ENOCH ZHENG

字符”\”可以转义很多特殊符号,不如\n表示换行,\t表示制表符,字符\本身也需要转义,所以\表示的字符就是\

print("I\'m ok.") # I'm ok.
print("I\'m learning\nPython.")
"""
I'm learning
Python.
"""
I'm ok.
I'm learning
Python.





"\nI'm learning\nPython.\n"

字符串需要注意的事项:为了避免字符串里为了实现转义,需要加很多的\,Python允许你在字符串的开头加入r,让引号的内部字符串不转义

print(r"\\\\t\\") # \\\t\\
'''print('One of Python's strengths is its diverse community.') # Error'''
print('One of Python\'s strengths is its diverse community.') # Works fine
\\\\t\\
One of Python's strengths is its diverse community.

字符串的操作和函数 字符串的连接符和内置操作:加号(+)是字符串的连接符,星号(*)用来复制字符串,请看下面代码:

str = 'TuringPlanet'
 
print (str)          # 输出字符串 -> TuringPlanet
print (str + "ENOCH") # 连接字符串 -> TuringPlanetEnoch
print (str * 2)      # 输出字符串两次 -> TuringPlanetTuringPlanet 
print (str[0:-1])    # 输出第一个到倒数第二个的所有字符 -> TuringPlane
print (str[0])       # 输出字符串第一个字符 -> T
print (str[2:5])     # 输出从第三个开始到第五个的字符 -> rin
print (str[2:])      # 输出从第三个开始的后的所有字符 -> ringPlanet
TuringPlanet
TuringPlanetENOCH
TuringPlanetTuringPlanet
TuringPlane
T
rin
ringPlanet

有用的字符串函数:

name = "Hello World"
print(name.title()) # Hello World
print(name.upper()) # HELLO WORLD
print(name.lower()) # hello world
str1 = "    Hello"
str2 = "  World"
# 用来消除空格的函数
print(str1.strip() + str2.strip()) # HelloWorld
Hello World
HELLO WORLD
hello world
HelloWorld

字符串格式化

Python支持格式化字符串的输出,这有助于我们编写复杂的字符串:

print("%s was born in %d." % ('Python', 1991))
print("{} was born in {}.".format('Python', 1991))
message = "{} was born in {}"
print(message.format('Python', 1991))
lan = 'Python'
year = 1991
print(f"{lan} was born in {year}.")
Python was born in 1991.
Python was born in 1991.
Python was born in 1991
Python was born in 1991.

常用运算符和函数参照表 算数运算符 Arithmetic operatiors