课堂笔记
用书:《python编程从入门到实践》
基础语法
变量
命名
- 变量名只能包含字母,数字,下划线;数字不能开头
- 不能包含空格,可以用下划线连接单词
变量名只是一个标签
数据类型
不可变数据:Number数字、String字符串、Tuple元组
可变数据:List列表、Dictionary字典、Set集合
数字number
1.整型int
- ** 表示乘方运算 比如x**y表示x的y次方
- 除法有两个运算符。/返回一个浮点数,//返回一个整数
2.浮点型float
- 浮点数的运算包含的小数位数可能是不准确的
- 两个数字相除,结果是浮点数;
3.复数complex
4.bool
字符串string
用单引号或双引号括起的都是字符串
常用内置函数
修改字符串的大小写
'''
1.title()将每个单词的首字母改为大写
2.upper()全大写
3.lower()全小写
'''
name = "ada lovelace"
print(name.title())
name = "Ada Lovelaces"
print(name.upper())
print(name.lower())
'''
输出: Ada Lovelace
ADA LOVELACES
ada lovelaces
'''
合并(拼接)字符串
'''
使用+合并字符串
'''
first_name = "ada"
last_name = "lovelaces"
full_name = first_name + " " + last_name
print(full_name)
#输出:ada lovelaces
删除空白
'''
rstrip()删除末尾空白
lstrip()删除前端空白
strip()删除两端空白
这种删除是暂时的,要永久删除空白就要将删除操作的结果存到变量中
'''
>>>favorite_language = ' python '
>>>favorite_language.rstrip()
' python'
>>>favorite_language.lstrip()
'python '
>>>favorite_language.strip()
'python'
- 字符串里面的空白用replace(" “,”")删除
连接 +
字符串和数字的拼接
Python 不允许直接拼接数字和字符串,所以我们必须先将数字转换成字符串
name = ”小明“
age = 8
info = name + "已经" + str(age) + "岁了"
截取字符串(字符串切片)
获取单个字符
Python 允许从字符串的两端使用索引:
- 当以字符串的左端(字符串的开头)为起点时,索引是从 0 开始计数的;
- 当以字符串的右端(字符串的末尾)为起点时,索引是从 -1 开始计数的;
a = "hello,world"
print(a[6])
print(a[-5])
获取多个字符
strname[start : end : step]
url = "https://www.baidu.com/"
print(url[12:17])
print(url[12:-5])
print(url[6:19:3])
print(url[12:])
print(url[:17])
print(url[::3])
分割字符串
split() 方法可以实现将一个字符串按照指定的分隔符切分成多个子串,这些子串会被保存到列表中(不包含分隔符),作为方法的返回值反馈回来。
str.split(sep,maxsplit)
在未指定 sep 参数时,split() 方法默认采用空字符进行分割。
maxsplit:可选参数,用于指定分割的次数,最后列表中子串的个数最多为 maxsplit+1。如果不指定或者指定为 -1,则表示分割次数没有限制。
str = "百度 >>> www.baidu.com"
list1 = str.split()
print(list1)
list1 = str.split('>>>')
print(list1)
list1 = str.split('.')
print(list1)
list1 = str.split('>',3)
print(list1)
合并字符串
使用 join() 方法合并字符串时,它会将列表(或元组)中多个字符串采用固定的分隔符连接在一起。
newstr = str.join(iterable)
newstr:表示合并后生成的新字符串;
str:用于指定合并时的分隔符;
iterable:做合并操作的源字符串数据,允许以列表、元组等形式提供。
list = ['www','baidu','com']
new_list = '.'.join(list)
print(newlist)
统计字符串出现的次数
count() 方法用于检索指定字符串在另一字符串中出现的次数,如果检索的字符串不存在,则返回 0,否则返回出现的次数。
str.count(sub[,start[,end]])
str = "www.baidu.com"
str.count('.')
str.count('.'3)
str.count('.',4)
str.count('.',4-4)
str.count('.',4,-5)
检测字符串中是否包含某子串
find() 方法用于检索字符串中是否包含目标字符串,如果包含,则返回第一次出现该字符串的索引;反之,则返回 -1。
str.find(sub[,start[,end]])
str = "www.baidu.com"
str.find('.')
str.find('.',4)
str.find('.',4,-5)
同 find() 方法类似,index() 方法也可以用于检索是否包含指定的字符串,不同之处在于,当指定的字符串不存在时,index() 方法会抛出异常。
str = "www.baidu.com"
str.index('.')
str.index('e')
startswith()&endswith()
startswith() 方法用于检索字符串是否以指定字符串开头,如果是返回 True;反之返回 False。
str = "baidu.com"
str.startswith("c")
str.startswith("www")
str.startswith("i",2)
endswith() 方法用于检索字符串是否以指定字符串结尾,如果是则返回 True;反之则返回 False。
str = "baidu.com"
str.endswith("com")
大小写转换
title() 方法用于将字符串中每个单词的首字母转为大写,其他字母全部转为小写。
lower() 方法用于将字符串中的所有大写字母转换为小写字母。
upper() 的功能和 lower() 方法恰好相反,它用于将字符串中的所有小写字母转换为大写字母。
swapcase()将字符串中大写转换为小写,小写转换为大写
str = "Hello,wang xiaoming"
print(str.title())
print(str.lower())
print(str.upper())
print(str.swapcase())
文本对齐
Python str 提供了 3 种可用来进行文本对齐的方法,分别是 ljust()、rjust() 和 center() 方法
ljust() 方法的功能是向指定字符串的右侧填充指定字符,从而达到左对齐文本的目的。
rjust() 方法是向字符串的左侧填充指定字符,从而达到右对齐文本的目的。
center() 让文本居中
str = "https://www.baidu.com/"
str1 = "www.baidu.com"
print(str.ljust(25)) #rjust();center()
print(str1.ljust(25))
print(str.ljust(25,'-'))
print(str1.ljust(25,'-'))
去除字符串中空格(删除指定字符)
- strip():删除字符串前后(左右两侧)的空格或特殊字符。
- lstrip():删除字符串前面(左边)的空格或特殊字符。
- rstrip():删除字符串后面(右边)的空格或特殊字符。
这里的特殊字符,指的是制表符(\t)、回车符(\r)、换行符(\n)等。
str = " baidu.com \t\n\r"
print(str.strip()) #lstrip(),rstrip()
print(str.strip(" ,\r"))
替换
replace(old, new, count)
- old,旧字符或字符串
- new,新字符或字符串
- count,最大替换数量,从起始位置开始计数,默认替换所有
- 注意:replace函数替换字符串,不影响原字符串
s1 = '2021.3.19'
s2 = s1.replace('.','-')
print(s2)
s3 = s1.replace('.','-',1)
print(s3)
s4 = s1.replace('.19',' ')
print(s4)
格式化
- %
%5d 右对齐,不足左边补空格 5是一共占的宽度
%-5d 左对齐,不足右边补空格
%05d 右对齐,不足左边补0
%4.2f 4是整个浮点数的长度,包括小数。.2表示保留2位小数。
print('我叫%s,身高%scm'%(name,height))
- format
print('name is {}, age is {}'.format('Tom',12))
print('name is {1}, age is {0}'.format(12,'Tom'))
print('name is {name}, age is {age}'.format(name = 'Tom', age = 20))
##左对齐< 右对齐> 中间对齐^
print('name is {0:*<11},age is {1:0>11},gender is {3:_^11}'.format('Tom',12,'male'))#所占宽度为11,长度不足分别用*,0,_补足
- f
name = 'Tom'
age = 12
print(f'name is {
name},age is {
age}')
列表List []
列表:有序集合 (很像数组)
列表中的元素不一定是同一类型
bicycles = ['trek', 'cannondale', 'redline', 'specialized']
print(bicycles)
print(bicycle[0])
print(bicycle[-1]) #访问最后一个列表元素
print(bicycle[-2]) #访问倒数第二个
'''
输出:['trek', 'cannondale', 'redline', 'specialized']
trek
specialized
redline
'''
在列表中添加/删除元素
'''
1.在列表末尾添加元素:append()
2.在列表中插入元素:insert(x,'A') 将A插入到下标为x的元素前面【添加的元素作为列表的第x个元素】
3.在列表中删除元素:del 将值删除后无法再访问它
pop() 删除列表中的元素并返回这个元素
remove(data) 只知道要删除元素的值不知道它所处的位置时使用,使用remove()从列表中删除元素时,也可接着使用它的值。如果列表中有多个data,则需要删除多次
'''
motorcycles = []
motorcycles.append('honda')
motorcycles.append('yamaha')
motorcycles.append('suzuki')
print(motorcycles)
motorcycles.insert(0, 'ducati')
print(motorcycles)
del motorcycles[0]
print(motorcycles)
a = motorcycles.pop(1) #a = motorcycles.pop()表示删除列表末尾的值
print(motorcycles)
print(a)
b = 'honda'
motorcycle.remove(b)
print(motorcycles)
print(b.upper())
'''
输出:['honda', 'yamaha', 'suzuki']
['ducati', '