Python学习笔记
date
Apr 10, 2024
slug
Pythonxuexibiji
status
Published
tags
summary
Python学习笔记
type
Post
URL
初识 python
循环语句 while
whilie 判断条件: 执行代码
条件为真时执行代码,执行代码后再次判定条件,结果为真时再次执行代码。
*需要注意冒号和缩进
终止循环代码
break: 让当前这个循环立即停止,继续执行下段代码 continue: 停止当前本次循环,继续执行下一次循环
循环语句 for
for 循环可以遍历任何序列的项目,如一个列表或者一个字符串。
for <variable> in <sequence>: <statements> else: <statements>
for 循环实例
languages = ["C", "C++", "Perl", "Python"] for x in languages: print (x) >>> C C++ Perl Python >>>
range()函数
如果需要遍历数字序列,可以使用内置 range() 函数。它会生成数列,例如:
for i in range(5): print(i) >>> 0 1 2 3 4 >>>
也可以使用 range 指定区间的值:
for i in range(5,9) : print(i) >>> 5 6 7 8 >>>
也可以使 range 以指定数字开始并指定不同的增量(甚至可以是负数;有时这也叫做'步长'):
for i in range(0, 10, 3) : print(i) >>> 0 3 6 9 >>> # 负数 for i in range(-10, -100, -30) : print(i) >>> -10 -40 -70 >>>
字符串
字符串(string,简写为str)是 Python 中最常用的数据类型之一。可以使用引号( ' 或 " )来创建字符串。
访问子字符串,可以使用方括号
[]来截取字符串(这种方式也被称为切片),字符串的截取的语法格式如下:变量[头下标:尾下标] # 切片实例 str="W3cschool" #取W3C print(str[:3]) print(str[:-6]) #取sch print(str[3:6]) print(str[-6:-3]) #只有头下标/尾下标的情况 print(str[:3]) #只有尾下标的情况,默认头下标为0(正序的0,也就是字符串开始的地方) #也就是从字符串开头截取到3的位置(也就是W3C) print(str[3:]) #只有头下标的情况,默认尾下标为0(逆序的0,也就是字符串结束的地方) #也就是从3的位置截取到字符串结尾(也就是school) #更多应用 str2 ="https://www.w3cschool.cn/" #截取协议名称 print(str2[:5]) #也就是截取前五位 #截取域名 print(str2[8:-1]) #也就是截取第八位到倒数第一位
字符串的格式化
f字符串用法
f-string 函数格式化字符串以 f 开头,后面跟着字符串,字符串中的表达式用大括号 {} 包起来,它会将变量或表达式计算后的值替换进去,实例如下:
name = 'W3Cschool' print(f'Hello {name}') # 替换变量 print(f'{1+2}') # 使用表达式 >>> Hello W3Cschool 3 >>>
字符串常规操作
字符串的操作一般不会对原字符串产生影响. 一般是返回一个新的字符串
字符串大小写转换
capitalize() 函数可以将字符串的「首字母大写」
# 语法:string.capitalize() # 返回首字母大写的「新字符串」 str1 = 'hello world' print(str1.capitalize()) >>> Hello world >>>
title() 函数返回所有单词的第一个字符大写的字符串的一个副本。
# 语法:string.title() str1 = "this is string example....wow!!!" print (str1.title()) >>> This Is String Example....Wow!!! >>>
lower() 函数转换字符串中所有大写字符为小写
# 语法:string.lower() str = "ABCDEFG" print (str.lower()) >>> abcdefg >>>
upper() 函数将字符串中的小写字母转为大写字母
# 语法:string.upper() str = "this is string example....wow!!!" print "str.upper() : ", str.upper() >>> str.upper() : THIS IS STRING EXAMPLE....WOW!!! >>>
替换与切割
strip() 函数去掉字符串左右两端的空白符(空格, \t, \n)
# 语法:string.strip()
replace(old, new, count) 函数把字符串中的old(旧字符串)替换成new(新字符串),如果指定第三个参数max,则替换次数不超过max次
# 语法:string.replace( old, new, count ) # old :(必选,字符串类型)被替换的字符串 # new :(必选,字符串类型)替换后的字符串 # count :(可选,整型)替换的次数 str1 = 'hello hello hello hello world' str2 = str1.replace('hello', 'world') print(str2) >>> world world world world world >>>
「不指定」次数,默认替换「所有」匹配到的字符串,替换次数为「正数」时,按照从左到右的顺序替换,设置几次就替换几次
str1 = 'hello_1 hello_2 hello_3 hello_4' print(str1.replace('hello', 'world', 1)) print(str1.replace('hello', 'world', 3)) >>> world_1 hello_2 hello_3 hello_4 world_1 world_2 world_3 hello_4 >>>
替换次数为「负数」时,无论负几,都会替换所有匹配到的内容
str1 = 'hello_1 hello_2 hello_3 hello_4' print(str1.replace('hello', 'world', -1)) print(str1.replace('hello', 'world', -3)) >>> world_1 world_2 world_3 world_4 world_1 world_2 world_3 world_4 >>>
指定的次数必须是「整型」,否则会报错
查找和判断
查找
find()函数检测某个字符是否包含在这个字符串中,如果存在就返回这个字符串开始的位置下标,不存在则返回-1
# 语法:string.find("xxx", m ,n) # m: 开始位置下标 n:结束位置下,可以省略 # 这里取值仍然是左闭右开 str1 = 'hello world and python' print(str1.find('hello')) # 开始和结束下标可以省略,表示在整个字符串中查找,默认是从左往右找找到第一个就返回,不会再往后找了 # 输出结果:0 print(str1.rfind('and')) # 表示在整个字符串中查找是从右往左找,找到第一个就返回,不会再往后找了 # 输出结果:12 print(str1.find('and', 10, 20)) # 在10到19这个区间,查找“and” # 输出结果:12 print(str1.find('hei')) # 如果没有返回-1 # 输出结果:-1
index()函数检测某个字符是否包含在这个字符串中,如果存在就返回这个字符串开始的位置下标,如果不存在就会报错
# 语法:string.index("xxx", m, n) # m: 开始位置下标 n:结束位置下,可以省略 # 这里取值仍然是左闭右开 str1 = 'hello world and python' print(str1.index('python')) # 如果是rindex则是从右侧开始查找 # 输出结果:16 print(str1.index('123')) # 查找不存在的字符串 # 输出结果:直接报错(ValueError: substring not found)
in 可以判断元素是否存在列表中,返回 True 或 False,也可以为 not in
# 语法:"xxx" in string # 存在返回 True,不存在返回 Falsh
判断
startswith() 判断字符串开始位是否是某元素
endswith() 判断字符串结束位是否是某元素
# 语法:string.startswith(item) # string.endswith(item) # item为想要判断的元素,返回一个布尔值
startswith() 和 endswith() 还可以传入初始位置与结束位置,用于指定想要查询的字符串的起始于结尾位置。
str_1 = "My name is xiaoming, I'm from BeiJing." print (str_1.startswith( 'string', 8 )) # 从第九个字符开始的字符串是否以 string 开头 print (str_1.endswith( 'is ', 2, 10 )) # 从第2个字符开始到第十个字符结束的字符串是否以 is 结尾
isdigit() 函数是检测输入字符串是否只由数字组成。如果字符串只包含数字则返回 True 否则返回 False。
# 语法:变量.isdigit() dream = "123456" print(dream.isdigit()) # 返回:True dream = "123abc456" print(dream.isdigit()) # 返回:False