循环
FOR循环和循环范围
sit
es = ["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的用法
翻转字符串
-
print(s[::-1])
可以,但不优雅
-
print("".join(reversed(s)))
可以,也不优雅
-
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():相反
标签:字符,引号,print,range,循环,字符串 From: https://www.cnblogs.com/gaoshiyu/p/17870952.html