文章目录
1.python基础
在Linux环境下运行将下列代码作为脚本第一行:
#!/usr/bin/python
运行方法:
第一种方法:用python解释器,无需权限
python test.py
第二种方法:更改文件权限可执行,运行脚本
chmod 755 test.py
./test.py
多行注释可以用#号,还有’ ’ '和" " "
1.输出内容到文件
#将数据输出到文件中,注意1.所指定的盘符存在2.使用file=fp
#a+如果文件不存在就创建,存在就在文件内容的后面继续追加
fp=open('D:/test.txt','a+')
print('helloworld',file=fp)
fp.close()
2.转义字符
换行 | \n |
---|---|
回车 | \r |
水平制表符 | \t |
退格 | \b |
3.print()函数
print('Hello world')
-> Hello world
print()
->打印空行
print('Hello', end='') #print函数时自动换行的,如果不换行使用 end=''
print('World')
4.input()函数
函数等待用户在键盘输入一些文本,并按下回车键
myName = input()
注意:
在python2中存在raw_input()和input()两个函数:
raw_input():将所有输入作为字符串看待,返回字符串类型
input():只能接收"数字"的输入,返回所输入的数字的类型(int, float)
在python3中仅保留了input() 函数:
input():其接收任意任性输入,将所有输入默认为字符串处理,并返回字符串类型
5.len()函数
向len()函数传递一个字符串,然后该函数求值为一个整性值,即字符串中字符的个数
len('hello')
->5
6.str()、int()和float()函数
str() 将其他数据类型转成字符串
int() 将其他数据类型转成整数
float() 将其他数据类型转成浮点数
2.控制流
1.布尔操作符
三个布尔操作符用于比较布尔值
and
or
not
2.控制流元素
python最具有特色的就是使用缩进来表示代码块,不需要使用大括号{ }。
缩进的空格数是可变的,但是同一个代码块的语句必须包括相同的缩进空格数,
如果不一致,会导致运行错误
2.1 if语句
if condition :
print()
else :
print()
if condition1 :
print()
elif condition2 :
print()
else :
2.2 while循环语句
while condition :
print()
2.3 for循环和range( )函数
for i in range(5):
print(i)
->
0
1
2
3
4
对于range()函数第一个参数是for循环变量开始的值,第二个参数是上限,但不包含它
range()函数也可以有第三个参数。前两个参数分别是起始值和终止值,第三个参数是“步长”
for i in range(12,16):
print(i)
->
12
13
14
15
for i in range(0,10,2):
print(i)
->
0
2
4
6
8
import 语句导入模块
sys.exit() 函数,让程序终止或退出
3.函数
def 函数名():
print()
def 函数名(参数):
return()
print()
3.1局部和全局作用域
在函数内修改全局变量,使用global语句
有 4 条法则, 来区分一个变量是处于局部作用域还是全局作用域:
1.如果变量在全局作用域中使用(即在所有函数之外),它就总是全局变量
2.如果在一个函数中,有针对该变量的 global 语句,它就是全局变量
3.否则,如果该变量用于函数中的赋值语句,它就是局部变量
4.但是,如果该变量没有用在赋值语句中,它就是全局变量
3.2异常处理
错误可以由try和except语句来处理,那些可能出错的语句被放在try子句中。如果错误发生,程序执行就转到接下来的except子句开始处
def spam(divideBy):
try:
return 42/divideBy
except ZeroDivisionError:
print('Error:Invalid argument.')
print(spam(2))
4.列表
列表是一个值,包含多个字构成的序列,表项用逗号分隔
列表也可以包含其他列表值,这些列表的列表值,可以通过多重下标来访问
spam = [['cat','bat'], [10, 20, 30, 40, 50]]
spam[0]
->['cat', 'bat']
spam[0][1]
->'bat'
spam[1][4]
->50
可以用负数作下标,-1指列表中的最后一个下标,-2指列表中倒数第二个下标
spam[1:4] 列表切片,向上增长,直至第二个下标的值,但不包含它
spam[1:]
spam[:2]
+操作符可以连接两个列表
del spam[2] del语句将删除列表中下标处的值
'cat' in spam 可以确定一个值是否在列表中
'cat' not in spam
多重赋值,变量的数目和列表的长度必须严格相等
cat = ['fat', 'black', 'loud']
size, color, disposition = cat
copy模块
cheese = copy.copy(spam)
在for循环中使用range(len(someList)),迭代列表的每一个下标。
supplies = ['pens', 'staplers', 'flame-throwers', 'binders']
for i in range(len(supplies)):
print(supplies[i])
4.1增强赋值
增强的赋值操作,可以完成字符串和列表的连接
bacon = ['Zophie']
bacon *= 3
->['Zophie', 'Zophie', 'Zophie']
4.2方法
spam.index('hello') index()如果值在列表中,返回下标,否则报错
spam.append('moose') append()在列表后面添加值
spam.insert(1,'chicken') insert()在下标后插入一个值
spam.remove('cat') 从列表中删除值
spam = [2,5,1,-7]
spam.sort() 顺序排序
spam.sort(reverse=True) 让sort按逆序排序
4.3元组数据类型
“元组”数据类型几乎与列表数据类型一样,区别在于元组像字符串一样,是不可变的。
用圆括号(),而不是方括号[]
用list()和tuple()函数来转换类型
tuple(['cat', 'dog', 5])
->('cat', 'dog', 5)
list(('cat', 'dog', 5))
->['cat', 'dog', 5]
5.字典和结构化数据
字典是许多值的集合,字典的索引被称为“键”,键及其关联的值称为“键-值”对,也就是perl中的哈希。
字典输入使用花括号{ },可以通过它们的键访问这些值
myCat = {'size':'fat', 'color':'gray', 'disposition':'loud'}
键是'size'、'color'、'disposition'
值是'fat'、'gray'、'loud'
5.1 方法
spam = {'color':'red', 'age':42}
for v in spam.values():
print(v)
->
red
42
for v in spam.keys():
print(v)
->
color
age
for v in spam.items():
print(v)
->
('color', 'red')
('age', 42)
检查字典中是否存在键或值
'name' in spam.values()
'name' not in spam.keys()
get()要取得其值的键,如果该键不存在时,返回备用值
spam.get('color':0)
setdefault()传递给该方法的第一个参数,是要检查的键。第二个参数,是如果该键不存在时要设置的值
spam.setdefault('color', 'black')
6.字符串操作
字符串可以用双引号开始和结束,就像用单引号一样。使用双引号的一个好处,就是字符串中可以使用单引号字符
原始字符串r 完全忽略所有的转义字符
print(r'That is Carol\'s cat.')
->That is Carol\'s cat.
字符串像列表一样使用下标和切片。
spam = "Hello world!"
spam[0]
->'H'
spam[1:5]
->'Hello'
in 和 not in 操作符也可以用于字符串
'Hello' in 'Hello World'
6.1字符串方法
spam.upper() 转换为大写
spam.lower() 转换为小写
spam.isupper()
spam.islower()
如果字符串至少有一个字母, 并且所有字母都是大写或小写, isupper()和
islower()方法就会相应地返回布尔值 True。
startswith()
endswith()
'Hello world!'.startswith('Hello')
'Hello world!'.endswith('world!')
join()
split()
', '.join(['cats', 'rats', 'bats'])
'My name is Simon'.split()
如果只需要检查字符串的开始或结束部分是否等于另一个字符串, 而不是整个字符串, 这些方法就可以替代等于操作符==,这很有用
参考文献:Python编程快速上手 - [美] Al Sweigart