第二章 快速入门
来源:互联网 发布:一氧化二氮 淘宝 编辑:程序博客网 时间:2024/04/28 22:50
第二章 快速入门
1. 程序输出,print语句以及“Hello World!”
- 在交互式解释器中显示变量的值:在交互式解释器中既可以用print显示变量的字符串表示,也可以直接利用变量名查看变量的原始值。
- 注意print myString和myString在输出上的区别,后者会输出一个单引号。
- 下划线(_)表示最后一个表达式的值,即会包含刚刚myString中的值。
- print语句可以和字符串格式操作符结合使用(%)
>>>print "%s is number %d" % ("Python",1)Python is number 1!
- 符号>>表示重定向输出
print >> sys.stderr, ‘Fatal error: invalid input!’
2. 程序输入和raw_input()内建函数
raw_input函数可以读取标准输入并将读取的数据赋值给指定的变量。>>>user = raw_input('Enter login name:')Enter login name: root
不过这个只能用于文本输入。如需要整型可以利用括号进行强制类型转换。在交互式解释器中获得帮助:用函数名作为help()的参数>>>help(raw_input)
3. 注释
利用#号标识注释(一行)文档字符串注释:在模块、类或者函数的起始添加一个字符串,起到在线文档的功能文档字符串可以在运行时访问,也可以用来自动生成文档。4. 操作符
**两种除法操作符:**- 单斜杠:传统除法操作符(地板除,只去比商小的最大整数)- 双斜杠:浮点除法(对结果进行四舍五入,真正的除法)查阅相关资料,书似乎这里写错了。单斜杠除法,只要除数和被除数有一个为浮点数,那么结果就是精确到16位小数的浮点数。而双斜杠除法则是地板除。```python>>>5/31>>>5.0/31.6666666666666667>>>5.0//31.0```
**双星号(\*\*)乘方操作符****三种逻辑操作符:and or not **>>> 3 < 4 and 4 < 5
5. 变量和赋值
Python是动态型语言,不需要预先声明变量的类型。变量的类型和值在赋值的那一刻被初始化。不支持c语言中的自减1或者自增1操作符6. 数字
Python支持五种基本数字类型:有符号整型(长整型、布尔值)、浮点值、复数。7. 字符串
- 索引规则:第一个字符串的索引是0,最后一个字符串的索引是-1。
- 加号(+)用于字符串连接运算,星号(*)用于字符串重复。
索引操作符([])和切片操作符([:])可以得到子字符串:
>>>pystr = 'Python'>>> iscool = 'is cool'>>> pystr [0]'P'>>> ptstr [2:5]'tho'>>> iscool [:2]'is'>>> iscool [-1]'!'>>> pystr*2'PythonPython'
三引号可以包括特殊字符:
>>>pystr = '''Python… is cool'''>>>pystr'Python\nis cool'>>>print pystrPythonis cool
8. 列表和元组
可以将列表和元组当成普通的“数组”,他可以保存任意数量任意类型的Python对象。
列表和元组的区别:
列表元素用中括号包裹,元素的个数及元素的值可以改变。
元组元素用小括号包裹,不可以更改。元组可以看成是只读的列表。
9. 字典
字典是Python中的映射数据类型,工作原理类似关联数组或者哈希表,由键值对构成。
几乎所有类型的Python对象都可以用作键。
值也可以是任意类型的Python对象,字典元素用大括号({})包裹。
>>> aDict = {'name': 'Xieldy'} #create dict>>> aDict['age']=20 #add to dict>>> aDict{'age':20,'name':'Xieldy'}>>>aDict.keys()['age','name']>>> for key in aDict:... print key,aDict[key] File "<stdin>", line 2 print key,aDict[key] ^IndentationError: expected an indented block
for语句等有冒号的语句,下一行往往都需要注意缩进,否则会产生错误
>>> for key in aDict:... print key,aDict[key]...age 20name Xieldy
10. 代码块及缩进对齐
代码块通过缩进对齐来表示代码逻辑,而不是使用大括号。
11. if语句
If expression:If_suite
If x<0: print "x must be atleast 0!"
if expression: if_suiteelse: else_suite
if expression1: if_suiteelif expression2: elif_suiteelse: else_suite
12. while循环
>>>counter=0>>>while counter<3:... print 'loop #%d' % (counter)... counter +=1...loop #0loop #1loop #2
13. for循环和range()内建函数
for接受可迭代对象作为其参数,每次迭代其中一个元素
>>>print 'I like to use the Internet for:'
I like to use the Internet for:
>>>for item in ['e-mail', 'net-surfing', 'homework', 'chat']: print item
net-surfing
homework
chat
如果要这些内容在一行输出,则可以在print最后添加一个逗号
>>>print 'I like to use the Internet for:'
I like to use the Internet for:
>>>for item in ['e-mail', 'net-surfing', 'homework', 'chat']: print item,print
最后一个print的作用是换行。
>>>for Num in [0, 1, 2]: print Num
0
1
2
>>>for Num in range(3): print Num
0
1
2
同样,字符串也可以迭代:
>>> foo = 'abc' >>> for c in foo: print c
a
b
c
range()函数经常和len()函数一起用于字符串索引。
>>> foo = 'abc' >>> for i in range(len(foo)): print foo[i], '(%d)' % i
a (0)
b (1)
c (2)
enumerate() 函数可以同时循环索引和元素
14. 列表解析
可以在一行中使用一个for循环将所有值放到一个列表当中。
>>> squard = [x ** 2 for x in range(4)]>>> for i in squard: print i
0
1
4
9
>>> sqdEvens = [x ** 2 for x in range(8) if not x % 2 ]>>> for i in sqdEvens: print i
0
4
16
36
15. 文件和内建函数open()、file()
如何打开文件
handle = open(file_name, access_mode = 'r' )
file_name变量包含我们希望打开的文件的字符串形式名字,access_mode 中’r’表示读取,’w’表示写入,’a’表示添加,’+’表示读写,’b’表示二进制访问。(默认为r)
>>> filename=raw_input('Enter the file name:')Enter the file name:C:\Downloads\123.txt>>> fobj=open(filename,'r')>>> for eachLine in fobj:... print eachLine,...
13
54
5611
如果在最后加上fobj.close()语句,则总是会报错。
此处我们又利用了逗号来抑制print自动产生换行符号
16. 错误和异常
只需要将可能产生错误及异常的代码添加到try-except语句当中。
17. 函数
如何定义函数
def function_name([arguments]): "optional documentation string" function_suite
定义一个函数的语法由def关键字和紧随其后的函数名,再加上函数需要的几个参数组成。
def addMe(x): 'apply+operation to argument' return (x+x)
这个函数的作用是对于任何类型的参数x,都对其自身进行一个加法运算(不等于乘以2),然后返回和。
如何调用函数
>>> def addMe(x):... 'apply operation to argument'... return (x+x)...>>> addMe(2)
4
>>> addMe('Python')
‘PythonPython’
>>> addMe([1,'Python'])
[1, ‘Python’, 1, ‘Python’]
默认参数
函数的参数可以有一个默认值,表示若调用函数的时候没有提供参数,则使用默认值作为参数。>>> def foo(debug=True): 'determine if in debug mode with default argument' if debug: print 'in debug mode' print 'done'>>> foo()
in debug mode
done>>> foo(False)
done
18. 类
如何定义类?
class ClassName(base_class[es]): #可以提供一个基类或者父类 "optional documentation string" #文档字符串 static_member_declarations #静态成员定义 method_declarations #方法定义
init()方法可以被当做构造方法,当一个类实例被创建时,init()会自动执行。它的目的是执行一些该对象必要的出初始化工作。
self是类实例自身的引用。(JAVA中为this)
如何创建类实例
>>> fool = FooClass()
19. 模块
模块是一种组织形式。可以包含执行代码、函数和类。
当你创建了一个Python源文件,模块的名字就是不带.PY后缀的文件名。一个模块创建之后可以从另一个模块中使用import语句导入这个模块使用。
- 如何导入模块
import module_name
- 如何访问一个模块函数或访问一个模块变量
导入完成之后,可以通过句号属性标志法访问。
module.function()module.variable
20. 实用的函数
21. 练习
第一题
源代码:a=1b='Python'c='is the best'print a print bprint c print 'Pytohn is the NO.%d in the world!' % aprint '%s is the NO.%d in the world!' % (b,a)
1
Python
is the best
Pytohn is the NO.1 in the world!
Python is the NO.1 in the world!
[Finished in 0.2s]第二题
(a)我认为这段脚本是用来进行计算的。
(b)会输出这个式子的计算结果:9
(c)不一样。脚本并不会显示计算结果
(d)这段代码如果单独执行,不会有任何输出。但是如果在交互式解释器中运行则会有结果输出。
(e) print 1+2*4第三题
>>>A=1+2*8+6/2>>>A20>>>B=5*6+3+9/2>>>B37>>>C=A%B>>>C20>>>D=A**B>>>D1374389534720000000000000000000000000000000000000L
第四题
>>>s=raw_input('Please enter your string:')>>>print s>>>s2=raw_input('Please enter another string:')>>>num=int(s2)>>>print num
Please enter your string:god
god
Please enter another string:2
2注意Python中数据类型转换的格式 number=int(string)
第五题
>>>a=0>>>while(a<=10): print a, a=a+1>>>print >>>for b in range(11): print b,
0 1 2 3 4 5 6 7 8 9 10
0 1 2 3 4 5 6 7 8 9 10
[Finished in 0.2s]注意range()函数的起止范围
第六题
>>>s=raw_input('Please enter a number:')>>>a=float(s)>>>if a>0: print 'bigger than 0!'elif a==0: print 'It is 0'else: print 'smaller than 0!'Please enter a number:0.2bigger than 0!
第七题
s = raw_input('Please enter a string:')a = 0while a< len(s): print s[a], a=a+1printfor b in s: print b,
Please enter a string:Python
P y t h o n
P y t h o n第八题
若定义了一个空列表,则应该通过append函数往里添加成员,不能通过下标来赋值。a=[]for i in range(5): b=int(raw_input()) a.append(b)i=0S=0while i<5: S=S+a[i] i=i+1print Si=0S=0for i in range(5): S=S+a[i]print S
1
2
3
4
5
15
15第九题
a = [3,2,9,8,5]S=0for i in range(5): S=S+a[i]S=float(S)avr=S/5print avr
5.4
第十题
import sysdef num(): x=float(raw_input('Please enter a number between 1 and 100:')) if x<=100 and x>=1: print 'Enter successfully!' return 1 else: return 0a=0while a!=1: a=num()sys.exit()
Please enter a number between 1 and 100:102.2
Please enter a number between 1 and 100:-100
Please enter a number between 1 and 100:80
Enter successfully!第十一题
import sysdef addNum(a): S=0 for i in range(5): S=S+a[i] return Sdef avrNum(a): avr=float(addNum(a))/5 return avr def main(): func=int(raw_input('Please enter a number to determine the function:')) if func!=1 and func!=2: print 'Exit!' sys.exit() a=[] print 'Please enter five number:' for i in range(5): a.append(float(raw_input())) if func==1: SUM=addNum(a) print 'the sum of the numbers is %f' % (SUM) else: AVR=avrNum(a) print 'the avr of the numbers is %f' % (AVR)while 1: main()
Please enter a number to determine the function:2
Please enter five number:
1.2
2.3
3.9
4.6
5.3
the avr of the numbers is 3.460000
Please enter a number to determine the function:4
Exit!第十二题
(a)
>>> dir()['__builtins__', '__doc__', '__name__', '__package__']
(b)
>>> dir<built-in function dir>
(c)
>>> type(dir)<type 'builtin_function_or_method'>
(d)
- 第十三题
已完成 - 第十四题
已完成 第十五题
a = float(raw_input('Please enter the first number:'))b = float(raw_input('Please enter the second number:'))c = float(raw_input('Please enter the third number:'))if a>b: d=a a=b b=dif a>c: d=a a=c c=d if b>c: d=b b=c c=d
a = float(raw_input('Please enter the first number:'))b = float(raw_input('Please enter the second number:'))c = float(raw_input('Please enter the third number:'))if a<b: d=a a=b b=dif a<c: d=a a=c c=d if b<c: d=b b=c c=d print a,b,c
第十六题
已完成
- 第二章:快速入门
- 第二章 快速入门
- python 第二章 快速入门
- javascript快速入门第二章基础知识(下)
- spring3.x第二章 快速入门
- Python核心编程读书笔记:第二章,快速入门
- Spring4快速入门第二章配置bean(上)
- python学习笔记(第二章,快速入门)
- 第二篇:ctype.h快速入门
- Android快速入门的第二个App
- 第二章 快速排序
- 第二章 Java入门
- 第二章 算法入门
- 第二章:入门(YII)
- 第二章 入门
- 第二章:入门
- 第二章:Shiro入门
- 第二章经典入门
- mysql数据库优化
- Linux配置静态IP,以及解决配置静态IP后无法上网的问题
- images2gif——用python将图片列表转换成GIF动图
- 蓝桥 大臣的旅费
- python调用ECMWF欧洲中心api下载数据
- 第二章 快速入门
- Android studio默认安装路径
- age_active_anon
- activity跳转时携带数据:
- MySQL的my-innodb-heavy-4G.ini配置文件的翻译
- java中的重写(override)与重载(overload)
- android TextView 同时显示文字和图像
- 线段树的各种类型
- java编码详解