聪明办法学python——Task5,Task6
Task05——循环
for循环和循环范围
特点:
基于提供的范围,重复执行特定范围的操作
for x in range(n,m+1):
count+=1
return count
range(x,y)是左闭右开的区间,不含y
return sum(range(m,n+1))
range的第三个参数是步长,可正可负
for i in range(10,0,-1):
print(i)
这种建议换成以下写法:
for i in reversed(range(0,10,1)):
print(i)
这是一个反转函数
for循环嵌套
在python中for循环会花费很长时间,如果有时间限制时建议少用for循环
while循环
不知道循环何时停下可以用while
Bad Style:在已知循环范围的情况下用while
假.死循环
与环境交互后,在特定条件下终止的循环
没有结束的契机,计算机不会有死循环
isPrime判断一个数是不是质数
isPrime耗时可以少很多,比普通办法快将进6000倍
nth Prime
依次找出第n为质数
剪枝
可以缩小搜索范围和循环范围,大幅度提高程序运行效率
Task06——字符串
字符串文字
四种引号
单引号,双引号(大部分情况等价)
三个引号(不常见,可以写多行)
当在字符串中输出一个引号时,要与外部使用的引号区分开
当只是用一种引号时,会报错SytaxError,发生了语法错误,无法判断一个字符串的终止位置
字符串中的\换行符号
前面有\的字符叫做转义序列
\n换行符
print(hello\nworld)
print('''hello
world''')
上述两种写法相同
在三个引号内部本来是换行的地方可以加\表示去掉换行
其他的转义序列
输出‘,“,\之类的符号时在前边加一个\就可以正常打印出来
\t制表符#相当于键盘的Tap键
转义序列只能作为一个字符存在
REPR()VS.PRINT()
有时候print输出看到的内容并不是真正在print()中的内容,一些制表符之类的是看不到的
如果看不到的部分是一段木马病毒,那么一旦运行是很危险的
使用这个REPR()VS.PRINT()可以看到看不到的部分
print(repe())
多行字符串作为注释
不会影响执行,可以提供文本支持,虽然python本身没有多行注释
字符串常量
string
import string
print(string.)
大小写字母 .ascii_letters
小写 .ascii_lowercase
大写 .ascii_uppercase
数字 .digits
标点符号 .punctuation
所有python支持打印出的字符 .printable
空白字符 .whilespace
字符串运算
'+'表示把两个字符串连接起来
*表示有几个连接起来
in运算
print('ring' in 'string')#True
字符串索引和切片
索引从0开始,通过字符串[索引]找到位置
负数索引
-n表示倒数第n个数
切片
获取字符串的一部分
#s='Datawhale'
print(s[0:4])#Data
左闭右开
默认参数
左边为0,右边-1
第三个参数step
表示隔n取一个数,并且索引为0已经取了;
#s='Datawhale'
print(s[:9:3])#Daa
翻转字符串
reversed(字符串)
join
print("".join(reversed(字符串))
字符串循环
用索引的for循环
或者,不用索引,直接for i in 字符串(in很好用)
enumerate获得元素的序号
for idx,c in enumerate(s):
print(idx,c)
#0 D
1 a等等
zip(a,b)在一次循环中,分别从a和b里同时取出一个元素
for idx,(a,b) in enumerate(zip(s,reverseString(s))):
print(idx,a,b)
#0 D e
#1 a l等等
split()循环
class_name="learn python the smart way"
for word in class_name.split():
print(word)
名字.split()会产生一个新的叫做列表的东西
splitlines()循环
同样在产生一个列表,但不储存任何内容,且以行为分割
一些跟字符串相关的内置函数
str() len() chr() ord()
ord()是字符对应的ASCII码,chr()是ASCII码对应的字符
eval(s)会执行s算式得出结果,但是当s是一个恶意代码是这是很危险的
推荐使用ast.literal_eval(s)
如果安全会执行
字符串方法
”大写“.lower改成小写
”小写“.upper改成大写
.strip()去掉首尾的空格
”字符串“.replace('a','b')把字符串中的a用b替换掉
”“.count("")计算某个字符出现的次数
.startswith判断字符串中有没有某个部分
.endswith判断是否以什么结尾
.find找到某个东西的位置(索引)或-1(没找到)
字符串是不可变的
基础文件操作
open(file,mode)打开文件并返回文件对象
file为文件路径,mode为读取模式
-
r:以字符串形式读取
-
rd:以二进制形式读取
-
w:写入文件
-
a:追加写入文件
file.close()操作后要关闭文件
w么事会覆盖之前的内容可以用a模式追加
with语句
with open('',"w",encoding="")as file:标签:06,索引,python,print,range,循环,字符串,Task05 From: https://www.cnblogs.com/y-x-t-dbk/p/17869470.html
file.write()