python基本数据类型
IOP
变量
定义
变量 顾名思义,可变的量,可赋值任意的数据类型,python能自动识别变量值的数据类型
程序中用到的各种数据类型都存储在变量中
type(x) 查看对象类型
id(x) 获取对象内存地址
a = 1
b = 'hello' #字符串赋值变量需要用英文'单引号'或者'双引号'括起来
type(a)
<class 'int'>
type(b)
<class 'str'>
print(a)
1
print(b) #调用变量时,不需要带上引号,如果加了引号会直接当成字符串处理
hello
变量命名规则
- 以字母、下画线开头,后面可以跟任意字母、数字和下画线
- 不能以数字开头
- 不能有空格以及标点符号
- 不能使用关键字和内置函数作变量名
- 变量名对英文字母的大小写敏感
- 最好使用驼峰式(helloWorld)或下划线(hello_world)的命名方式
关键字和内置函数(不能用作变量名)
import keyword
keyword.kwlist
help("keywords")
import builtins
dir(builtins)
常量
- 常量是在指定了初始值后,不应该再改变
- 常量一般用大写字母表示
- 遵循常量约定,使代码具有良好可读性
数字类型
整数、浮点数和复数
数据类型有:数字、字符串、布尔值、列表、元组、字典
数字类型非数据类型,数字类型有:整数、浮点数和复数。
- 整数和浮点数的差异时是否包含小数部分
- 浮点数必须包含一个小数点
int表示整数float表示浮点数
a = 3
b = 3.0
type(a)
<class 'int'>
type(b)
<class 'float'>
浮点数的两种表示形式:
- 十进制形式:5.21,52.1,521.0
- 科学计数形式 5.21e2,5.21.E2 也就是5.21乘10 的平方
只有浮点数可以使用科学计数形式
复数的虚部用j或J表示
复数的基本运算:
a = 3 + 4j
print(a.real)
3.0
print(a.imag)
4.0
进制之间的转换
进制之间可通过内置函数相互转换
- int(x,d) 接收的是字符串x,转换为对应的d进制的数为十进制的数
- bin(x) 将十进制的参数x转换为二进制
- oct(x) 将十进制的参数x转换为八进制
- hex(x) 将十进制的参数x转换为十六进制
内置模块
python中包含大量的标准库,库也就是别人写好的代码集合,在程序中可以直接使用python中标准库中的模块。
import 导入使用
math模块
import math #导入模块
print(math.sin(5))
print(math.cos(6))
print(math.log(8,2))
dir(math) #查看模块有哪些用法
random模块
import random
random.random() # 随机生成一个函数,它在[0,1]范围之间
random.randint(a,b) # 用于生成一个指定范围内的整数,包含a,b
内置函数range()
内置函数可以直接使用,不需要导入
range(10) #生成一个0到10的列表,包括0但不包括10
range(1, 10) #生成一个指定范围的列表,包括1,不包括10
字符串
字符串的表示方式
python中最常用的字符串表示方式是单引号('')和双引号("")
- 单引号
- 双引号
- 混合使用
s = 'Hello World!'
print(s)
r = "Hello World!"
print(r)
print("I'd much rather you 'not'.") #混合使用
print('I "said" do not much this.')
转义符<br />**' 表示单引号," **表示双引号
\ 被称作转义字符,除了用来表示引号,还有比如用
- \n 表示字符串中的换行(相当于按一下回车键的效果)
- \t 表示字符串中的制表符(相当于按一下tab键的效果)
- \ 表示字符串中的 \ (因为单个斜杠被用来做转义了,所以真的要表示 \ 字符,就要两个斜杠)

如果字符串本身包括单引号或双引号,则需要特殊处理
print('I\'m in a file.')
** 还有个用处,就是用来在代码中换行,而不影响输出的结果:
"this is the \
same line"
python中还有一种表示字符串的方法:
三个引号(''')或者(""")
在三个引号中,可以直接换行,而不用换行符\n
'''
Stay hungry,
stay foolish.
-- Steve Jobs
'''
字符串的常用操作
字符串的行为称为方法,只能用于定义好的对象(变量),函数是可以独立的操作
调用对象的方法,对象名.方法名
字符串的大小写转换
s.lower 转换为字符串的小写形式
s.upper 转换为字符串的大写形式
s.title 将字符串所有单词的首字母变成大写
say_hello = 'Dear my Daughter'
upper_say_hello = say_hello.upper()
lower_say_hello = say_hello.lower()
title_say_hello = say_hello.title()
print (say_hello+"\n")
print (upper_say_hello+"\n")
print (lower_say_hello+"\n")
print (title_say_hello+"\n")
输出
Dear my Daughter
DEAR MY DAUGHTER
dear my daughter
Dear My Daughter
通过索引访问单个字符
str = 'python'
print(str[2])
输出
t
字符串拼接运算 +
str1 = 'py'
sr2 = 'thon'
str3 = str1 + str2
print(str3)
输出
python
字符串的连接与切分
s.join(str) 以指定字符s(分隔符)将字符串str连接生成一个新的字符串
s.strip(s,[num]) 通过指定分隔符s对字符串str进行切分,num指定切分次数
str1 = 'python'
print(','.join(str1))
str2 = "my heart will go on"
s = str2.split(' ')
print(s)
print(':'.join(s))
s3 = str2.split(' ',2)
print(s3)
输出
p,y,t,h,o,n
['my', 'heart', 'will', 'go', 'on']
my❤️will:go:on
['my', 'heart', 'will go on']
字符串内置函数
reversed() 内置函数
mystring = "my heart will go on"
print(' '.join(reversed(mystring.split())))
输出
on go will heart my
● 索引
● s.lower() ——转换为字符串的小写形式
● s.upper() ——转换为字符串的大写形式
● s.title() ——将字符串所有单词的首字母变成大写
● s.replace(old,new) ——返回一个新的字符串,将s中的old替换为new
● s.find(p) ——在字符串s中查找字符串p是否存在,如果存在返回字符串p所在的索引位置,如果不存在返回-1
● .join(s) ——字符串拼接
● s.split() ——对字符串进行切分,默认按所有空字符(空格、换行、制表符)切分,也可以指定分割符
● s.strip() ——去除字符串首尾空格(不包含内部)
● len(s) ——获取字符串s的内容长度
● reversed() ——内置函数
字符串和数字之间的转换
str(a) 将数字转换为字符串
int(s) 将字符串转换为十进制的数
int(x,d) 将为d进制的数字x字符,转换为十进制的数
print(str(15))
print(int('11'))
print(int('11', 8))
输出
15
11
9
正则表达式
KMP模块:(re模块)高效的模式匹配算法
re是python里的正则表达式模块
- 字符串前面加了r,是raw的意思,它表示对字符串不进行转义
- “\b”在正则表达式中表示单词的开头或结尾,空格、标点、换行都算是单词的分割。而“\b”自身又不会匹配任何字符,它代表的只是一个位置
- ^ 匹配输入字符串的开始位置
- $ 匹配输入字符串的结尾位置
- “.”在正则表达式中表示除换行符以外的任意字符
- “\S”它表示的是不是空白符的任意字符。注意是大写字符S
-
- 匹配前面的子表达式一次或多次
- ? - 重复零次或一次,或指明一个非贪婪限定符
- “*”表示数量:它表示前面的字符可以重复任意多次(包括0)
- {n,} - 重复n次或更多次
- {n,m} - 重复n到m次
- “.*?” 贪婪匹配(最长匹配)
- I.*?e 懒惰匹配(最短匹配)
- \w - 匹配字母或数字或下划线或汉字(我试验下了,发现python 3.x版本可以匹配汉字,但2.x版本不可以)
- \s - 匹配任意的空白符
- ^ - 匹配字符串的开始
- $ - 匹配字符串的结束
- \W - 匹配任意不是字母,数字,下划线,汉字的字符
- \D - 匹配任意非数字的字符
- \B - 匹配不是单词开头或结束的位置
print ("\bhi")
print (r"\bhi")
输出
hi
\bhi
写一个正则表达式,能匹配出多种格式的电话号码,包括
(021)88776543
010-55667890
02584453362
0571 66345673
\(?0\d{2,3}[) -]?\d8
findall 按照提供的正则表达式,去匹配文本中的所有符合条件的字符串,返回结果是一个包含所有匹配的list。
import re
text = "Hi, I am Shirley Hilton. I am his wife."
m = re.findall(r"hi", text)
if m:
print (m)
else:
print ('not match')
输出
['hi', 'hi']
本文来自博客园,作者:hcypeu,转载请注明原文链接:https://www.cnblogs.com/hcypeu/p/16458291.html

浙公网安备 33010602011771号