Python基础-python开发基础

2018年7月28日13:05:29Python基础-python开发基础已关闭评论 401 views

第1章 用户交互

1.1 input

Tips: input接收的所有输入默认都是字符串格式.

1.1.1 用户输入单个信息

1
2
3
4
5
6
7
8
#!/usr/bin/env python
# -*- coding: utf-8 -*-

# 将用户输入的内容赋值给 name 变量
name = input("请输入用户名:")

# 打印输入的内容
print(name)

1.1.2 用户输入多个信息

1
2
3
4
5
6
7
8
#!/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方法

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#!/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方法

【示例】:

1
2
3
4
5
6
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)

【结果】:

1
2
3
4
5
6
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的缩进有以下几个原则:

  1. 顶级代码必须顶行写,即如果一行代码本身不依赖于任何条件,那它必须不能进行任何缩进
  2. 同一级别的代码,缩进必须一致
  3. 官方建议缩进用4个空格。

3.1.1 单分支

【格式】:

1
2
if 条件:
    满足条件后要执行的代码

3.1.2 双分支

【格式】:

1
2
3
4
if 条件:
    满足条件执行代码
else:
    if条件不满足就走这段

【示例】:

1
2
3
4
5
6
AgeOfLeon = 28

if AgeOfLeon > 60 :
    print("Too old, time to retire..")
else:
    print("还能折腾几年!")

3.1.3 多分支

【格式】:

1
2
3
4
5
6
7
8
9
10
if 条件:
    满足条件执行代码
elif 条件:
    上面的条件不满足就走这个
elif 条件:
    上面的条件不满足就走这个
elif 条件:
    上面的条件不满足就走这个  
else:
    上面所有的条件不满足就走这段

【示例】:

1
2
3
4
5
6
7
8
9
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 基本循环

【格式】:

1
2
3
4
while 条件:
# 循环体
   # 如果条件为真,那么循环体则执行
   # 如果条件为假,那么循环体不执行

3.2.2 循环中止语句

  • break用于完全结束一个循环,跳出循环体执行循环后面的语句
  • continue和break有点类似,区别在于continue只是终止本次循环,接着还执行后面的循环,break则完全终止循环

【示例】:break

1
2
3
4
5
6
7
8
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 ------")

【运行结果】:

1
2
3
4
5
6
7
loop  0
loop  1
loop  2
loop  3
loop  4
loop  5
-----out of while loop ------

【示例】:continue

1
2
3
4
5
6
7
8
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 ------")

【运行结果】:

1
2
3
4
5
6
7
8
9
10
11
12
13
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

1
2
3
4
5
6
7
count = 0
while count <= 5 :
    count += 1
    print("Loop",count)
else:
    print("循环正常执行完啦")
print("-----out of while loop ------")

【运行结果】:

1
2
3
4
5
6
7
8
Loop 1
Loop 2
Loop 3
Loop 4
Loop 5
Loop 6
循环正常执行完啦
-----out of while loop ------

【示例】:被break

1
2
3
4
5
6
7
8
count = 0
while count <= 5 :
    count += 1
    if count == 3:break
    print("Loop",count)
else:
    print("循环正常执行完啦")
print("-----out of while loop ------")

【运行结果】:

1
2
3
Loop 1
Loop 2
-----out of while loop ------

3.3 for语句

3.3.1 基本循环

【格式】:

1
2
for 索引 in 要遍历的数据:
    # 循环体

【示例】:

1
2
3
s = 'abcdef'
for i in s:
print(i)

【运行结果】:

1
2
3
4
5
6
a
b
c
d
e
f

第1章 文件操作

1.1 读模式打开文件

1.1.1 以只读模式打开文件

【示例】:

1
2
3
f = open('F:\\file.txt', mode='r', encoding='UTF-8')
print(f.read())
f.close()

【运行结果】:

1
这是一个测试文件。

1.1.2 以bit只读模式打开文件

【示例】:

1
2
3
f = open('F:\\file.txt', mode='rb')
print(f.read())
f.close()

【运行结果】:

1
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 以读写模式打开文件

【示例】:

1
2
3
4
f = open('F:\\file.txt', mode='r+', encoding='UTF-8')
print(f.read())
f.write('读写测试')
f.close()

【运行结果】:

1
2
3
4
输出:
这是一个测试文件。
文件中:
这是一个测试文件。读写测试

1.1.4 以bit读写模式打开文件

【示例】:

1
2
3
4
f = open('F:\\file.txt', mode='r+b')
print(f.read())
f.write('\n另外的读写测试'.encode('utf-8'))
f.close()

【运行结果】:

1
2
3
4
输出: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:若不存在此文件就会自动创建文件,若存在则清空文件后写入所写的内容。

【示例】:

1
2
3
f = open('files.txt', mode='w', encoding='UTF-8')
f.write('只写模式打开文件')
f.close()

【运行结果】:

1
2
文件中:
只写模式打开文件

1.2.2 以bit只写模式打开文件

【示例】:

1
2
3
f = open('files.txt', mode='wb')
f.write('bit方式写文件'.encode('utf-8'))
f.close()

【运行结果】:

1
2
文件中:
bit方式写文件

1.2.3 以写读模式打开文件

【示例】:

1
2
3
4
f = open('files.txt', mode='w+', encoding='UTF-8')
f.write('写读测试')
print(f.read())
f.close()

【运行结果】:

1
2
文件中:
写读测试

1.3 追加模式打开文件

1.3.1 以追加模式打开文件

【示例】:

1
2
3
f = open('files.txt', mode='a', encoding='UTF-8')
f.write('\n追加模式打开文件')
f.close()

【运行结果】:

1
2
3
文件中:
写读测试
追加模式打开文件

1.3.2 以追加读的方式打开文件

【示例】:

1
2
3
4
f = open('files.txt', mode='a+', encoding='UTF-8')
f.write('\n追加读模式打开文件')
print(f.read())
f.close()

【运行结果】:

1
2
3
4
文件中:
写读测试
追加模式打开文件
追加读模式打开文件

1.3.3 以bit追加模式打开文件

【示例】:

1
2
3
f = open('files.txt', mode='ab')
f.write('\nbit追加读模式打开文件'.encode('utf-8'))
f.close()

【运行结果】:

1
2
3
4
5
文件中:
写读测试
追加模式打开文件
追加读模式打开文件
bit追加读模式打开文件

1.4 文件操作方法解析

1.4.1 read方法

【功能】:(不推荐)

以字符的方式从文件中读取数据,一次性读取所有内容,若文件过大,可能导致内存溢出。

【示例】:

1
2
3
f = open('files.txt', mode='r', encoding='UTF-8')
print(f.read(3))
f.close()

【运行结果】:

1
写读测

1.4.2 readlinse方法

【功能】:(不推荐)

读的每一行当成列表中的一个元素,添加到list中,,一次性读取所有内容,若文件过大,可能导致内存溢出。

【示例】:

1
2
3
f = open('files.txt', mode='r+', encoding='UTF-8')
print(f.readlines())
f.close()

【运行结果】:

1
['写读测试\n', '追加模式打开文件\n', '追加读模式打开文件\n', 'bit追加读模式打开文件tell方法测试']

1.4.3 readline方法

【功能】:

一行一行的读入文件,相对readlines和read好一点。

【示例】:

1
2
3
f = open('files.txt', mode='r+', encoding='UTF-8')
print(f.readline())
f.close()

【运行结果】:

1
写读测试

1.4.4 for循环获取文件内容

【功能】:(推荐方法)

循环获取文件内容,保证内存中只有一句内容,对于read相关方法中最好的获取文件方式。

【示例】:

1
2
3
4
f = open('files.txt', mode='r+', encoding='UTF-8')
for line in f:
print(line)
f.close()

【运行结果】:

1
2
3
4
5
6
7
写读测试

追加模式打开文件

追加读模式打开文件

bit追加读模式打开文件tell方法测试

1.4.5 seek方法

【功能】:

以字节的方式定位文件指针(光标)位置(一个汉字等于3个字节)。

【示例】:

1
2
3
4
f = open('files.txt', mode='r', encoding='UTF-8')
f.seek(6)
print(f.read(2))
f.close()

【运行结果】:

1
测试

1.4.6 tell方法

【功能】:

获取文件指针(光标)当前位置。

【示例】:

1
2
3
4
5
6
7
8
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()

【运行结果】:

1
2
3
4
5
6
7
8
输出:
112
tell方法测试
文件中:
写读测试
追加模式打开文件
追加读模式打开文件
bit追加读模式打开文件tell方法测试

1.4.7 truncate方法

【功能】:

从源文件中截取指定的字符。

【示例】:

1
2
3
f = open('files.txt', mode='r+', encoding='UTF-8')
f.truncate(12)
f.close()

【运行结果】:

1
2
文件:
写读测试

1.4.8 readable方法

【功能】:

判断文件是否可读。

【示例】:

1
2
3
f = open('files.txt', mode='r+', encoding='UTF-8')
print(f.readable())
f.close()

【运行结果】:

1
True

1.4.9 close方法

【功能】:

只要打开文件最后都要执行该方法关闭文件,否则会导致文件驻留在内存中。

【示例】:

同上。

1.4.10 with方法

【功能】:

自动管理文件销毁(不需写close方法)及同时引用多个文件的方法。

【示例】:

1
2
3
4
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())

【运行结果】:

1
2
3
4
5
写读测试
追加模式打开文件
追加读模式打开文件
bit追加读模式打开文件tell方法测试
这是一个测试文件

1.5 文件的修改

【功能】:

文件操作本身没有修改的功能,如果需要修改文件则做如下几步操作:

  • 以只读的方式打开要修改的文件
  • 以只写的方式打开一个bak临时文件
  • 遍历源文件内容,找到需要修改的文件内容并进行修改
  • 删除源文件
  • 将临时文件重命名为源文件名

【示例】:

1
2
3
4
5
6
7
8
9
10
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')

【运行结果】:

1
2
3
4
写读测试
追加样式打开文件
追加读样式打开文件
bit追加读样式打开文件
weinxin
我的微信
如果有技术上的问题可以扫一扫我的微信