python学习总结

本文详细介绍了Python中的数据类型,包括数字、字符串、列表、元组和字典,以及它们的常用操作如多行语句、变量赋值、数据类型转换、字符串的长度计算、编码处理、切片、分割、检索等功能。此外,还讲解了is与==的区别,展示了Python数据类型的灵活性和实用性。
摘要由CSDN通过智能技术生成

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档


多行语句

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 用于判断两个变量引用对象是否为同一个(同一块内存空间), == 用于判断引用变量的值是否相等。

资料来源

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值