首页 > 编程语言 >Python学习 CHAPTER 5循环和CHAPTER 6字符串

Python学习 CHAPTER 5循环和CHAPTER 6字符串

时间:2023-12-02 22:34:25浏览次数:55  
标签:CHAPTER 文件 False Python 字符串 print True

CHAPTER 5循环

一、FOR循环的特点

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

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

 

如果我们省略第一个参数会发生什么?
for × in range(n+1)
 #range起始范围默认为0
那如果我们添加第三个参数呢?
 #第三个参数为“步长”step for×in range(m, n+1,k):

现在我们反着来试一下!

for x in range(n,m-1,-1):

当你不知道循环什么时候停下来的时候,为什么不试试while
Bad Style:在知道循环范围的情况下使用while

二、BREAK与CONTINUE语包

for n in range(200): 
i n%3==0: 
continue #跳过这次循环elif n =8: 
break#跳出当前整个循环else: 
pass #啥也不做,占位符(不会被运行) print(n,end="")

三、假·死循环
与环境交互后,在特定条件下终止的循环

四、#剪枝

例如:

#快了一点
3deffasterIsPrime(n): 
if n<2: 
return False 
if n == 2: 
return True if n%2==0: 
return False maxFactor=round(n**日.5) for factor in range(3,maxFactor+1,2): 
if n%factor==0: 
return False return True

总结
·For循环用于指定范围的重复操作。·range()可以生成一个数字范围。
·在不知道循环什么时间停止的时候,应该试试While循环。·循环同样也是可以嵌套的。·巧妙地使用 break和 continue语句。
·合理的剪枝,缩小搜索范围/循环范围,可以大幅提高程序运行效率。

CHAPTER 6字符串

一、字符串文字

1、

四种引号
引号的作用就是将文字包裹起来,告诉Python"这是个字符串!" 单引号'和双引号"是最常见的两种字符字符串引号

print(‘单引号) 
print(“双引号”)

2、

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

3、

我们为什么需要两种不同的引号?
In [6]: 1 #为了写出这样的句子
2 print('聪明办法学Python第二版的课程简称是"P2s")

 4、

我们为什么需要两种不同的引号?
#为了写出这样的句子
print('聪明办法学Python第二版的课程简称是"P2s"‘)

5、

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

#这会导致语法错误,Python无法正确判断一个字符串的终止位置
print("聪明办法学Python第二版的课程简称是"P2S") 3 # 234

6、

如果我们偏要只用一种引号呢?
#这会导致语法错误,Python无法正确判断一个字符串的终止位置
print("聪明办法学Python第二版的课程简称是"P2S") 
# 234

二、字符串中的换行符号

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

 #这两个print()在做同样的事情
 print("Datalnwhale")#In是一个单独的换行符号

 

print(*Data 
whale""")

print("""Data 
whale""")
你可以在字符串后面使用反斜杠I来排除后面的换行。比如这里是第二行文字,但是你会看到它会紧跟在上一行句号后面。这种做法在CIL里面经常使用(多个Flag并排保持美观),但是在编程中的应用比较少。

print(”".你可以在字符串后面使用反斜杠I来排除后面的换行。
2 比如这里是第二行文字,但是你会看到它会紧跟在上一行句号后面。I 3这种做法在CIL里面经常使用(多个Flag并排保持美观),I 4但是在编程中的应用比较少。I 
5"n") 

三、其他的转义序列

1、

print("双引号:I”")

print("反斜线:I")

print(“换\n行")

print("这个是\t制\t表\t符\n也叫\t跳\t格\t键")#Tab

2、

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

print(repr(s1)) 
print(repr(s2)) 
'DataltWhale' 
'Data Whale'

3、

多行字符串作为注释

"""
Python本身是没有多行注释的,但是你可以用多行字符串实现同样的操作,还记得我们之前学过的“表达式吗?它的原理就是Python会运行它,但是马上扔掉!(垃圾回收机制)
"""
print("Amazing!") 

四、一些字符串常量

1、

import  String 
print(string.ascii_letters) 
abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVXYZ
  
print(string.ascii_lowercase) 
abcdefghijklmnopqrstuvwxyz 

print(string.ascii_uppercase)  ABCDEFGHIJKLMNOPQRSTUVwXYZ

print(string.digits)
0123456789

print(string.punctuation) 
!"#$%&'()*+,/:=>@[1]^_f}~ 

print(string.printable) 
0123456789abcdefghijklmnopqrstuVwxyzABCDEFGHIJKLMNOPQRSTUVwXYZ!"#$%&'()*+,-./:;=>?@[]^-}~  

print(string.whitespace) 
空白

print(repr(string.whitespace)) 
ItlnIrlx0b xec'

五、一些字符串的运算

1、字符串的加乘

print("abc"+"def") 
print("abc"*3) 
abcdef 
abcabcabC

2、in运算(超级好用!)

print("ring"in"stnings") #True 
print("wow"in""amazing!”) #Falser 
print("Yes"in"yes!") #False 
print("in"No way!") #True 
print(聪明”in"聪明办法学Python")#True

六、字符串索引和切片

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

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

2、负数索引

print(s) 
print(s[-5]) 
print(s[-4])  
print(S[-3]) 
print(s[-2]) 
print(SE-1]) #s[len(s)-1]

Datawhale

w
h
a
l
e
3、用切片来获取字符串的一部分

print(s[0:4]) 
print(s[4:9]) 

Data 
whale

切片的默认参数

print(s[:4]) 
print(s[4:]) 
print(S[:])
print(s[:4]) 
print(s[4:]) 
print(S[:])

Data whale Datawhale
左0右-1
切片的第三个参数step
print(s[:9:3])
Daa
Datawhale
4、翻转字符串

#可以,但是不优雅
print(s[::-1]) 

#也可以,但是还是不够优雅
print(""·join(reversed(s))  

#实在是太优雅辣
def reversestring(s): 
return s[::-1] 
print(reversestring(s))

七、字符串的循环

1、用索引的for循环

for i in range(1len(s)):

fori in range(1len(s)):
       print(i,s[i])

2、其实也可以不用索引(超级好用的in)

for c in s: 
  print(c)

3、也可以使用enumerate()获得元素的序号

for idx,c in enumerate(s): 
       print(idx,c)

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

for a,b in zip(s,reversestring(s)): 
    print(a,b)

5、用split()来循环

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

for word in class_name.split(): 
     print(word)

6、用splitlines()来循环

#跟上面一样,class_info.splitLines()也会产生一个列表,但不存储任何内容

for line in class_info.splitlines():  if(line.startswith("Prepare To Be Smart")): 
print(line)

class_info="""I 
聪明办法学Python第二版是Datawhale基于第一版教程的一次大幅更新。我们尝试在教程中融入更多计算机科学与人
我们的课程简称为P2s,有两个含义: 
Learn Python The Smart Way V2,“聪明办法学Python第二版”的缩写。
Prepare To Be Smart,我们希望同学们学习这个教程后能学习到聪明的办法,从容的迈入人工智能的后续学习。
"""

7、例子:回文判断
如果一个句子正着读、反着读都是一样的,那它就叫做“回文”

八、一些跟字符串相关的内置函数

1、str()和1en()

str(len(name))

2、chr()和ord()

print(ord("A"))
65

print(ghr(65))
A


3、
#它可以正常运行,但是我们不推荐你使用这个方法
S="(3**2+4**2)**0.5"  print(eval(s))

s="电脑当场爆炸()" 
eval(s)#如果这是一串让电脑爆炸的恶意代码,那会发生什么

#推荐使用ast.Literal_eval()

import ast 
s_safe="['P',2,'s']" s_safe_result=ast.1iteral_eval(s_safe) 
print(s_safe_result) print(type(s_safe_result))

4、一些字符串方法

s   isalnum   isalpha   isdigit   islower   isspace   isupper   

ABCD   True   True   False   False   False   True   

ABcd   True    False   False   False   False  False   

AB?!  False   False   False   False   False   True

5、
 "DDDD".lower()
dddd

"door!!!".upper()
DOOR!!!

6、print(”strip()可以将字符串首尾的空格删除"strip())

7、
print("聪明办法学Python".replace("Python","C")) 
print("Hugging LLM,Hugging LLM".replace("LLM","sD")) 
聪明办法学c Hugging SD,Hugging SD

1s="聪明办法学Python,就找Datawhale" 
2t=s.replace("聪明办法”,") 3 print(t)
学Python,就找Datawhale

print("This is a history test".count("is") 
print("This  IS ahistorytest".count("is") 
3
2
 
print("Dogs and cats!".startswith("Do")) 
print("Dogs and cats!".startswith("Don't") 
True 
False 

print("Dogs and cats!".endswith("!")) 
print("Dogs and cts!".endswith("rats!"))
True 
False

2947406598 21:12:19
 print("Dogs and cats!".find("and")) 
print("Dogs and cats!".find("or") )
5
-1 


print("Dogs and cats!".index("and")) 
print("Dogs and cats!".index("or"))
5
出错


九、

1、用f-string格式化字符串

print(f'你知道{x}+fy}是[x+y吗?")

你知道42+99是141吗?

2、其他格式化字符串的方法

如果要格式化字符串的话,f-string是个很棒的方法,Python还有其他方法去格式化字符串:

·%操作
·format()方法

十、

1、字符串是不可变的

你必须创建一个新的字符串

s=s[:3]+"e"+s[4:]

2、字符串和别名

字符串是不可变的,所以它的别名也是不可变的

s+='whale'#S=s+"whale"

十一、基础文件操作

1、Open()函数
Python open()函数用于打开一个文件,并返回文件对象,在对文件进行处理过程都需要使用到
这个函数。
open(file,mode)函数主要有file和mode两个参数,其中file为需要读写文件的路径。
mode为读取文件时的模式,常用的模式有以下几个: 
·r:以字符串的形式读取文件。·rb:以二进制的形式读取文件。
·w:写入文件。
·a:追加写入文件。
不同模式下返回的文件对象功能也会不同。

2、文件对象

open函数会返回一个文件对象。在进行文件操作前,我们首先需要了解文件对象提供了哪些常用的方法
·close()关闭文件
·在r与rb模式下: read():读取整个文件
readine():读取文件的一行readlines():读取文件的所有行·在w与a模式下: 
write (): 
writelines():

content =file.read() print(content)

3、注意每次操作结束后,及时通过 close)方法关闭文件

4、代码竟然什么也没输出,这是为什么?

      信标

5、w模式会覆盖之前的文件。如果你想在文件后面追加内容,可以使用a模式操作。

     file=open('chap6_demo.txt',w')

6、with语句
我不想写close()啦!

with open("Zen0fPy.py","w",encoding="Utf-8")as file:

      fiLe.Write (Caesar_cipher) print(len(Caesar_cipher))

总结
·单引号与双引号要适时出现,多行文本用三引号。·字符串中可以包含转义序列。·repr(能够显示出更多的信息。
·字符串本身包含许多内置方法,in是一个特别好用的玩意。·字符串是不可变的常量。
·文件操作推荐使用with open("xxx")as yyy,这样就不用写f.close()啦。

 

标签:CHAPTER,文件,False,Python,字符串,print,True
From: https://www.cnblogs.com/believeadream/p/17872360.html

相关文章

  • KMP字符串匹配算法 整理
    KMP整理题面视频详解KMP的作用KMP算法的主要作用是求出一个字符串(模式串)是否为另一个字符串(主串)的子串,并同时求出它出现的位置,也即字符串匹配问题。算法解析暴力先说暴力算法:从头开始枚举模式串位置的起点,然后遍历从起点往后\(m\)个字符,检查它是否与模式串完全相同......
  • SMTP操作使用详解并通过python进行smtp邮件发送示例
    转载请注明出处:1.SMTP     SMTP 的全称是“SimpleMailTransferProtocol”,即简单邮件传输协议。它是一组用于从源地址到目的地址传输邮件的规范,通过它来控制邮件的中转方式。SMTP协议属于TCP/IP协议簇,它帮助每台计算机在发送或中转信件时找到下一个目的地。SMTP服......
  • 聪明办法学python(4)
    聪明办法学python(4)TASK06循环LOOP1.1for循环forxinrange(m,n+1)#range(x,y)是左闭右开区间1.2rangerange(n+1)#起始范围默认为0range(m,n,k)#第三个参数为步长stepforxinrange(5,20,7)==(5+12+19)eg:只对从m到n的奇数求和defsum(m,n):......
  • 聪明学python【5】+【6】
    聪明学python【5】+【6】【5】循环for本质(功能):基于提供的范围,重复执行特定次数的操作(注意:区分C语言和python的“重复”和“循环”:C语言更倾向于用循环数字来实现重复,Python可以直接实现重复,在需要时使用数字循环)格式:#格式1————循环xforxinrange(m,n+1):#格......
  • Strings字符串
    字符串参考视频链接:【字符串】聪明办法学Python第二版_哔哩哔哩_bilibili用两种不同的引号是为了表达一些在引号里面要用到引号的情况!字符串中的转义字符前面有反斜杠\的字符,叫做转义字符(只能作为一个字符)print("双引号:\"")双引号:"print("反斜线:\\")反斜线:\print(......
  • pythonDay19
    文件的两种用途from  import导入模块(都在同一个路径下) from  import案例 循环导入模块产生的问题 导入模块的优先级 如何解决第一次导入模块以后第二次再导入时候的路径来源 解决导入的模块路径来源不在同一个路径 包被导入是要注意的三点 相对......
  • python第四次笔记
    循环和字符串循环for循环forxinrange(x,y)forxinrange(1,10,2):print(int(x))表示遍历1到9之间的数,步长为2即打印13579while循环while(条件):执行行为whileTrue:print("nihao")这个代码会一直打印nihaocontinuebreakpasscontinue用于跳出本......
  • 循环,字符串,基础文件操作的用法
    Task06:循环Loopand字符串string循环Loopfor循环defsumFromMToN(m,n):total=0#注意:range(x,y)是左闭右开区间,包含x,不包含yforxinrange(m,n+1):total+=xreturntotarange(m,n)左开右闭从m遍历到n-1sumFromMToN(5,10)45r......
  • 聪明办法学Python_task4_11.28-12.2
    聪明办法学Python_task4_11.28-12.2聪明办法学Python_task4_11.28-12.21.task06循环1.1while循环1.2for循环1.3循环控制语句1.4range()函数2.task07字符串2.1字符串构成2.2字符串操作2.2.1字符串运算2.2.2索引&切片2.2.3相关函数1.task06......
  • 循环与字符串
    for循环和循环范围特点:基于特定的范围,重复执行特定次数的操作for循环中循环次数range的表示其中range(x,y)表示包含x,但不包含y,即左闭右开defsumFrom(m,n):returnsum(range(m,n+1))m=5n=10sumFrom(m,n)此时输出就为45,即5+6+7+8+9+10=45range默认起始为0,即range(5)表示0-......