python循环与字符串

循环与字符串

循环

for循环与范围

def sumfromton(m,n):
total=0
for x in range(m,n+1): #注意:range(x,y)是左闭右开区间,包含x,不包含y
total += x
return total

def sumfromton(m,n):
return sum(range(m,n+1))

结果相同
range(m,n,k)
第一个参数m指起始范围
第二个参数n指终止范围
第三个参数k指步长

for i in range(0,10,2):
print(i)
输出
0
2
4
6
8

反向输出

for i in reversed(range(0,5,1)):
pritn(i)
输出:
4
3
2
1
0

while循环

不知道循环什么时候停下来时使用while循环
while 布尔表达式:
语句 (条件为真时执行,语句为假时停止)

break与continue语句

continue #跳过这次循环
break #跳出当前整个循环
pass #什么也不做,占位符(不会被运行)

for _ in range(5) "_"通常作为一个占位符变量,当循环中不需 要使用循环变量的值时,可以将其命名为"_"

假.死循环

与环境交互后,在特定条件下中止的循环
例:while True:
语句
if 条件:
break(终止)

求质数

def IsPrime(n):
if n < 2:
return False
if n == 2:
return True
if n % 2 == 0:
return False
macfactor = round(n**0.5)
for factor in range(3,maxfactor+1,2):
if n%factor == 0:
return False
retutn True

字符串

四种引号

单引号''和双引号""是最常见的两种字符串引号
三引号可以写多行

print("""date
whale""")
输出
date
whale

字符串中换行符号

前面有\的字符叫转义序列

print("date\whale")
输出
date
whale
print("双引号"")
输出
双引号"

其他转义序列
\n 换行
\t 制表符
转义字符只作为一个字符

repper函数

s1="data\twhale"
s2="date whale"
prinr(repr(s1))
print(repr(s2))
输出
"data\twhale"
"date whale"

一些字符串常量

import string
print(string.ascli_letters)
输出大小写字母
print(string.ascli_lowercase)
输出小写字母
print(string.digits)
输出数字
print(string.punctuation)
输出!@#等字符
print(sting.printable)
输出所有字符

字符串运算

字符串的加乘

print("abc" + "def")
print("abc" * 3)
输出
abcdef
abcabcabc
字符串只能和字符串做加乘运算

in运算
可用于查看某部分(前面字符串)是否在(后面的)字符串中

print("ring" in "strings")
print("wow" in "amazing!")
print("Yes" in "yes!")
输出
True
False
False

字符串索引和切片
单个字符索引

s = "Datawhale"
print(s)
print(s[0])
print(s[1])
print(s[2])
print(s[3])
输出
Datawhale
D
a
t
a
[]从零开始
len(s)
9

负数索引

print(s) # 字符串从右到左是从-1开始的
print(s[-5])
print(s[-4])
print(s[-3])
print(s[-2])
print(s[-1]) # 倒数第一个
输出
Datawhale
w
h
a
l
e

用切片来获取字符串的一部分

print(s[0:4]) # 左闭右开,第五个取不到
print(s[4:9])
Data
whale
print(s[0:2])
print(s[2:4])
print(s[5:7])
print(s[7:9])
输出
Da
ta
ha
le

切片的默认参数
左边不写东西默认从0开始
右边不写东西默认执行到-1结束

print(s[:4])
print(s[4:])
print(s[:])
输出
Data
whale
Datawhale

切片的第三个参数
步长,隔多少个取一次

print(s[:9:3]) # 经过3的长度取一次 ## 这里默认0时取第一次
print(s[1:4:2])
输出
Daa
aa

翻转字符串

print(s[::-1]) # 步长为负数就从右往左切片
elahwataD
print("".join(reversed(s))) #join()可以把一个序列依次添加到字符串内
elahwataD

def reverseString(s):
return s[::-1]
print(reverseString(s))
elahwataD

字符串的循环
用索引的 for 循环

for i in range(len(s)):
print(i, s[i])
0 D
1 a
2 t
3 a
4 w
5 h
6 a
7 l
8 e

也可以不用索引

for c in s: # 依次取出
print(c)
D
a
t
a
w
h
a
l
e

也可以使用 enumerate() 获得元素的序号
这里同时获取了元素的序号和其对应的元素

for idx, c in enumerate(s):
print(idx, c) # 也可以用c[idx] 不过不优雅
0 D
1 a
2 t
3 a
4 w
5 h
6 a
7 l
8 e

zip(a, b) 可以在一次循环中,分别从 a 和 b 里同时取出一个元素

for a, b in zip(s, reverseString(s)):
print(a, b) # 分别取出一个赋给a,b
D e
a l
t a
a h
w w
h a
a t
l a
e D

用 split() 来循环
默认以空格为分隔符分隔字符串并产生列表

class_name.split() 本身会产生一个新的叫做“列表”的东西,但是它不存储任何内容

class_name = "learn python the smart way 2nd edition"
for word in class_name.split(): # 以列表输出
print(word)

learn
python
the
smart
way
2nd
edition

posted @   往日か  阅读(40)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 25岁的心里话
· 按钮权限的设计及实现
点击右上角即可分享
微信分享提示