提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
多行语句
python语句中一般以新行作为语句的结束符。 但是我们可以使用斜杠( \)将一行的语句分为多行显示:
total = item_one + \
item_two + \
item_three
语句中包含 [], {} 或 () 括号就不需要使用多行连接符。如下实例:
days = ['Monday', 'Tuesday', 'Wednesday',
'Thursday', 'Friday']
多个变量赋值
Python允许你同时为多个变量赋值。例如:
a = b = c = 1
以上实例,创建一个整型对象,值为1,三个变量被分配到相同的内存空间上。 您也可以为多个对象指定多个变量。例如:
a, b, c = 1, 2, "john"
以上实例,两个整型对象 1 和 2 分别分配给变量 a 和 b,字符串对象 “john” 分配给变量 c。
五个标准数据类型
Python有五个标准的数据类型:
- List item
- Numbers(数字)
- String(字符串)
- List(列表)
- Tuple(元组)
- Dictionary(字典)
Python支持四种不同的数字类型:
- int(有符号整型)
- long(长整型,也可以代表八进制和十六进制)
- float(浮点型)
- complex(复数)
常用函数
1、使用“+”可以对多个字符串进行拼接 语法格式: str1 + str2 需要注意的是字符串不允许直接与其他类型进行拼接,我们可以将num转换为字符串再进行拼接
2、len()函数来计算字符串的长度 语法格式: len(string)
3、encode()方法进行编码
- UTF-8编码,汉字占3个字节
- GBK或者GB2312,汉字占2个字节
这时我们可以通过使用encode()方法进行编码后再进行获取长度。 例如:
str1 = "你好"
len(str1)
2
len(str1.encode('gbk'))
4
len(str1.encode('utf-8'))
6
4、截取字符串 语法格式: string[start : end : step]
5、分割字符串 使用split()方法把字符串分割成列表 语法格式 : str.split(sep, maxsplit) 参数说明: str:表示要进行分割的字符串 sep:用于指定分隔符,可以包含多个字符,默认为None,即所有空字符(包括空格、换行"n”、制表符“t”等)。 maxsplit:可选参数,用于指定分割的次数,如果不指定或者为-1,则分割次数没有限制,否则返回结果列表的元素个数最多为 maxsplit+1 返回值:分隔后的字符串列表。
str1 = "i am a good boy!"
>>> str1.split() #采用默认分割符进行分割
['i', 'am', 'a', 'good', 'boy!']
>>> str1.split(" ") #采用空格进行分割
['i', 'am', 'a', 'good', 'boy!']
>>> str1.split(" ", 3) #采用空格进行分割,并且只分割前3个
['i', 'am', 'a', 'good boy!']
注意默认情况下按空格分割
6、检索字符串 count()方法 语法格式 : str.count(sub[, start[, end]]) 作用:用于检索指定字符串在另一个字符串中出现的次数,如果检索的字符串不存在则返回0,否则返回出现的次数
>>> str1 = "hello world"
>>> print(str1.count('o'))
find()方法 语法格式 : str.find(sub[, start[, end]]) 作用:检索是否包含指定的字符串,如果检索的字符串不存在则返回-1,否则返回首次出现该字符串时的索引
>>> str1 = "hello world!"
>>> str1.find('wo')
6
index()方法 语法格式 : str.index(sub[, start[, end]]) 作用:和find方法类似,也用于检索是否包含指定的字符串,使用index方法,当指定的字符串不存在时会抛异常
>>> str1 = "hello world!"
>>> str1.index('w')
6
startswith()方法 语法格式 : str.startswith(prefix[, start[, end]]) 作用:检索字符串是否以指定的字符串开头,如果是则返回true,否则返回false
>>> str1 = "hello world!"
>>> str1.startswith('hello')
True
>>> str1.startswith('hi')
False
>>>
语法格式 : str.endswith(prefix[, start[, end]]) 作用:检索字符串是否以指定的字符串结尾,如果是则返回true,否则返回false。
>>> str1 = "hello world!"
>>> str1.endswith('world!')
True
>>> str1.endswith('haha')
False
lower()方法 语法格式 : str.lower() 作用:将字符串中的大写字母转换为小写字母
>>> str1 = "Hello World!"
>>> str1.lower()
'hello world!'
upper()方法 语法格式 : str.upper() 作用:将字符串中的小写字母转换为大写字母
>>> str1 = "Hello World!"
>>> str1.upper()
'HELLO WORLD!'
strip()方法 语法格式 : str.strip([chars]) 作用:去除字符串前后(左右侧)的空格或特殊字符
>>> str1 = " hello world! "
>>> str1.strip()
'hello world!'
>>> str2 = "#hello world#@#"
>>> str2.strip('#')
'hello world#@'
>>> str3 = "@hello world!@."
>>> str3.strip('@.')
'hello world!'
lstrip()方法 语法格式 : str.lstrip([chars]) 作用:去除字符串前面(左侧)的空格或特殊字符
>>> str1 = " hello world! "
>>> str1.lstrip()
'hello world! '
>>> str2 = "#hello world#@#"
>>> str2.lstrip('#')
'hello world#@#'
>>> str3 = "@.hello world!@."
>>> str3.lstrip('@.')
'hello world!@.'
rstrip()方法 语法格式 : str.rstrip([chars]) 作用:去除字符串后面(右侧)的空格或特殊字符
>>> str1 = " hello world! "
>>> str1.rstrip()
' hello world!'
>>> str2 = "#hello world#@#"
>>> str2.rstrip('#')
'#hello world#@'
>>> str3 = "@.hello world!@."
>>> str3.rstrip('@.')
'@.hello world!'
使用“%”操作符 语法格式: ‘%[-][+][0][.n]格式化字符’%exp
>>> template = '学号:%d,姓名:%s,班级:%s'
>>> print(template% (123,'张三','一年级'))
学号:123,姓名:张三,班级:一年级
format() String.format() 输出指定的内容
>>> user_show_name = 'hello,{name},welcome to here,do you like ,{name}'
>>> print(user_show_name.format(name='yanyan'))
hello,yanyan,welcome to here,do you like ,yanyan
format_map() String.format_map() 将字典中的参数传递进字符串中,输出
hello = "My name is {name},I am {age} years old.I like {hobby}"
print(hello.format_map({'name':'yanyan','age':19,'hobby':'music travel'}))
isalnum() String.isalnum() 判断字符串中是否全部为数字或者英文
test_str01 = 'helloIam19yearsold'
test_str02 = 'hello,I am 19 years old'
print(test_str01.isalnum()) # True
print(test_str02.isalnum()) # False
join() sep.join(seq) 连接字符串数组。将字符串、元组、列表中的元素以指定的字符(分隔符)连接生成一个新的字符串
>>> name = ['张学友','刘德华','郭富城','黎明']
>>> print('--'.join(name))
张学友--刘德华--郭富城--黎明
replace 替换 String.replace(old,new,count) 将字符串中的old字符替换为New字符,count为替换的个数
str = 'hello,world,hello'
print(str.replace('hello','Hello',1))
输出的效果如下:
Hello,world,hello
split String.split() 切割
str = 'hello,world,hello'
print(str.split()) # ['hello,world,hello']
print(str.split('o')) # ['hell', ',w', 'rld,hell', '']
print(str.split(',')) # ['hello', 'world', 'hello']
python中的字符串并不允许修改值,只允许覆盖值。
情况如下:
str = 'hello,world'
print(str[0]) # h
# 尝试去修改
str[0] = 'H'
print(str) # TypeError: 'str' object does not support item assignment
# 下面这种情况是我们常见的情况,其实是属于一种字符串之前的值被新的值覆盖掉了
str = 'Hello,YanYan'
print(str) # Hello,YanYan
列表
List(列表) 是 Python 中使用最频繁的数据类型。 列表可以完成大多数集合类的数据结构实现。它支持字符,数字,字符串甚至可以包含列表(即嵌套)。 列表用 [ ] 标识,是 python 最通用的复合数据类型。 列表中值的切割也可以用到变量 [头下标:尾下标] ,就可以截取相应的列表,从左到右索引默认 0 开始,从右到左索引默认 -1 开始,下标可以为空表示取到头或尾。 加号 + 是列表连接运算符,星号 * 是重复操作。如下实例:
list = [ 'runoob', 786 , 2.23, 'john', 70.2 ]
tinylist = [123, 'john']
print list # 输出完整列表
print list[0] # 输出列表的第一个元素
print list[1:3] # 输出第二个至第三个元素
print list[2:] # 输出从第三个开始至列表末尾的所有元素
print tinylist * 2 # 输出列表两次
print list + tinylist # 打印组合的列表
元组
元组是另一个数据类型,类似于 List(列表)。 元组用 () 标识。内部元素用逗号隔开。但是元组不能二次赋值,相当于只读列表。 元组是不允许更新的。而列表是允许更新的
tuple = ( 'runoob', 786 , 2.23, 'john', 70.2 )
tinytuple = (123, 'john')
print tuple # 输出完整元组
print tuple[0] # 输出元组的第一个元素
print tuple[1:3] # 输出第二个至第四个(不包含)的元素
print tuple[2:] # 输出从第三个开始至列表末尾的所有元素
print tinytuple * 2 # 输出元组两次
print tuple + tinytuple # 打印组合的元组
字典
字典(dictionary)是除列表以外python之中最灵活的内置数据结构类型。列表是有序的对象集合,字典是无序的对象集合。 两者之间的区别在于:字典当中的元素是通过键来存取的,而不是通过偏移存取。 字典用"{ }"标识。字典由索引(key)和它对应的值value组成。
dict = {}
dict['one'] = "This is one"
dict[2] = "This is two"
tinydict = {'name': 'runoob','code':6734, 'dept': 'sales'}
print dict['one'] # 输出键为'one' 的值
print dict[2] # 输出键为 2 的值
print tinydict # 输出完整的字典
print tinydict.keys() # 输出所有键
print tinydict.values() # 输出所有值
输出结果为:
This is one
This is two
{'dept': 'sales', 'code': 6734, 'name': 'runoob'}
['dept', 'code', 'name']
['sales', 6734, 'runoob']
Python数据类型转换
有时候,我们需要对数据内置的类型进行转换,数据类型的转换,你只需要将数据类型作为函数名即可。 以下几个内置的函数可以执行数据类型之间的转换。这些函数返回一个新的对象,表示转换的值。
int(x [,base])
将x转换为一个整数
long(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)
将一个整数转换为一个字符
unichr(x)
将一个整数转换为Unicode字符
ord(x)
将一个字符转换为它的整数值
hex(x)
将一个整数转换为一个十六进制字符串
oct(x)
将一个整数转换为一个八进制字符串
is 与 == 区别:
is 用于判断两个变量引用对象是否为同一个(同一块内存空间), == 用于判断引用变量的值是否相等。
资料来源
|