循环和字符串·

发布时间 2023-12-01 22:01:17作者: gaodogegger

循环

FOR循环和循环范围

sites = ["Baidu", "Google","Runoob","Taobao"]for site in sites:print(site)

以上代码执行输出结果为:

Baidu Google Runoob Taobao

FOR循环的特点

基于提供的范围,重复执行特定次数的操作

range是什么东西

range(x,y)是左闭右开区间,包含x,不包含y

sum(range(5,10))

就是5+6+7+8+9的和

如果我们省略第一个参数

比如range(6)则默认起始范围为0,等价于range(0,n+1)

如果我们添加第三个参数

第三个参数为步长,类似于等差数列

步长为-1的话类似于反转函数

range(0,10,-1)

等价于

reversed(range(0,10,1))

FOR嵌套循环

下面的代码将输出二维坐标 def printCoordinates(xMax,yMax): for x in range(1,xMax+1): for y in range(1,yMax+1): print(f"( {x} ,{y} ) ",end="" )

print()

执行 printCoordinates(5,5)

(1,1)(1,2)(1,3)(1,4)(1,5) (2,1)(2,2)(2,3)(2,4)(2,5)

(3,1)(3,2)(3,3)(3,4)(3,5)

(4,1)(4,2)(4,3)(4,4)(4,5)

(5,1)(5,2)(5,3)(5,4)(5,5)

WHILE循环

不知道循环什么时候停下来,用while循环

BREAK和CONTINUE

continue跳过这次循环

break跳出当前整个循环

pass啥也不做,占位

假·死循环

与环境交互后,在特定条件下终止的循环

isPrime判断质数

不是最快的写法,但最容易理解 `def isPrime(n): if n <2: return False for factor in range(2,n): if n % factor ==0: return False return True`

字符串

四种引号

引号的作用就是将文字包裹起来,告诉Python"这是个字符串!"

单引号'和双引号"是最常见的两种字符串引号
`` print('单引号')`        
`print(“双引号")`

单引号

双引号

三个引号的情况不太常见,但是它在一些场合有特定的作用(如函数文档doc-strings)

print('''三个单引号''') print("""三个双引号""")`

三个单引号

三个双引号

我们为什么需要两种不同的引号?

为了写出这样的句子 print("聪明办法学 Python 第二版的课程简称是P25") 聪明办法学 Python 第二版的课程简称是"P2S"

如果我们偏偏要用一种引号呢

这会导致语法错误,Python 无法正确判/断一个字符串的终止位置

字符串中的换行符号

前面有反斜杠 的字符,叫做转义序列比如\n 代表换行,尽管它看起来像两个字符,但是Python 依然把它视为一个特殊的字符

三引号里面'\'用来取消换行

其他的转义序列

\ 加一个引号能打出单独的引号

两个\输出一个\

\t是制表符也是跳格键,相当于Tab

转义序列只作为一个字符存在

repr函数能看到python内部函数究竟长啥样

一些字符串常量

import string print(string.ascii_letters) abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ

print(string.ascii_lowercase) abcdefghijklmnopqrstuvwxyz

print("string.ascii_uppercase) ABCDEFGHIJKLMNOPORSTUVWXYZ

diigits是数字类型

punctuation是标点符号

printable是所有python支持的字符

whitespase是空白字符

字符串可以运算

in 运算(超级好用!)

1 print("ring" in "strings") # True 2 print("wow” in "amazing!") # False 3 print("Yes"in "yes!") # False 4 print(“" in "No way!") # True 5 print("聪明"in"聪明办法学 Python")# True

字符串索引和切片

单个字符索引

索引可以让我们在特定位置找到一个字符

1 s ="Datawhale' 2 print(s) 3 print(s[0]) 4 print(s[1])

5 print(s[2])

6 print(s[3])

Datawhale

D

a

t

a

负数索引

-1代表倒数第一个

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

print(s[0:4])

print(s[4:9])

左闭右开原则

左边没参数默认0,右边没参数默认-1

切片的第三个参数step

类似range的用法

翻转字符串

  1. print(s[::-1])

    可以,但不优雅

  2. print("".join(reversed(s)))

    可以,也不优雅

  3. def reverseString(s):

    return s[::-1]

print(reverseString(s))

优雅,实在是太优雅了

字符串循环

用索引的for循环

for i in range(len(s)):

print(i,s[i])

output:

0 D

1 A

2 T

3 A

其实可以不用索引,用in

<!--for c in s:-->

<!--print (c)-->

output:

D

A

T

A

或:

for idx,c in enumerate(s):

print(idx,c)

0 D

1 A

2 T

3 A

zip函数

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

split

class_name.split() 本身会产生一个新的叫做“列表的东西,但是它不存储任何内容 class_name = "learn python the smart way 2nd edition"

for word in class name_split(): print(word) output: learn python

the

smart way

2nd

edition ['learn','python','the',smart'"way','2nd',edition']

一些和字符串相关的内置函数

str()和len()

ord():输入字符输出ascii码

chr():相反