聪明学python【5】+【6】
【5】循环
-
for
-
本质(功能):基于提供的范围,重复执行特定次数的操作(注意:区分C语言和python的“重复”和“循环”:C语言更倾向于用循环数字来实现重复,Python可以直接实现重复,在需要时使用数字循环)
-
格式:
#格式1————循环 x for x in range(m, n+1):
#格式2————直接遍历列表 for number in list_numbers:
#格式3————嵌套 for x in range(1, xMax+1): for y in range(1, yMax+1):
可以理解,对纯数字处理来说,嵌套相当于升维
-
range()函数
- 功能:创建一个包含等差数列的可迭代对象
- 格式:
range([start], stop[, step])
start
: 可选参数,表示数列的起始值,默认为0。stop
: 必填参数,表示数列的结束值(不包含在数列中)。step
: 可选参数,表示数列的步进值,默认为1。
-
-
while循环
- 功能:(因为你可以注意到,for循环,不像C语言,没有逻辑表达式,所以只能结束循环次数可知(或者间接可知)次数的循环)所以,当不知道什么时候停下来的时候用while。
- 注意:不建议在知道循环次数的情况下用while循环
-
循环控制语句
break
跳出当前整个循环continue
跳过这次循环pass
啥也不做,占位符(不会被运行)
-
假循环&死循环
-
实现循环输入,直到输入特定值,输入结束
while True: response = input("输入一个字符串(输入 done 则退出): ") if response == "done": break
-
函数中,做到满足条件就返回
for factor in range(2,n): if n % factor == 0: return False
-
【6】字符串
-
字符串文字:
-
表示:
- 引号
''
""
""""""
''''''
四种 - 转义序列
\n
换行、\t
制表符、 - 字符串不可变,并且别名也不可变
(s = 'Data' “Data”* t = s s += 'whale'
t 只是 “Data” 的一个只读别名)
- 引号
-
错误:
# 这会导致语法错误,Python 无法正确判断一个字符串的终止位置 print("聪明办法学 Python 第二版的课程简称是 "P2S"")
#我们现在有两个字符串 #s1 = "Data\tWhale" #s2 = "Data Whale" #它俩看起来似乎是一样的 print("s1:", s1) print("s2:", s2) #s1: Data Whale #s2: Data Whale s1 == s2 False
-
-
字符串常量
-
import string print(string.ascii_letters) #abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ print(string.ascii_lowercase) #abcdefghijklmnopqrstuvwxyz print(string.ascii_uppercase) #ABCDEFGHIJKLMNOPQRSTUVWXYZ print(string.digits) #0123456789 print(string.punctuation) # < = > #!"#$%&'()*+,-./:;<=>?@[\]^_`{|}~ print(string.printable) #0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ!"#$%&'()*+,-./:;<=>?@[\]^_`{|}~ print(string.whitespace) # print(repr(string.whitespace)) #' \t\n\r\x0b\x0c'
-
-
字符串运算
- 加、乘、in(
"ring" in "strings"
是一个逻辑表达式,结果为False或者Ture)
- 加、乘、in(
-
索引、切片
-
单个字符索引(像C语言数组元素的引用,不多说)
-
len()函数:返回字符串长度【注意:IndexError】
-
索引&负数索引
参数:step、
print(s[:4]) print(s[4:]) print(s[:]) '''Data whale Datawhale'''
-
-
字符串循环
-
用索引的 for 循环
for i in range(len(s)): print(i, s[i])
使用
enumerate()
获得元素的序号for idx, c in enumerate(s): print(idx, c)
zip(a, b)
可以在一次循环中,分别从a
和b
里同时取出一个元素for a, b in zip(s, reverseString(s)):
输入转换:
split()
list__ = list( map( int,input.split() ) )
-
内置函数
str()
和len()
chr()
和ord()
(互逆,字符和码的转换)
-
方法
strip()
可以将字符串首尾的空格删除replace()
替换count()
有疑问……???startswith() endswith()
注意:是判断而不是输出(分别针对前后缀)- 格式化字符串(前面有说,不多说)
基础文件操作
-
Open()
函数- Python
open()
函数用于打开一个文件,并返回文件对象,在对文件进行处理过程都需要使用到这个函数。 - 格式:
open(file, mode)
(和C语言一样)函数主要有file
和mode
两个参数,其中file
为需要读写文件的路径。mode
为读取文件时的模式,和C语言一样。
- Python
-
文件对象
-
open
函数会返回一个 文件对象。 -
方法:
-
close( )
: 关闭文件 -
在r与rb
模式下:
read()
: 读取整个文件readline()
: 读取文件的一行readlines()
: 读取文件的所有行
-
在w与a模式下:
-
write()
: -
writelines()
: -
注意:每次操作结束后,及时通过
close( )
方法关闭文件
理解:指针的理解这里是比较好理解的,所以应对(指针读完后移)的方法是重新关闭和打开(这点和C语言不同)
-
-
-