第1章 用户交互
1.1 input
Tips: input接收的所有输入默认都是字符串格式.
1.1.1 用户输入单个信息
#!/usr/bin/env python # -*- coding: utf-8 -*- # 将用户输入的内容赋值给 name 变量 name = input("请输入用户名:") # 打印输入的内容 print(name)
1.1.2 用户输入多个信息
#!/usr/bin/env python # -*- coding: utf-8 -*- name = input("What is your name ") age = input("How old are you ") hometown = input("Where is your hometown ") print("Hello ",name, "your are ",age, "years old, you came from",hometown)
第2章 格式化输出
2.1 Print %s %d方法
#!/usr/bin/env python # -*- coding: utf-8 -*- name = input("Name:") age = int(input("Age:")) job = input("Job:") hobbie = input("Hobbie:") info = ''' ------------ info of %s ----------- #这里的每个%s就是一个占位符,本行的代表后面拓号里的 name Name : %s #代表 name Age : %d #代表 age, %s代表字符串占位符, %d是数字占位符 job : %s #代表 job Hobbie: %s #代表 hobbie ------------- end ----------------- ''' %(name,name,age,job,hobbie) # 这行的 % 号就是把前面的字符串与扩号后面的变量关联起来 print(info)
Tips:若想输出%,使用%%即可,第一个%是对第二个%的转译,告诉Python解释器这只是一个单纯的%,而不是占位符。
2.2 format方法
【示例】:
s = '我叫{},今年{},爱好{},再说一下我叫{}'.format('leon',36,'girl','leon') print(s) s = '我叫{0},今年{1},爱好{2},再说一下我叫{0}'.format('leon',36,'girl') print(s) s = '我叫{name},今年{age},爱好{hobby},再说一下我叫{name}'.format(age=18,name='leon',hobby='girl') print(s)
【结果】:
D:\WorkSpace\Python\venv\Scripts\python.exe D:/WorkSpace/python_study/week05/数据类型01.py 我叫leon,今年36,爱好girl,再说一下我叫leon 我叫leon,今年36,爱好girl,再说一下我叫leon 我叫leon,今年18,爱好girl,再说一下我叫leon Process finished with exit code 0
第3章 流程控制语句
3.1 if语句
Python使用强制缩进来表示代码块。Python的缩进有以下几个原则:
- 顶级代码必须顶行写,即如果一行代码本身不依赖于任何条件,那它必须不能进行任何缩进
- 同一级别的代码,缩进必须一致
- 官方建议缩进用4个空格。
3.1.1 单分支
【格式】:
if 条件: 满足条件后要执行的代码
3.1.2 双分支
【格式】:
if 条件: 满足条件执行代码 else: if条件不满足就走这段
【示例】:
AgeOfLeon = 28 if AgeOfLeon > 60 : print("Too old, time to retire..") else: print("还能折腾几年!")
3.1.3 多分支
【格式】:
if 条件: 满足条件执行代码 elif 条件: 上面的条件不满足就走这个 elif 条件: 上面的条件不满足就走这个 elif 条件: 上面的条件不满足就走这个 else: 上面所有的条件不满足就走这段
【示例】:
age_of_leon = 28 guess = int(input(">>:")) if guess > age_of_leon : print("猜的太大了,往小里试试...") elif guess < age_of_leon : print("猜的太小了,往大里试试...") else: print("恭喜你,猜对了...")
3.2 while语句
3.2.1 基本循环
【格式】:
while 条件: # 循环体 # 如果条件为真,那么循环体则执行 # 如果条件为假,那么循环体不执行
3.2.2 循环中止语句
- break用于完全结束一个循环,跳出循环体执行循环后面的语句
- continue和break有点类似,区别在于continue只是终止本次循环,接着还执行后面的循环,break则完全终止循环
【示例】:break
count = 0 while count <= 100 : #只要count<=100就不断执行下面的代码 print("loop ", count) if count == 5: break count +=1 #每执行一次,就把count+1,要不然就变成死循环啦,因为count一直是0 print("-----out of while loop ------")
【运行结果】:
loop 0 loop 1 loop 2 loop 3 loop 4 loop 5 -----out of while loop ------
【示例】:continue
count = 0 while count <= 100 : count += 1 if count > 5 and count < 95: #只要count在6-94之间,就不走下面的print语句,直接进入下一次loop continue print("loop ", count) print("-----out of while loop ------")
【运行结果】:
loop 1 loop 2 loop 3 loop 4 loop 5 loop 95 loop 96 loop 97 loop 98 loop 99 loop 100 loop 101 -----out of while loop ------
3.2.3 while ... else ..
while后面的else作用是指:当while循环正常执行完,中间没有被break中止的话,就会执行else后面的语句。
【示例】:未被break
count = 0 while count <= 5 : count += 1 print("Loop",count) else: print("循环正常执行完啦") print("-----out of while loop ------")
【运行结果】:
Loop 1 Loop 2 Loop 3 Loop 4 Loop 5 Loop 6 循环正常执行完啦 -----out of while loop ------
【示例】:被break
count = 0 while count <= 5 : count += 1 if count == 3:break print("Loop",count) else: print("循环正常执行完啦") print("-----out of while loop ------")
【运行结果】:
Loop 1 Loop 2 -----out of while loop ------
3.3 for语句
3.3.1 基本循环
【格式】:
for 索引 in 要遍历的数据: # 循环体
【示例】:
s = 'abcdef' for i in s: print(i)
【运行结果】:
a b c d e f
第1章 文件操作
1.1 读模式打开文件
1.1.1 以只读模式打开文件
【示例】:
f = open('F:\\file.txt', mode='r', encoding='UTF-8') print(f.read()) f.close()
【运行结果】:
这是一个测试文件。
1.1.2 以bit只读模式打开文件
【示例】:
f = open('F:\\file.txt', mode='rb') print(f.read()) f.close()
【运行结果】:
b'\xef\xbb\xbf\xe8\xbf\x99\xe6\x98\xaf\xe4\xb8\x80\xe4\xb8\xaa\xe6\xb5\x8b\xe8\xaf\x95\xe6\x96\x87\xe4\xbb\xb6\xe3\x80\x82'
1.1.3 以读写模式打开文件
【示例】:
f = open('F:\\file.txt', mode='r+', encoding='UTF-8') print(f.read()) f.write('读写测试') f.close()
【运行结果】:
输出: 这是一个测试文件。 文件中: 这是一个测试文件。读写测试
1.1.4 以bit读写模式打开文件
【示例】:
f = open('F:\\file.txt', mode='r+b') print(f.read()) f.write('\n另外的读写测试'.encode('utf-8')) f.close()
【运行结果】:
输出:b'\xef\xbb\xbf\xe8\xbf\x99\xe6\x98\xaf\xe4\xb8\x80\xe4\xb8\xaa\xe6\xb5\x8b\xe8\xaf\x95\xe6\x96\x87\xe4\xbb\xb6\xe3\x80\x82\xe8\xaf\xbb\xe5\x86\x99\xe6\xb5\x8b\xe8\xaf\x95' 文件中: 是一个测试文件。读写测试 另外的读写测试
1.2 写模式打开文件
1.2.1 以只写模式打开文件
Tips:若不存在此文件就会自动创建文件,若存在则清空文件后写入所写的内容。
【示例】:
f = open('files.txt', mode='w', encoding='UTF-8') f.write('只写模式打开文件') f.close()
【运行结果】:
文件中: 只写模式打开文件
1.2.2 以bit只写模式打开文件
【示例】:
f = open('files.txt', mode='wb') f.write('bit方式写文件'.encode('utf-8')) f.close()
【运行结果】:
文件中: bit方式写文件
1.2.3 以写读模式打开文件
【示例】:
f = open('files.txt', mode='w+', encoding='UTF-8') f.write('写读测试') print(f.read()) f.close()
【运行结果】:
文件中: 写读测试
1.3 追加模式打开文件
1.3.1 以追加模式打开文件
【示例】:
f = open('files.txt', mode='a', encoding='UTF-8') f.write('\n追加模式打开文件') f.close()
【运行结果】:
文件中: 写读测试 追加模式打开文件
1.3.2 以追加读的方式打开文件
【示例】:
f = open('files.txt', mode='a+', encoding='UTF-8') f.write('\n追加读模式打开文件') print(f.read()) f.close()
【运行结果】:
文件中: 写读测试 追加模式打开文件 追加读模式打开文件
1.3.3 以bit追加模式打开文件
【示例】:
f = open('files.txt', mode='ab') f.write('\nbit追加读模式打开文件'.encode('utf-8')) f.close()
【运行结果】:
文件中: 写读测试 追加模式打开文件 追加读模式打开文件 bit追加读模式打开文件
1.4 文件操作方法解析
1.4.1 read方法
【功能】:(不推荐)
以字符的方式从文件中读取数据,一次性读取所有内容,若文件过大,可能导致内存溢出。
【示例】:
f = open('files.txt', mode='r', encoding='UTF-8') print(f.read(3)) f.close()
【运行结果】:
写读测
1.4.2 readlinse方法
【功能】:(不推荐)
读的每一行当成列表中的一个元素,添加到list中,,一次性读取所有内容,若文件过大,可能导致内存溢出。
【示例】:
f = open('files.txt', mode='r+', encoding='UTF-8') print(f.readlines()) f.close()
【运行结果】:
['写读测试\n', '追加模式打开文件\n', '追加读模式打开文件\n', 'bit追加读模式打开文件tell方法测试']
1.4.3 readline方法
【功能】:
一行一行的读入文件,相对readlines和read好一点。
【示例】:
f = open('files.txt', mode='r+', encoding='UTF-8') print(f.readline()) f.close()
【运行结果】:
写读测试
1.4.4 for循环获取文件内容
【功能】:(推荐方法)
循环获取文件内容,保证内存中只有一句内容,对于read相关方法中最好的获取文件方式。
【示例】:
f = open('files.txt', mode='r+', encoding='UTF-8') for line in f: print(line) f.close()
【运行结果】:
写读测试 追加模式打开文件 追加读模式打开文件 bit追加读模式打开文件tell方法测试
1.4.5 seek方法
【功能】:
以字节的方式定位文件指针(光标)位置(一个汉字等于3个字节)。
【示例】:
f = open('files.txt', mode='r', encoding='UTF-8') f.seek(6) print(f.read(2)) f.close()
【运行结果】:
测试
1.4.6 tell方法
【功能】:
获取文件指针(光标)当前位置。
【示例】:
f = open('files.txt', mode='r+', encoding='UTF-8') f.read() f.write('tell方法测试') count = f.tell() print(count) f.seek(count-16) print(f.read(8)) f.close()
【运行结果】:
输出: 112 tell方法测试 文件中: 写读测试 追加模式打开文件 追加读模式打开文件 bit追加读模式打开文件tell方法测试
1.4.7 truncate方法
【功能】:
从源文件中截取指定的字符。
【示例】:
f = open('files.txt', mode='r+', encoding='UTF-8') f.truncate(12) f.close()
【运行结果】:
文件: 写读测试
1.4.8 readable方法
【功能】:
判断文件是否可读。
【示例】:
f = open('files.txt', mode='r+', encoding='UTF-8') print(f.readable()) f.close()
【运行结果】:
True
1.4.9 close方法
【功能】:
只要打开文件最后都要执行该方法关闭文件,否则会导致文件驻留在内存中。
【示例】:
同上。
1.4.10 with方法
【功能】:
自动管理文件销毁(不需写close方法)及同时引用多个文件的方法。
【示例】:
with open('files.txt', mode='r+', encoding='UTF-8') as fs, \ open('F:\\file.txt', mode='r+', encoding='UTF-8') as f: print(fs.read()) print(f.read())
【运行结果】:
写读测试 追加模式打开文件 追加读模式打开文件 bit追加读模式打开文件tell方法测试 这是一个测试文件
1.5 文件的修改
【功能】:
文件操作本身没有修改的功能,如果需要修改文件则做如下几步操作:
- 以只读的方式打开要修改的文件
- 以只写的方式打开一个bak临时文件
- 遍历源文件内容,找到需要修改的文件内容并进行修改
- 删除源文件
- 将临时文件重命名为源文件名
【示例】:
import os with open('files.txt', encoding='utf-8') as f1, open('files.txt.bak', 'w', encoding='utf-8') as f2: for line in f1: if '模式' in line: line = line.replace('模式', '样式') f2.write(line) os.remove('files.txt') os.rename('files.txt.bak', 'files.txt')
【运行结果】:
写读测试 追加样式打开文件 追加读样式打开文件 bit追加读样式打开文件

我的微信
如果有技术上的问题可以扫一扫我的微信