Python基础(一)-数据类型
Python的语法比较简单,采用缩进方式,如下:
# 打印integer值
a = 100
if a >= 0 :
print(a)
else :
print(-a)
以#开头的语句是注释,是给人看的,可以是任意内容,解释器会忽略掉注释。当语句以冒号:结尾时,缩进的语句视为代码块。
缩进的利弊
- 利: 强迫写出格式化的代码,可以使用4个空格或两个Tab的缩进(确保不混用Tab和空格,坚持使用4个空格缩进方式);强迫写出缩进较少的代码,会倾向于拆分成若干个函数,从而得到缩进较少的代码。
- 弊:复制-粘贴功能失效,重构代码时,粘贴过去的代码必须重新检查缩进是否正确。
Python程序是大小写敏感的,如果写错了大小写,程序会报错。
数据类型和变量
数据类型
计算机程序处理的各种数值,还可以处理文本、图形、音频、网页各种各样的数据,不同的数据,需要定义不同的数据类型。
整数
可以处理任意大小的整数,包括负整数,例如:1,100,-8080,0等等
计算机由于使用二进制,所以,有时候用十六进制表示整数比较方便,0x前缀和0-9,a-f表示,例如:0xff,0xa5b4c3d2等等。
浮点数
浮点数也就是小数,之所以被称为浮点数,是因为按照科学计数法表示时,一个浮点数的小数点位置时是可变的,比如和是完全相等的,浮点数可以用数学写法,如:1.23,3.14,-9.01等等。对于很大或很小的浮点数,就必须用科学计数法表示,把10用e替代,就是1.23e9,或者12.3e8,0.0000012可以写成1.e-5等等。
整数运算永远是精确的,而浮点数运算则可能会有四舍五入的误差。
字符串
字符串是以单引号'或者双引号",比如'abc',"xyz"等等,''和""本身是一种表示方式,不是字符串的一部分,如果'或者"本身也是一个字符,就需要用"或者'括起来或者用\转义字符标识。
>>> print("I'm ok")
I'm ok
>>> print('I\'m ok')
I'm ok
转义字符\可以转义很多字符,如:\n表示换行,\t表示制表符,字符\本身也要转义,所以\表示的字符就是\
>>> print('I\'m ok.')
I'm ok.
>>> print('I\'m learning\nPython.')
I'm learning
Python.
>>> print('\\\n\\')
\
\
如果字符串中有很多字符都哦需要转义,为了简化,可以使用r''表示''内部的字符串默认不转义
>>> print('\\\t\\')
\ \
>>> print(r'\\\t\\')
\\\t\\
如果字符串内部有很多换行,用\n写在一行中不好阅读,为了简化,可以使用'''...'''的格式进行多行内容
>>> print('''line1
... line2
... line3''')
line1
line2
line3
布尔值
布尔值和布尔代数的表示完全一致,一个布尔值只有True、False两种,也可以使用布尔运算计算得出
>>> True
True
>>> False
False
>>> 2 > 1
True
>>> 2 < 1
False
布尔值也可以用and、or和not运算
>>> True and False
False
>>> True or False
True
>>> not True
False
一般用于条件判断中
if age >= 18 :
print('成年人')
else :
print('未成年人')
空值
在python中,用None表示空值,None不能理解为0,因为0是有意义的,而None是一个特殊的值
变量
变量在程序中就是用一个变量名表示,变量名必须是大小写英文、数字和_的组合,且不能用数字开头
# 这是一个整数变量
a = 1
# 这是一个字符串
t_007 = 'T007'
# 这是一个布尔值
answer = True
当我们写a='ABC'时,python解释器干了两件事
- 在内存中创建了一个'ABC'的字符串;
- 在内存中创建了一个名为a的变量,并把它指向'ABC'。
test.py
a = 'ABC'
b = a
a = 'XYZ'
print(b)
c:你的路径> python test.py
ABC
执行a = 'ABC',创建a变量和字符串"ABC",并将变量a指向"ABC"
执行b = a,创建变量b,并将变量b指向变量a指向的字符串"ABC"
执行a = 'XYZ',创建了字符串"XYZ",并将变量a的指向改为'XYZ',变量b没有改变
常量
所谓常量就是不变的变量,比如常用的数学常数圆周率,通常用全部大写的变量名表示常量
PI = 3.14159265359
数据类型转换
函数 | 描述 |
---|---|
int(x[,base]) | 将x转换为一个整数 |
float(x) | 将x转换到一个浮点数 |
complex(real[,imag]) | 创建一个个复数 |
str(x) | 将对象x转换为字符串 |
repr(x) | 将对象x转换为表达式字符串 |
eval(str) | 用来计算在字符串中的有效Python表达式,并返回一个对象 |
tuple(s) | 将序列s转换为一个元组 |
list(s) | 将序列s转换为一个列表 |
set(s) | 转换为可变集合 |
dict(d) | 创建一个字典。d必须是一个(key, value)元组序列 |
frozenset(s) | 转换为不可变集合 |
chr(x) | 将一个整数转换为一个字符 |
ord(x) | 将一个字符转换为它的整数值 |
hex(x) | 将一个整数转换为一个十六进制字符串 |
oct(x) | 将一个整数转换为一个八进制字符串 |
数字
一些有关数字的函数
数学函数
函数 | 返回值(描述) |
---|---|
abs(x) | 返回数字的绝对值,如abs(-10) 返回 10 |
ceil(x) | 返回数字的上入整数,如math.ceil(4.1) 返回 5 |
cmp(x, y) | 如果 x < y 返回 -1, 如果 x == y 返回 0, 如果 x > y 返回 1。Python 3 已废弃,使用 (x>y)-(x<y) 替换 。 |
exp(x) | 返回e的x次幂(ex),如math.exp(1) 返回2.718281828459045 |
fabs(x) | 返回数字的绝对值,如math.fabs(-10) 返回10.0 |
floor(x) | 返回数字的下舍整数,如math.floor(4.9)返回 4 |
log(x) | 如math.log(math.e)返回1.0,math.log(100,10)返回2.0 |
log10(x) | 返回以10为基数的x的对数,如math.log10(100)返回 2.0 |
max(x1, x2,...) | 返回给定参数的最大值,参数可以为序列。 |
min(x1, x2,...) | 返回给定参数的最小值,参数可以为序列。 |
modf(x) | 返回x的整数部分与小数部分,两部分的数值符号与x相同,整数部分以浮点型表示。 |
pow(x, y) | x**y 运算后的值。 |
round(x [,n]) | 返回浮点数 x 的四舍五入值,如给出 n 值,则代表舍入到小数点后的位数。其实准确的说是保留值将保留到离上一位更近的一端。 |
sqrt(x) | 返回数字x的平方根。 |
随机数函数
函数 | 描述 |
---|---|
choice(seq) | 从序列的元素中随机挑选一个元素,比如random.choice(range(10)),从0到9中随机挑选一个整数。 |
randrange | ([start,] stop [,step]) 从指定范围内,按指定基数递增的集合中获取一个随机数,基数默认值为 1 |
random() | 随机生成下一个实数,它在[0,1)范围内。 |
seed([x]) | 改变随机数生成器的种子seed。如果你不了解其原理,你不必特别去设定seed,Python会帮你选择seed。 |
shuffle(lst) | 将序列的所有元素随机排序 |
uniform(x, y) | 随机生成下一个实数,它在[x,y]范围内 |
三角函数
函数 | 描述 |
---|---|
acos(x) | 返回x的反余弦弧度值。 |
asin(x) | 返回x的反正弦弧度值。 |
atan(x) | 返回x的反正切弧度值。 |
atan2(y, x) | 返回给定的 X 及 Y 坐标值的反正切值。 |
cos(x) | 返回x的弧度的余弦值。 |
hypot(x, y) | 返回欧几里德范数 sqrt(xx + yy)。 |
sin(x) | 返回的x弧度的正弦值。 |
tan(x) | 返回x弧度的正切值。 |
degrees(x) | 将弧度转换为角度,如degrees(math.pi/2) , 返回90.0 |
radians(x) | 将角度转换为弧度 |
数字常量
常量 | 描述 |
---|---|
pi | 数学常量 pi(圆周率,一般以π来表示) |
e | 数学常量 e,e即自然常数(自然常数) |
字符串的内建函数
序号 | 方法及描述 |
---|---|
1 |
capitalize() 将字符串的第一个字符转换为大写 |
2 |
center(width, fillchar) 返回一个指定的宽度 width 居中的字符串,fillchar 为填充的字符,默认为空格。 |
3 |
count(str, beg= 0,end=len(string)) 返回 str 在 string 里面出现的次数,如果 beg 或者 end 指定则返回指定范围内 str 出现的次数 |
4 |
bytes.decode(encoding="utf-8", errors="strict") Python3 中没有 decode 方法,但我们可以使用 bytes 对象的 decode() 方法来解码给定的 bytes 对象,这个 bytes 对象可以由 str.encode() 来编码返回。 |
5 |
encode(encoding='UTF-8',errors='strict') 以 encoding 指定的编码格式编码字符串,如果出错默认报一个ValueError 的异常,除非 errors 指定的是'ignore'或者'replace' |
6 |
endswith(suffix, beg=0, end=len(string)) 检查字符串是否以 obj 结束,如果beg 或者 end 指定则检查指定的范围内是否以 obj 结束,如果是,返回 True,否则返回 False. |
7 |
expandtabs(tabsize=8) 把字符串 string 中的 tab 符号转为空格,tab 符号默认的空格数是 8 。 |
8 |
find(str, beg=0, end=len(string)) 检测 str 是否包含在字符串中,如果指定范围 beg 和 end ,则检查是否包含在指定范围内,如果包含返回开始的索引值,否则返回-1 |
9 |
index(str, beg=0, end=len(string)) 跟find()方法一样,只不过如果str不在字符串中会报一个异常. |
10 |
isalnum() 如果字符串至少有一个字符并且所有字符都是字母或数字则返 回 True,否则返回 False |
11 |
isalpha() 如果字符串至少有一个字符并且所有字符都是字母则返回 True, 否则返回 False |
12 |
isdigit() 如果字符串只包含数字则返回 True 否则返回 False. |
13 |
islower() 如果字符串中包含至少一个区分大小写的字符,并且所有这些(区分大小写的)字符都是小写,则返回 True,否则返回 False |
14 |
isnumeric() 如果字符串中只包含数字字符,则返回 True,否则返回 False |
15 |
isspace() 如果字符串中只包含空白,则返回 True,否则返回 False. |
16 |
istitle() 如果字符串是标题化的(见 title())则返回 True,否则返回 False |
17 |
isupper() 如果字符串中包含至少一个区分大小写的字符,并且所有这些(区分大小写的)字符都是大写,则返回 True,否则返回 False |
18 |
join(seq) 以指定字符串作为分隔符,将 seq 中所有的元素(的字符串表示)合并为一个新的字符串 |
19 |
len(string) 返回字符串长度 |
20 |
ljust(width[, fillchar]) 返回一个原字符串左对齐,并使用 fillchar 填充至长度 width 的新字符串,fillchar 默认为空格。 |
21 |
lower() 转换字符串中所有大写字符为小写. |
22 |
lstrip() 截掉字符串左边的空格或指定字符 |
23 |
maketrans() 创建字符映射的转换表,对于接受两个参数的最简单的调用方式,第一个参数是字符串,表示需要转换的字符,第二个参数也是字符串表示转换的目标。 |
24 |
max(str) 返回字符串 str 中最大的字母。 |
25 |
min(str) 返回字符串 str 中最小的字母。 |
26 |
replace(old, new [, max]) 把 将字符串中的 str1 替换成 str2,如果 max 指定,则替换不超过 max 次。 |
27 |
rfind(str, beg=0,end=len(string)) 类似于 find()函数,不过是从右边开始查找. |
28 |
rindex( str, beg=0, end=len(string)) 类似于 index(),不过是从右边开始. |
29 |
rjust(width,[, fillchar]) 返回一个原字符串右对齐,并使用fillchar(默认空格)填充至长度 width 的新字符串 |
30 |
rstrip() 删除字符串字符串末尾的空格. |
31 |
split(str="", num=string.count(str)) num=string.count(str)) 以 str 为分隔符截取字符串,如果 num 有指定值,则仅截取 num+1 个子字符串 |
32 |
splitlines([keepends]) 按照行('\r', '\r\n', \n')分隔,返回一个包含各行作为元素的列表,如果参数 keepends 为 False,不包含换行符,如果为 True,则保留换行符。 |
33 |
startswith(substr, beg=0,end=len(string)) 检查字符串是否是以指定子字符串 substr 开头,是则返回 True,否则返回 False。如果beg 和 end 指定值,则在指定范围内检查。 |
34 |
strip([chars]) 在字符串上执行 lstrip()和 rstrip() |
35 |
swapcase() 将字符串中大写转换为小写,小写转换为大写 |
36 |
title() 返回"标题化"的字符串,就是说所有单词都是以大写开始,其余字母均为小写(见 istitle()) |
37 |
translate(table, deletechars="") 根据 str 给出的表(包含 256 个字符)转换 string 的字符, 要过滤掉的字符放到 deletechars 参数中 |
38 |
upper() 转换字符串中的小写字母为大写 |
39 |
zfill (width) 返回长度为 width 的字符串,原字符串右对齐,前面填充0 |
40 |
isdecimal() 检查字符串是否只包含十进制字符,如果是返回 true,否则返回 false。 |