Python学习3 字符串和相关常用函数

字符串声明

双引号,单引号,三单引号,三双引号
里面有双引号,外面使用单引号
里面有单引号,外面使用双引号
或者使用转义字符

#字符串
m='hello'
n="hello"
#里面有双引号,外面使用单引号
a='"hello"'
#里面有单引号,外面使用双引号
b="I'm dq"
c='''hello'''
d="""hello"""i='''I say:"ok"'''
j="""I'dq"""print(a,b,c,d,i,j,sep='\n')

注意:不能字符串+数字,会报错,必须两者都是字符串

#报错TypeError: can only concatenate str (not "int") to str
print("3243"+3)
print("3243" + 3+"2343")

规定:
两个字符串类型的数据使用加法运算符,用来拼接两个字符串。在Python里数字和字符串不能做加法运算。

数字和字符串之间使用乘法运算符,用于将字符串重复多次。

字符串之间使用比较运算符,会根据各个字符的编码值逐一进行比较。

数字和字符串之间,做 == 运算的结果是 False,做 != 运算的结果是 True,其它的比较运算均不支持,否则会报错。

易错题:

#2
print(‘127’+‘124’)
#真实情况下输出127124,但答题的时候加上‘’

1)
在这里插入图片描述
2)
在这里插入图片描述
3)
在这里插入图片描述

转义字符

\n换行
\t水平制表符
\斜杠
\r是回车,光标到行首
\v:垂直制表
如:
aaaa水平

a
a
a
a垂直
tab默认四个空格


#字符串2-转义字符
m='he\'ll\'o'
n="he\"ll\"o"
print(m,n,sep='\n')

格式化打印字符串

格式化打印字符串有两种方式:
1.可以使用 % 占位符来表示格式化一个字符串。
%s == > 字符串占位符。
%d == > 整数占位符。
%nd == > 打印时显示 n 位,如果不够,在前面使用空格补齐。
%f == > 浮点数占位符。
%. nf == > 保留小数点后 n 位。
%x == > 将数字使用十六进制输出。
%% == > 输出一个 % 。

2.format()方式
在这里插入图片描述
在这里插入图片描述

字符串下标

1.字符串下标
0–n-1
-n-(-1)

2.字符串一旦定义不能发生变化
x=‘89’
x[0]=‘3’(错误)
x=‘2345’(指向一个新的字符串)
在这里插入图片描述

3.字符串切片
字符串名称[start :end :step]
【start,end)
step默认为1,从左往右取
如果只设置start,会“截取”到最后。
如果只设置end,会从头开始“截取”到end前一个字符。
这三个都可以缺省,即取出所有的

正向:

#字符串3-切片1
x='1234567'
#[start:end)从0开始-12
print(x[0:2:1],sep='\n')
#[start:end)从0开始-1234567
print(x[0:7:1],sep='\n')
#全部缺省,取出所有的-1234567
print(x[::],sep='\n')
#取出[1,3)--123
print(x[:3:],sep='\n')
#隔2个取--1357
print(x[0::2],sep='\n')

逆向:
step=-1从右往左取

#字符串3-切片2
x='1234567'
#(-n)--(-1):这里-7--(-1)
#step=1从左向右--34
print(x[-5:-3:1],sep='\n')
#step=-1从右到左,7654
print(x[-1:-5:-1],sep='\n')
#从第-2到第-5,从右往左,每隔两个字符做1次切片,输出64
print(x[-2:-5:-2])
##从右往左每隔3个字符做1次切片,输出741
print(x[::-3],sep='\n')

易错题:
只有单个数字【n】,是取出单个字符


#3
s="abcdef"
#【-6,-1】
#【0,5】
print(s[3],s[-3],s[0:-3],s[:-3],sep='\n')
#输出
# d
# d--(-3)从右到左第三个-1,-2,-3
# abc--【0,-3)从头开始,到第三个字符-6,-5,-4
# abc--从头开始,到第三个字符
#4
s="ABCDEFG"
#[0,6]
#[-7,-1]
print(s[4],s[-4],s[0:-4],s[:-4],sep="\n")
#-7-6-5-4-3-2-1
#0123456
#对应ABC
#s[4]--E
#s[-4]--D
#s[0:-4]--ABC[0,-4)
#s[:-4]--ABC[0,-4)

在这里插入图片描述

字符串常见函数

在这里插入图片描述

获取字符串长度-len()函数

在这里插入图片描述

查找内容-find()函数

描述:查找字符串中指定的子字符串sub第一次出现的位置,可以规定字符串的索引查找范围。若无则返回 -1。

语法:str.find(sub,start,end) -> int 返回整数
sum —要索引的子字符串。
start —索引的起始位置。默认值为0。
end —索引的结束位置。默认值为字符串长度len(str)。
[start,end) 不包括end。

#字符串函数-find
x='i love python'
#语法:字符串名称。find(子字符串,开始位置,结束位置)
#返回字符子串python第一次出现的位置(下标,从0开始)
print(x.find('python',0,len(x)),end='\n')
#没有查找到就返回-1
print(x.find('python',0,6),end='\n')

查找内容-rfind()函数

描述:查找字符串中指定的子字符串sub最后一次出现的位置,可以规定字符串的索引查找范围。若无则返回 -1。

语法:str.rfind(sub,start,end) -> int 返回整数
sum —要索引的子字符串。
start —索引的起始位置。默认值为0。
end —索引的结束位置。默认值为字符串长度len(str)。
[start,end) 不包括end。

注:rfind()函数用法与find()函数相似,rfind()函数返回指定子字符串最后一次出现的位置,find()函数返回指定子字符串第一次出现的位置。

#字符串函数-rfind
x='ip lovnep python'
#语法:字符串名称。find(子字符串,开始位置,结束位置)
#返回字符子串python最后一次出现的位置(下标,从0开始)--n
print(x.rfind('n',0,len(x)),end='\n')
#查的是第一个字符:p--10
print(x.rfind("python"))
#没有查找到就返回-1
print(x.rfind('python',0,6),end='\n')

查找内容-index()函数

描述:查找字符串中第一次出现的子字符串的位置,可以规定字符串的索引查找范围[star,end)。若无则会报错。

语法:str.index(sub, start, end) -> int 返回整数
sub —— 查找的子字符串。
start —— 索引的起始位置,默认为0。
end —— 索引的结束位置,默认为字符串的长度。
[star,end)


# 字符串函数-index
str = "i love python"
# 与find用法一致
print(str.index("p", 4, 12))
# 若无则会报错-ValueError: substring not found
print(str.index("k", 4, 12))
print(str.index("i"))

查找内容-rindex()函数

描述:查找字符串中最后一次出现的子字符串的位置,可以规定字符串的索引查找范围[star,end),若无则会报错。

语法:str.rindex(sub, start, end) -> int 返回整数。
sub —— 查找的子字符串。
start —— 索引的起始位置,默认为0。
end —— 索引的结束位置,默认为字符串的长度。
[star,end)


#字符串函数-rindex
str = "i love python python"
#返回字符子串p后一次出现的位置(下标,从0开始)
print(str.rindex("p"))
#返回字符子串o后一次出现的位置(下标,从0开始)
print(str.rindex("o",0,len(str)))
# 若无则会报错-ValueError: substring not found
print(str.rindex("x"))

判断-endswith()函数

描述:判断字符串是否以指定字符或子字符串结尾。

语法:str.endswith(“suffix”, start, end) 或
str[start,end].endswith(“suffix”) 用于判断字符串中某段字符串是否以指定字符或子字符串结尾。
—> bool 返回值为布尔类型(True,False)
suffix — 后缀,可以是单个字符,也可以是字符串,还可以是元组("suffix"中的引号要省略)。
start —索引字符串的起始位置。
end — 索引字符串的结束位置。
str.endswith(suffix) star默认为0,end默认为字符串的长度减一(len(str)-1)。
注意:空字符的情况。返回值通常也为True

#字符串函数-endswith
#查找字符串是否以字符结尾,是返回True,不是返回False
str = "i love python"
#True
print(str.endswith("n"))
#False
print(str.endswith("n",0,6))
#True
print(str.endswith("python"))
#True
print(str.endswith("python",0,len(str)))
#True-空字符串
print(str.endswith(""))

判断-startswith()函数

描述:判断字符串是否以指定字符或子字符串开头。
用法与endswitch一致

#字符串函数-startswith
#查找字符串是否以字符开头,是返回True,不是返回False
str = "ilove python"
#True
print(str.startswith("i"))
#True
print(str.startswith("i",0,6))
#True
print(str.startswith("ilove"))
#False
print(str.startswith("python",0,len(str)))
#True-空字符串
print(str.startswith(""))

判断-isalpha()函数

isalpha()的作用是检查一个字符串中所有的字符是否都是由字母构成的,并且至少有1个字符。
string_name.isalpha()

该函数没有参数。
string_name是要判断的字符串或字符串变量。
如果字符串中除了字母和中文外,不包括任何其它字符(数字,符号等)且不是空字符串,则返回True,否则返回False.
示例:
在这里插入图片描述

判断- isdigit() 函数

isdigit()方法检测字符串是否只由数字组成。
如果字符串只包含数字则返回 True 否则返回 False。

str = "123456"  #True
print (str.isdigit())str = "this is string example....wow!!!"#False
print (str.isdigit())str = "thisd22is string example....wow!!!"#False
print (str.isdigit())
str = "可靠 11"#False
print (str.isdigit())

判断-isalnum()函数

检查一个字符串是否是由某门语言的有效字符或数字构成。
1)该函数检查字符串是否由字母[a-z,A-Z](也包括构成其它语言的字符,如汉字,俄文,日文,韩文)或数字[0-9]及其组合组成的,如果是则返回True,否则返回False。

3)组成字符串的字符中有是空字符串,不能有特殊字符,不可打印字符,控制符,标点符号等返回False。

isalnum使用的例子
1、字符串仅包含字母str1 = "Python"
print(str1.isalnum())输出:True2、字符串仅包含数字str1 = "5211314"
print(str1.isalnum())输出:True3、字符串由字母或数字组成str1 = "HelloPython3"
print(str1.isalnum())输出:True4、字符串由字母和汉字组成rtn_value = "翔宇亭IT乐园".isalnum()
print(rtn_value)输出:True只包括汉字和英文字母,所以为True.5、字符串中包含空格str1 = "I am a student"
print(str1.isalnum())输出:False6、字符串中包含标点符号str1 = "Perfect!"
print(str1.isalnum())输出:False7、字符串中包含大小写的字母str1 = "GoodBoy123"
print(str1.isalnum())输出:True8、空字符str1 = ""
print(str1.isalnum())输出:False9、非英文字母str1 = "Ятебялюблю" #俄语
print(str1.isalnum())输出:True10、包含特殊字符str1 = "Hello@biye5u"
print(str1.isalnum())输出:False

判断-isspace()函数

isspace()的作用是检查字符串是否仅包含空白字符(纯空白字符”“,’‘,转义字符\n,\t,\v,\r),如果字符串仅包含空白字符则返回True,否则返回False。

示例1:
在这里插入图片描述
示例2:
在这里插入图片描述

计算-出现次数count()函数

描述:统计字符串里某个字符出现的次数。可以选择字符串索引的起始位置和结束位置。

str = "i love python,i am learning python"print(str.count("i"))print(str.count("i",2))print(str.count("i",2,5))print(str.count("am"))

替换内容-replace()函数

replace() 方法把字符串中的 old(旧字符串) 替换成 new(新字符串),如果指定第三个参数max,则替换不超过 max 次。

str.replace(old, new[, max])
old – 将被替换的子字符串。

new – 新字符串,用于替换old子字符串。

max – 可选字符串, 替换不超过 max 次

返回字符串中的 old(旧字符串) 替换成 new(新字符串)后生成的新字符串,如果指定第三个参数max,则替换不超过 max 次。

实例
str = "this is string example....wow!!! this is really string"
print (str.replace("is", "was"))
print (str.replace("is", "was", 3))
输出:thwas was string example…wow!!! thwas was really stringthwas was string example…wow!!! thwas is really string

易错题:
字符串下标从0开始
在这里插入图片描述

a="abcd"
print(a)
str=a.replace('a','e') #改变的不是原字符串
print(a)
print(str)#是生成一个新字符串a='e'+a[1:]
print(a)

切割字符串-partition()函数:

描述:根据指定的分隔符(sep)将字符串进行分割。从字符串左边开始索引分隔符sep,索引到则停止索引。

语法:str.partition(sep) -> (head, sep, tail) 返回一个三元元组,head:分隔符sep前的字符串,sep:分隔符本身,tail:分隔符sep后的字符串。

#字符串-partition
#partition('分隔符')指定的分隔符(sep)将字符串进行分割
#遇到第一个分隔符就停止
#有:返回(分隔符左边,分隔符,分隔符右边)
#无:返回(整个字符串,分隔符)
str = "https://www.baidu.com/"print(str.partition("://"))
print(str.partition(","))
print(str.partition("."))
print(type(str.partition("://")))
# 输出:
# ('https', '://', 'www.baidu.com/')
# ('https://www.baidu.com/', '', '')
# ('https://www', '.', 'baidu.com/')
# <class 'tuple'>

切割字符串-rpartition()函数

描述:根据指定的分隔符(sep)将字符串进行分割。从字符串右边(末尾)开始索引分隔符sep,索引到则停止索引。

语法:str.rpartition(sep) -> (head, sep, tail) 返回一个三元元组,head:分隔符sep前的字符串,sep:分隔符本身,tail:分隔符sep后的字符串。

#字符串-rpartition
#rpartition('分隔符')指定的分隔符(sep)将字符串进行分割--从右往左
#遇到第一个分隔符就停止
#有:返回(分隔符左边,分隔符,分隔符右边)
#无:返回(分隔符,整个字符串)
str = "https://www.baidu.com/"print(str.rpartition("://"))
print(str.rpartition(","))
print(str.rpartition("."))
print(type(str.rpartition("://")))
# 输出:
# ('https', '://', 'www.baidu.com/')
# ('', '', 'https://www.baidu.com/')
# ('https://www.baidu', '.', 'com/')
# <class 'tuple'>

切割字符串-split()函数

描述:拆分字符串。通过指定分隔符sep对字符串进行分割,并返回分割后的字符串列表。

语法:str.split(sep=None, maxsplit=-1) -> list of strings 返回 字符串列表 或str.split(sep=None, maxsplit=-1)[n]

sep —— 分隔符,默认为空格,但不能为空即(")。
maxsplit —— 最大分割参数,默认参数为-1。
[n] —— 返回列表中下标为n的元素。列表索引的用法。

#字符串函数-split()
a="d/q.i/s.co/ding"
#没有分割,输出整个字符串--['dqiscoding']
print(a.split())
#以.分割--['dq', 'is', 'coding']
print(a.split("."))
#分割后的字符串的第一个,再次分割,从0开始
print(a.split('.')[0].split('/'))
print(a.split('.')[1].split('/'))

切割字符串-rsplit()函数

rsplit() 方法通过指定分隔符对字符串进行分割并返回一个列表,默认分隔符为所有空字符,包括空格、换行(\n)、制表符(\t)等。类似于 split() 方法,只不过是从字符串最后面开始分割。

#字符串函数-rsplit()
#从字符串最后面开始分割,但输出时还是从前面往后输出
a="d/q.i/s.co/ding"
#没有分割,输出整个字符串--['dqiscoding']
print(a.rsplit())
#以.分割--['dq', 'is', 'coding']
print(a.rsplit("."))
#1为最大分割次数,此时只分割一次
print(a.rsplit(".",1))
#分割后的字符串的第一个,再次分割,从0开始
print(a.rsplit('.')[0].rsplit('/'))
print(a.rsplit('.')[1].rsplit('/'))

切割字符串-splitlines()函数

splitline()方法用于在线边界处分割线。该函数返回字符串中的行列表,包括换行符(可选)。

用法:

string.splitlines([keepends])
参数:
keepends(可选):当设置为True时,结果列表中将包含换行符。
这可以是一个数字,指定换行的位置,也可以是任何Unicode字符,例如“\n”,“\r”,“\r\n”等作为字符串的边界。

代码#1

string = “Welcome everyone to\rthe world of Geeks\nGeeksforGeeks”
print (string.splitlines( ))
print (string.splitlines(0))
print (string.splitlines(True))

输出:

[‘Welcome everyone to’, ‘the world of Geeks’, ‘GeeksforGeeks’]

[‘Welcome everyone to’, ‘the world of Geeks’, ‘GeeksforGeeks’]

[‘Welcome everyone to\r’, ‘the world of Geeks\n’, ‘GeeksforGeeks’]

代码#2

string = “Cat\nBat\nSat\nMat\nXat\nEat”

print (string.splitlines( ))
print(‘India\nJapan\nUSA\nUK\nCanada\n’.splitlines())

输出:

[‘Cat’, ‘Bat’, ‘Sat’, ‘Mat’, ‘Xat’, ‘Eat’]

[‘India’, ‘Japan’, ‘USA’, ‘UK’, ‘Canada’]

修改大小写-capitalize()函数

描述:将字符串的第一个字母变成大写,其余字母变为小写。

语法:str.capitalize() —> str 返回字符串

程序示例:

str1 = "i Love python"str2 = " i Love python"str3 = "I Love python"print(str1.capitalize())print(str2.capitalize())print(str3.capitalize())程序运行结果: 
I love pythoni love pythonI love python

修改大小写-title()函数

描述:返回一个满足标题格式的字符串。即所有英文单词首字母大写,其余英文字母小写。

语法:str.title() -> str 返回一个字符串

程序示例:

str = "i love python"print(str.title())程序运行结果: 
I Love Python

修改大小写-upper()函数

描述:将字符串中的所有小写字母转换为大写字母。

语法:str.upper() -> str 返回字符串

程序示例:

str1 = "i love python"  str2 = "I Love Python"  print(str1.upper())print(str2.upper())程序运行结果:
I LOVE PYTHONI LOVE PYTHON

修改大小写-lower()函数

描述:将字符串中的所有大写字母转换为小写字母。

语法:str.lower() -> str 返回字符串

程序示例:

str1 = "I Love Python"str2 = "Groß - α" print(str1.lower())
print(str2.lower())程序运行结果:i love python
groß - α

空格处理-ljust()函数

描述:返回一个原字符串左对齐,并使用fillchar填充(默认为空格)至指定长度的新字符串。如果指定的长度小于原字符串的长度则返回原字符串。

语法:str.ljust(width, fillchar) -> str 返回一个新的字符串

width —— 指定字符串的输出长度。

fillchar—— 将要填充的单字符,默认为空格。

程序示例:

str = "python"print(str.ljust(30,"*"))print(str.ljust(30))print(str.ljust(30),"1")程序运行结果:
python************************pythonpython                         1

空格处理- rjust()函数

描述:返回一个原字符串右对齐,并使用fillchar填充(默认为空格)至指定长度的新字符串。如果指定的长度小于原字符串的长度则返回原字符串。

语法:str.ljust(width, fillchar) -> str 返回一个新的字符串

width —— 指定字符串的输出长度。

fillchar—— 将要填充的单字符,默认为空格。

程序示例:
str = "python"print(str.rjust(30,"*"))print(str.rjust(30))print("1",str.rjust(30))程序运行结果:
************************pythonpython1                         python

空格处理-center()函数

描述:返回一个长度为width,两边用fillchar(单字符)填充的字符串,即字符串str居中,两边用fillchar填充。若字符串的长度大于width,则直接返回字符串str。

语法:str.center(width , “fillchar”) -> str 返回字符串 注意:引号不可省

width —— 指定字符串长度。

fillchar —— 要填充的单字符,默认为空格。

程序示例:

str = "i love python"print(str.center(20,"*"))print(str.center(1,"*"))print(str.center(20,"8"))print(str.center(20))程序运行结果:
***i love python****i love python888i love python8888i love python

空格处理–strip()函数

描述:从字符串str中去掉在其左右两边chars中列出的字符。

注:chars传入的是一个字符数组,编译器去除两端所有相应的字符,直到出现第一个在chars中不匹配的字符。详看示例。

语法:str.strip(chars) -> str 返回一个新的字符串
chars —— 要去除的字符 默认为空格或换行符。

#字符串函数-strip
str = "123456789321"
#strip()从字符串str中去掉在其左右两边chars中列出的字符
#去掉了两边包含123的字符--456789
print(str.strip("123"))
str1 = "my name is ymyyyy"
#去掉了两边包含myis空格的字符--name
print(str1.strip("my is"))
print(str1.strip("my "))

空格处理–lstrip()函数

描述:从字符串str中去掉在其左边chars中列出的字符。

#字符串函数-lstrip
#去掉左边列出的字符,直到遇到第一个在chars中不匹配的字符
str1 = "bacjabck123kluabc"
print(str1.lstrip("abc"))
str2 = "12578asdfgh12"
print(str2.lstrip("12"))

空格处理-rstrip()函数

描述:从字符串str中去掉在其右边chars中列出的字符。

#字符串函数-rstrip
#去掉右边列出的字符,直到遇到第一个在chars中不匹配的字符
str1 = "bacjabck123kluabc"
print(str1.rstrip("abc"))
str2 = "12578asdfgh12"
print(str2.rstrip("12"))

字符串拼接-join()函数

join(): 连接字符串数组。将字符串、元组、列表中的元素以指定的字符(分隔符)连接生成一个新的字符串
语法: ‘sep’.join(seq)

参数说明
sep:分隔符。可以为空
seq:要连接的元素序列、字符串、元组、字典
上面的语法即:以sep作为分隔符,将seq所有的元素合并成一个新的字符串

返回值:返回一个以分隔符sep连接各个元素后生成的字符串


#对字符串进行操作>>> seq2 = "hello good boy doiido"
>>> print ':'.join(seq2)
h:e:l:l:o: :g:o:o:d: :b:o:y: :d:o:i:i:d:o

maketrans()方法

描述
maketrans() 方法用于创建字符映射的转换表,对于接受两个参数的最简单的调用方式,第一个参数是字符串,表示需要转换的字符,第二个参数也是字符串表示转换的目标。

两个字符串的长度必须相同,为一一对应的关系。
maketrans()方法语法:
str.maketrans(intab, outtab)
参数
intab – 字符串中要替代的字符组成的字符串。
outtab – 相应的映射字符的字符串。
返回值
返回字符串转换后生成的新字符串。
使用maketrans() 方法将所有元音字母转换为指定的数字:

intab = "aeiou"
outtab = "12345"
trantab = str.maketrans(intab, outtab)str = "this is string example....wow!!!"
print (str.translate(trantab))
以上实例输出结果如下:
th3s 3s str3ng 2x1mpl2....w4w!!!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/446435.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Linux高性能服务器编程 第5章 Linux网络编程基础API

5.1 socket 地址 API 现代CPU的累加器一次都能装载(至少)4 字节(这里考虑32位机&#xff0c;下同)&#xff0c;即一个整 数。那么这4 字节在内存中排列的顺序将影响它被累加器装载成的整数的值。这就是字节序 问题。字节序分为大端字节序(big endian)和小端字节序(little endi…

Java web后端1 XML URI与URL HTTP Tomcat

tomcat地址 规则&#xff1a;http://localhost:8080/项目名/文件名.html http://localhost:8080/WebProject/test.html解决Tomcat 8080端口被占用的情况&#xff1a; cmd中输入netstat -ano 最后一列的8080&#xff0c;找到PID&#xff0c;然后在任务管理器中&#xff0c;关…

STL源码剖析 基本算法 < stl_algobase.h >

注意事项 &#xff1a; 实际使用的时候&#xff0c;使用的是<algorithm>这个头文件&#xff0c;不是题目中的< stl_algobase.h > equal函数 如果两个序列在&#xff3b;firsLlast&#xff09; 区间内相等&#xff0c;equal() 返 回 true.如果第二序列的元素比较…

华为弹性云服务器ECS使用学习0

学习大纲 ECS概述 组成&#xff1a;CPU,内存&#xff0c;镜像&#xff0c;操作系统&#xff0c;云硬盘 ECS产品优势 弹性伸缩AS&#xff08;弹性可扩展&#xff09; ECS产品架构 Region:地理位置和网络时延的划分&#xff0c;同一个Region中共享计算和存储资源&#xff…

STL源码剖析 set相关算法

STL 一共提供了四种与set (集合)相关的算法&#xff0c;分别是并集(union)、交集(intersection) > 差集 (difference)、对称差集 (symmetricdifference所谓set,可细分为数学上的定义和STL的定义两种&#xff0c;数学上的set允许元素重复而未经排序&#xff0c;例 如 &#x…

C++ 使用递增的方式初始化 一个 vector

int countOdds(int low, int high) {int count 0;std::vector<int>temp{high-low1,0};int n low;std::generate(temp.begin(),temp.end(),[&]{return n;});for (auto x:temp) {std::cout << x;}} 使用Itoa std::iota int countOdds(int low, int high) {in…

Python学习4 列表基础知识和常用函数

列表 1.格式 2.增删改查 列表下标&#xff1a; 0–n-1 -n-(-1) #对列表进行切片 #0-(n-1) #-n-(-1) list[dq,python,mm] print(list[0:2])#[0,2) print(list[-3:-2])#[-3,-2) #输出 #[dq, python] #[dq]题目&#xff1a; 【1&#xff1a;4&#xff1a;2】:[1,4),步长为2 下…

Python学习5 元组基础知识和常用函数

元组概念 元组&#xff1a;a&#xff08;1&#xff0c;23&#xff09; 列表&#xff1a;a [1,23] 创建和访问元组 Python 的元组与列表类似&#xff0c;不同之处在于tuple被创建后就不能对其进行修改&#xff0c;类似字符串。 元组与列表类似&#xff0c;也用整数来对它进行…

STL源码剖析 仿函数

仿函数 也叫函数对象1&#xff0c;具有函数性质的对象&#xff1b;2&#xff0c;这种东西在调用者可以像函数一样地被调用(调用)&#xff0c;在被调用者则以对象所定义的function call operator扮 演函数的实质角色。要将某种 “操作”当做算法的参数&#xff0c;唯一办法就是先…

Python学习6 字典基础知识和常用函数

字典概念 字典是 Python 提供的一种常用的数据结构&#xff0c;它用于存放具有映射关系的数据。为了保存具有映射关系的数据&#xff0c;Python 提供了字典&#xff0c;字典相当于保存了两组数据&#xff0c;其中一组数据是关键数据&#xff0c;被称为 key&#xff1b;另一组数…

Java web后端2 Servlet Maven HttpServlet ServletConfig ServletContext HTTP协议

创建项目 新建项目 Java Enterprise JDK1.8 Web Application Tomcat JAVA 默认 过程需要联网 Maven的配置 IDEA内置Maven 修改本地仓库位置&#xff0c;因为以后会越来越大 替换配置文件&#xff1a; 阿里云镜像下载 Servlet基础 1.动态Web资源开发 2.Servlet是使用J…

STL源码剖析 配接器

配接器(adapters)在 STL组件的灵活组合运用功能上&#xff0c;扮演着轴承、转换器的角色。Adapter这个概念&#xff0c;事实上是一种设计模式(design pattern)。 Design Patterns)) 一书提到23个最普及的设计模式&#xff0c;其中对odopter样式的定义如下&#xff1a;将 一个cl…

中科大 计算机网络3 网络边缘Edge

网络结构 边缘系统 网络核心 接入网 方块&#xff1a;边缘系统(主机) 圆的&#xff1a;网络核心&#xff0c;数据交换作用 连接边缘系统和网络核心的叫做接入网&#xff08;access&#xff09;&#xff0c;把边缘的主机接入到网络核心&#xff08;所以是分布式的&#xff09; …

STL源码剖析 入门开始 STL概论与版本简介

源代码之中时而会出现一些全局函数调用操作&#xff0c;尤其是定义于<stl_construct.h> 之中用于对象构造与析构的基本函数&#xff0c;以及定义于<stl_uninitialized.h>之 中 用 于 内 存 管 理 的 基 本 函 数 &#xff0c; 以及定义于<stl_algobase.h>之中…

中科大 计算机网络4 网络核心Core 分组交换 电路交换

网络核心 电路交换&#xff08;线路交换&#xff09;&#xff1a;打电话之前&#xff0c;先建立一条链路&#xff08;物理&#xff09; 分组交换&#xff1a;存储转发的方式 电路交换&#xff08;线路交换&#xff09; 通过信令&#xff08;控制信息&#xff0c;如&#xf…

STL 源码剖析 空间配置器

以STL的运用角度而言&#xff0c;空间配置器是最不需要介绍的东西&#xff0c;它总是隐藏在一切组件&#xff08;更具体地说是指容器&#xff0c;container&#xff09; 的背后但是STL的操作对象都存放在容器的内部&#xff0c;容器离不开内存空间的分配为什么不说allocator是内…

中科大 计算机网络7 分组延迟 分组丢失 吞吐量

分组丢失和延迟的原因 队列太长没有意义&#xff0c;用户需求 排队&#xff1a;输出能力<到来的分组&#xff0c;需要等待 四种分组延迟 节点处理延迟&#xff1a;确定的 排队延迟&#xff1a;随机&#xff0c;取决于网络情况 一个比特的传输时间&#xff1a; R1Mbps …

STL源码剖析 迭代器iterator的概念 和 traits编程技法

iterator模式定义如下&#xff1a;提供一种方法&#xff0c;使之能够依序巡访某个 聚合物(容器)所含的各个元素&#xff0c;而又无需暴露该聚合物的内部表述方式.STL的中心思想在于&#xff1a;将数据容器(containers)和算法(algorithms)分开&#xff0c;彼此独立设计&#xff…

中科大 计算机网络11 应用层原理

应用层大纲 传输层向应用层提供的服务&#xff0c;形式是Socket API&#xff08;原语&#xff09; 一些网络应用的例子 互联网层次中&#xff0c;应用层协议最多 流媒体应用&#xff1a;直播 网络核心最高的层次就是网络层 应用进程通信方式 C/S&#xff1a; 客户端&…

STL源码剖析 序列式容器 vector 和 ilist

Vector list 单向链表 ilistlist的删除操作&#xff0c;也只有指向被删除元素的迭代器会失效&#xff0c;其他迭代器不会受到影响