if 语句
一个例子
def f(x):
print("A")
if x == 0:
print("B")
print("C")
print("D")
f(1)
# AD
if-else 语句 if-else statement
def f(x):
print("A")
if x == 0:
print("B")
print("C")
else:
print("D")
if x == 1:
print("E")
else:
print("F")
print("G")
f(1)
"""
# A
# D
# E
# G
"""
if-elif-else 语句
# -*- coding: utf-8 -*-
def numberOfRoots(a, b, c):
# 返回 y 的实数根(零点)数量: y = a*x2 + b*x + c
d = b - 4*a*c
if d > 0:
return 2
elif d == 0:
return 1
else:
return 0
print( numberOfRoots(4,5,1))
print(numberOfRoots(4,4,1))
print( numberOfRoots(4,3,1))
"""
0
0
0
"""
for 循环
# -*- coding: utf-8 -*-
for x in range(1, 5): # 注意: range(x, y) 是左开右闭区间,包含 x,不包含 y
print(x)
"""
1
2
3
4
"""
for 循环嵌套
def printCoordinates(xMax, yMax):
for x in range(1, xMax+1):
for y in range(1, yMax+1):
print(x, y)
printCoordinates(5, 5)
while 循环
# -*- coding: utf-8 -*-
def leftmostDigit(n):
n = abs(n)
while n >= 10:
n = n//10
print(n)
leftmostDigit(123)
# 1
break 与 continue 语句
# -*- coding: utf-8 -*-
for n in range(200):
if n % 3 == 0:
continue # 跳过这次循环
elif n == 8:
break # 跳出当前整个循环
else:
pass # 啥也不做,占位符(不会被运行)
print(n)
字符串
单引号 '
和双引号 "
是最常见的两种字符字符串引号
print('单引号')
print("双引号")
三个引号的情况不太常见,但是它在一些场合有特定的作用(如函数文档 doc-strings)
print('''三个单引号''')
print("""三个双引号""")
字符串中的换行符号
# 这两个 print() 在做同样的事情
print("Data\nwhale") # \n 是一个单独的换行符号
"""
Data
nwhale
"""
字符串索引和切片
s = "Datawhale"
print(s)
print(s[0])
print(s[1])
print(s[2])
print(s[3])
"""
Datawhale
D
a
t
a
"""
print(len(s))
# 9
print(s)
print(s[-5])
print(s[-4])
print(s[-3])
print(s[-2])
print(s[-1])
"""
Datawhale
w
h
a
l
e
"""
用切片来获取字符串的一部分
print(s[0:4])
print(s[4:9])
"""
Data
whale
"""
切片的默认参数
print(s[:4])
print(s[4:])
print(s[:])
"""
Data
whale
Datawhale
"""
切片的第三个参数 step
s = 'Datawhale'
print(s[:9:3]) #每隔三个取
print(s[1:4:2]) #每隔两个取
"""
Daa
aa
"""
翻转字符串
# 可以,但是不优雅
print(s[::-1])
# elahwataD
# 也可以,但是还是不够优雅
print("".join(reversed(s)))
# 实在是太优雅辣
def reverseString(s):
return s[::-1]
print(reverseString(s))
字符串的循环
for i in range(len(s)):
print(i, s[i])
用 split()
来循环
# class_name.split() 本身会产生一个新的叫做“列表”的东西,但是它不存储任何内容
class_name = "learn python the smart way 2nd edition"
for word in class_name.split():
print(word)
"""
learn
python
the
smart
way
2nd
edition
"""
用 splitlines()
来循环
# 跟上面一样,class_info.splitlines() 也会产生一个列表,但不存储任何内容
class_info = """\
我们尝试在教程中融入更多计算机科学与人工智能相关的内容,制作“面向人工智能的 Python 专项教程”。
Prepare To Be Smart, 我们希望同学们学习这个教程后能学习到聪明的办法,从容的迈入人工智能的后续学习。
"""
for line in class_info.splitlines():
if (line.startswith("Prepare To Be Smart")):
print(line)
一些跟字符串相关的内置函数
str()
和 len()
name = input("Enter your name: ")
print("Hi, " + name + ". Your name has " + str(len(name)) + " letters!")
"""
Enter your name: epsilon
Hi, epsilon. Your name has 7 letters!
"""
基础文件操作
Open()
函数
Python open()
函数用于打开一个文件,并返回文件对象,在对文件进行处理过程都需要使用到这个函数。
open(file, mode)
函数主要有 file 和 mode 两个参数,其中 file 为需要读写文件的路径。mode 为读取文件时的模式,常用的模式有以下几个:
- r:以字符串的形式读取文件。
- rb:以二进制的形式读取文件。
- w:写入文件。
- a:追加写入文件。
不同模式下返回的文件对象功能也会不同。
file = open("chap6_demo.txt", "w")
dw_text = "Datawhale"
file.write(dw_text)
file.close()
python2.7
# -*- coding: utf-8 -*-
import io
file = io.open('math.py', 'r', encoding='utf-8')
## 通过 read 方法读取整个文件
content = file.read()
print(content)
file.close()
文件对象
open
函数会返回一个 文件对象。在进行文件操作前,我们首先需要了解文件对象提供了哪些常用的方法:
- close( ):
关闭文件
- 在 r 与 rb 模式下:
- read(): 读取整个文件
- readline(): 读取文件的一行
- readlines(): 读取文件的所有行
- 在 w 与 a 模式下:
- write():
- writelines():
下面我们通过实例学习这几种方法:
# -*- coding: utf-8 -*-
## 通过 read 方法读取整个文件
import io
file = io.open('math.py', 'r', encoding='utf-8')
## 通过 read 方法读取整个文件
content = file.read()
print(content)
file.close()
## 通过 readline() 读取文件的一行
content = file.readline()
print(content)
注意每次操作结束后,及时通过 close( ) 方法关闭文件
## 以 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 模式操作。
## 以 w 模式打开文件chap6_demo.txt
file = open('chap6_demo.txt', 'w')
## 创建需要追加的字符串变量
content = 'Hello smart way!!!'
## 写入到 chap6_demo.txt 文件中
file.write(content)
## 关闭文件对象
file.close()