转自:https://piao.blog.ustc.edu.cn/?p=149
摘自:《
Python编程实践》——里面的代码面向Python3以前的版本
简明Python3教程(A Byte of Python 3)
1、IDE环境:
- Python自带的IDE较为复杂
- Wing IDE(http://wingware.com/downloads/wingide-101/)适合初学者
2、算数运算符
%——求余;
**——乘方;例如2**2=4
组合运算符:例如B*=B;
函数基础:
格式:
def function_name(parameters)
:
block
return expression
注意:冒号应该注意,block内容应该缩进4个空格
例如
>>>def to_celsius(t):
… return (t-32.0)*5.0/9.0;(注意,改行应该缩进4个空格)
3、字符串(str 或者 unicode)
- 单引号 或者 双引号
- 两个字符串并排放到一起就可以连接成一个字符串; 例如:’Albert’ ‘ Einstein’;或者通过”+“连接;例如:’Albert’+’ Einstein’
- ‘+’不允许字符串跟数字相加;数字转换成字符串可以通过内置函数str,例如:str(123)
- ‘*’重复一个字符串,例如:>>>’AT’*3 结果为’ATATAT’;如果该整数小于等于0,则返回一个空字符串
- 字符转义:\;如果想在一个字符串中添加单引号,最好使用转义字符;
- 多行字符串:将字符串两端的单引号或者双引号分别替换成三个;(在Python中’\n’用来表示一个newline)
- 打印输出:print
>>>area=3.1415926*5*5;
>>>print (“The area of the circle is “,area,”sq cm.”)
//注意:python 3.0得加括号
格式化打印:
>>>rabbits=17
>>>cage=10
>>>print (“%f rabbits are in cage #%d. ” %(rabbits,cage))
>>>import math
>>>
print (“PI = %10.3f” % math.pi)
>>> print (“%10.3s ” % (“python”))
pyt
pyt
- 用户输入:raw_input()(3.0以前的版本可以用) 或者 input()——从键盘上读取一行文本
>>>num=input(“What is your number?”)>>>What is your number?27>>>value= int(num)(强制类型转换)>>>print (value*2)
4、模块
- 引入:import;例如:import math;
格式:模块名.函数名;例如math.pi
- 精确引入某个模块中所需的东西;减少该模块的程序崩溃的风险!
例如:from math import sqrt,pi
- 定义自己的模块:将代码放到扩展名为.py的文件中,例如experiment.py;然后使用时import即可:import experiment
- 每一个模块都定义了一个特殊的变量__name__(双下划线),意思是该模块的主程序_main_
- 自定义模块的帮助信息(help(to_celsius));
如果文件或函数中的第一样东西是个字符串,且该字符串没有赋值给任何变量,则Python就会将其保存起来以便help函数使用
例如:
def to_celsius(t):
“””True if temperature in Celsius is above freezing, False otherwise.”””
return round((t-32.0)*5.0/9.0)
- 对象和方法:
5、列表
- 沿用了c和java之类的语言,从0开始计数
- 空列表:[]
- 列表可以含有任意类型的数据,包括整数、字符串甚至别的列表;例如:krypton=[‘krypton’,’kr’,-15.0,5]
- 多个列表连接:例如A=[‘a’,’b’]+[12]
- 列表重复:A=A*n;n代表列表重复的次数
- 处理列表项:(block需要缩进,无论variable之前是什么值,都会丢弃!!!)
for
variable in
list:
block
例如:
velocity=[0.0,9.81,19.62,26.34]
for v in velocity:
print(“Metric:”,v,”m/sec”)
- 切片:list[i:j]——原始列表从索引i(包含)开始,一直到索引j处(不包含)结束的一个切片;如果打算从列表的开始处进行切片,则第一个索引可以忽略;如果打算切片到末尾处停止,则可以省略第二个索引;
- 别名机制(alias):当两个变量均引用了同一个值时,就互为别名。当通过其中一个变量对列表进行修改后,另一个变量的值也会相应的发生变化;(注意:该问题并不会出现在不可变(immutable)的值上,如字符串;因此字符串的别名很安全)
- 列表方法:(注意:许多列表方法都只是返回None而不是一个新的列表)
L.append(v)——将值v添加到列表L中
L.insert(i,v)——将值v插入到列表L的索引i处,同时将其后的元素往后移以便腾出位置
L.remove(v)——从列表L中移除第一次找到的值v
L.reverse()——反转列表L中的值的顺序
L.sort()——对列表L中的值以升序排序(字符串以字母表顺序为准)
L.pop()——移除并返回列表L的最后一个元素(该列表不得为空)
- 嵌套列表:例如[[‘Canada’,76.5],[‘United States’,75.5],[‘China’,72]]
- 其他类型的列表:
- 字符串其实就是一个不可变的字符序列;
- 元组(tuple):使用圆括号。(虽然()用于表示空元组,但是带有一个元素的元组并不是写作(X),而是写作(X,),后面要多加一个逗号)
例如:bases=(‘A’,’B’,’C’,’D’)
for b in bases:
print b
- 把文件看做列表:
- 例如:file=open(“D:\\test.txt”,”r”)——以只读方式打开文件
- readline方法——读取文件中的“下一行”(“下一行”指知道下一个“行尾标记”之前的所有字符,并且包含该行的行尾标记)
例如:
file=open(“D:\\test2.txt”,”r”)for line in file. readlines():print(line)
- for line in file:
print(len(line))——输出每行的长度
- 注意:文件读取的每一行的末尾都有一个行结束符;可以用string.strip来去掉这个字符,它将去除字符串首尾两端的空白符(空格、制表符、换行符等)并返回结果
- 命令行参数:(sys.argv[1]……;在Wing 101中,可以通过“Source->Current File Properties…”设置程序的命令行参数,然后选中“Debug”标签页,在“Run Arguments”文本框中输入参数即可)
- 注释:#
6、选择
- 类型:bool(True、False)(0,None,空字符串”以及空列表[]都会被看做是False; 而其他所有的值均会被看做是True);布尔运算符:not、and、or
- 关系运算法:==、!=(不等于)、>=、<=;当处理多个运算符时,从左往右运算
- if语句:
- 格式:(block需要缩进,如果程序位于文件中,只要缩进结束,就认为语句块结束;如果位于编辑器中,则缩进后提示符变为…,直到(以一个空行为标识)结束)
if
condition:
block
例如:
>>>ph=
float(input())
>>>
if ph<7.0
:
… print(“%s is acidic.”%(ph))
…
elif ph>7.0
:
… print(“%s is basic.”%(ph))
…
else:
… print(“unknown compound”)
…
- 嵌套的if语句
例如:
input=input()
if
len(input)>0:
ph=float(input)
if ph<7.0:
print(“%s is acidic.”%(ph))
elif ph>7.0:
print(“%s is basic.”%(ph))
else:
print(“%s is neutral.”%(ph))
else:
print(“No pH value was given”)
- 把条件保存起来;(优先级:算数>关系>布尔>赋值)
例如:x=15>5——返回值x为True
7、循环
- for
例如:
for c in “alpha”:
print(c)
- 数字范围range(start,stop)——该切片包括start,但不包括stop
- 在Python 3版本中,显示数字范围可以通过list(range(start,stop))
但是访问依然能用:例如:B=”alpha”A=range(0,5)for n in A:print(B[n])例如:B= list(range(1,11))+’Jack Queen King’. split()
- rang(argument)<=>range(0,argument)
- 其他步长:例如:range(2000,2050,4)
- 步长也可以为负数(但是此时开始索引必须大于结束索引,否则结果为空):例如 range(2050,2000,-4)
- 取出列表中的值:
- 例如:
- value=[1,2,3]
- for i in range(len(value))
- value[i]*=2#翻倍
- print(i,value[i])
- enumerate()——通过索引来迭代列表
例如:
values=[1,2,3]
for pair in enumerate(value):
i=pair[0]
v=pair[1]
value[i]=2*v
print(i,value[i])
#输出结果为
0,2
1,,4
2,6
- Python允许多值赋值(multivalued assignment)
例如:
for (i,v) in enumerate(value):
value[i]=2*v
- while
格式:
while condition:
block
- break——立即退出循环体,(只会退出最内层的循环体);continue——调回循环体的顶部,并重新开始下一次迭代
例如:
entry_ number=1
file=open(“data.txt”,”r”)
for line in file:
line=line.strip()
if line.startswith(“#”):#
跳过注释行
continue
if line==”Earth”:
break
entry_number +=1