聪明办法学python task5/6

发布时间 2023-12-02 22:59:52作者: QG许诺

循环

  • for语句

    range() 以指定数字开始并指定不同的增量(甚至可以是负数,有时这也叫做'步长')(前闭后开)

    for...else 语句用于在循环结束后执行一段代码

如果在循环过程中遇到了 break 语句,则会中断循环,此时不会执行 else 子句。

  • while循环

    CTRL+C 来退出当前的无限循环。

    如果 while 后面的条件语句为 false 时,则执行 else 的语句块。

    类似 if 语句的语法,如果 while 循环体中只有一条语句,可以将该语句与 while 写在同一行中

  • continue 语句被用来告诉 Python 跳过当前循环块中的剩余语句,然后继续进行下一轮循环

  • pass是空语句,是为了保持程序结构的完整性,pass 不做任何事情,一般用做占位语句

字符串

  • 前面有反斜杠 \ 的字符,叫做转义字符(只能作为一个字符)

#现在有两个字符串
s1 = "Data\tWhale"
s2 = "Data       Whale"
#它俩看起来似乎是一样的
print("s1:", s1)
print("s2:", s2)

s1: Data Whale
s2: Data    Whale

repr()`函数*可以直接看出python中字符串的内部结构*,防止一些隐藏的程序进行执行

print(repr(s1))
print(repr(s2))
'Data\tWhale'
'Data       Whale'

字符常量

import string
print(string.ascii_letters)   # 打印ASCII码
abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ

print(string.ascii_lowercase)   #单独打印小写
abcdefghijklmnopqrstuvwxyz

print(string.ascii_uppercase)   #单独打印大写
ABCDEFGHIJKLMNOPQRSTUVWXYZ

print(string.digits)   # 打印数字类型
0123456789

print(string.punctuation)   # 打印python支持输出的所有特殊符号
!"#$%&'()*+,-./:;<=>?@[\]^_`{|}~

print(string.printable)    # 打印python支持输出的字符
0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ!"#$%&'()*+,-./:;<=>?@[\]^_`{|}~

print(string.whitespace)   # 打印空白字符

字符串的运算

  • 字符串只能和字符串做加乘运算

  • in运算

    可用于查看前面字符串是否在后面的字符串中

  • 切片:获取字符串的一部分,左边不写东西默认从0开始,右边不写东西默认执行到-1结束

    print(s[0:4]) # 左闭右开,第五个取不到
  • 翻转字符串

    print(s[::-1]) # 步长为负数就从右往左切片
  • 可以使用 enumerate() 获得元素的序号

    for i, c in enumerate(s):
       print(i, c)  
       
    0 D
    1 a
    2 t
    3 a

    zip(a, b) 可以在一次循环中,分别从 ab同时取出一个元素,也可以采用enumerate()来分别获取俩个的序号

    for i, (a, b) in enumerate(zip(s, reverseString(s))):  #翻转后的字符串
       print(i, a, b) #分别取出一个赋给a,b
       
    0 D e
    1 a l
    2 t a
    3 a h
    4 w w
    5 h a
    6 a t
    7 l a
    8 e D

    字符串相关的内置函数

  • chr():输出ASCII码对应的那个字符

  • ord():输出对应的ASCII码

  • lower()upper():大小写转换

    print("YYDS YYSY XSWL DDDD".lower())
    print("fbi! open the door!!!".upper())

    yyds yysy xswl dddd
    FBI! OPEN THE DOOR!!!

    strip() :可以将字符串首尾的空格删除

    replace()replace(A,B)将一个字符串中的子字符串A用B替换

    count():输出一个字符串出现的次数

    startwith(): 检测该字符串是否是以某个字符串开头

    endwith(): 检测是否以这个字符串结尾

    index():find():用法一致,都是用于从列表中找出某个值第一个匹配项的索引位置

    但是不同的是,index():如果找不到则会错

  • 字符串是不可变的,只能替换后赋值
    s = "Datawhale"
    s[3] = "e"      # Datewhale,常量不能直接赋值(list能,但字符串不行),报错!!!

    s = s[:3] + "e" + s[4:] # 把s拆分然后重新赋值给s
    print(s)
    Datewhale

     

基础文件操作 Filing

Open() 函数

用于打开一个文件,并返回文件对象,在对文件进行处理过程都需要使用到这个函数。

文件不存在则会自动创建文件

open(file, mode) 函数主要有 filemode 两个参数,其中 file 为需要读写文件的路径。mode 为读取文件时的模式,常用的模式有以下几个:

  • r:以字符串的形式读取文件。

  • rb:以二进制的形式读取文件。『readbit』

  • w:写入文件。『清空所有内容重新写入』

  • a:追加写入文件。『在指定行数插入内容(看光标指向)一般为末尾』

文件对象

open 函数会返回一个文件对象,在文件操作前,首先要了解文件对象提供了哪些常用的方法:

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

  • 在r 与rb模式下:

    • read(): 读取整个文件

    • readline(): 读取文件的一行

    • readlines(): 读取文件的所有行

  • 在 w与a模式下:

    • write():

    • writelines():

## 以 w 模式打开文件chap6_demo.txt
file = open('chap6_demo.txt', 'w')
## 创建需要写入的字符串变量 在字符串中 \n 代表换行(也就是回车)
content = 'Data\nwhale\n'
## 写入到 chap6_demo.txt 文件中
file.write(content)
## 关闭文件对象
file.close()

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