本文共 6361 字,大约阅读时间需要 21 分钟。
Python
一.Python简史 Python是一种面向对象,解释型计算机程序设计语言,由Guido Van Rossum于1989年发明,第一个公开发行版于1990年。2001年发布python2.0版本,2010年获年度Tiobe编程语言大奖,2013年发布python3.x版本。需要注意的是:python2.7是python2.x系列最后一个版本Python是纯粹的自由软件,源代码和解释器cpython遵循CPL(GUN General Public License)协议。Python语法简介清晰,特色之一是强制使用空白符(whilte space)作为语句缩进。Python具有强大和丰富的库,能够把其他语言制作的各种模块,(尤其是C/C++)很轻松连接在一块。1.1Python主要特点:在python里没有自动补齐作用,我们可以安装ipython,其实现了自动补齐。Ipython是一个非常强大的python交互shell,通过它可以非常方便的开发,调试python。Ipython须从网上下载软件。对于ipython的安装这里我就不再细说了。
Pycharm下载pychrm社区版本,安装使用。1.21.Pycharm 中自动添加解释器及相关信息。打开pycharm——> 选中 file中的setting——>选择Editor中file and code templates——> 选中python script然后再添加信息:#!/usr/bin/env python#coding:utf-8from __future__ import division #导入除法模块,是因为在python2.X的版本里,除法是整除,不会取到小数chinese = input ("score1:")math = input ("score2:")english = input ("score3:")avg = (chinese+math+english)/3print "anverage score is %s" %(avg)
执行结果1:
在往往求平均值时,我们通常只须保留两位小数,故我们要调整输出为:
print "anverage score is %.2f" %(avg)
调整后效果:
调整后执行结果:
块代码注释:三引号!/usr/bin/env python
#coding:utf-8"""行代码注释:# <快捷键:ctrl + / >2.2.字符串的格式化符号:
%f 小数, 浮点数%.2f 保留两位小数点的浮点数%d ×××数%s 字符串%o 八进制%x 十六进制实例1:In [1]: "%.3d" %(1)Out[1]: '001'
2.10代表生成字符串的宽度;
In [2]: "%10.3d" %(1)Out[2]: ' 001'
3.显示字符串有%号需要转义;
In [3]: "%.2f%%" %(30)Out[3]: '30.00%'
2.3. 变量
变量是内存中的一块区域变量的命名:变量名由字母,数字,下划线组成;变量名只能以字母或者下划线开头;Python中地址变量和c语言正好相反,一条数据包含多个标签:实例2.In [4]: a=1In [5]: b=1In [6]: id(a)Out[6]: 26836072In [8]: id(b)Out[8]: 26836072
测试练习:
输入变量名必须以字母或下划线开头,否则报错:#!/usr/bin/env python#coding:utf-8while True: s = raw_input("变量名:") if s[0].isalpha() or s[0] == "_": for i in s[1:]: if i.isalnum() or i == "_": continue else: print "%s 变量名不合法!Error: 变量名后面的字符" % (s) break else: print "%s变量名合法" % (s) else: print "%s 变量名不合法! Error: 变量名第一个字符" % (s)
测试结果:
2.4运算符和表达式
2.41.算术运算符:+,-,*,**, /, %, //实例3.In [12]: print 5.0/22.5In [13]: print 5/22In [14]: print 8//24In [15]: print 2**38
2.4.2.赋值运算符:=, +=, -=, /=, *=, %=
实例4.In [16]: a =1; a+=3In [17]: print a4In [18]: a =1; a-=1In [19]: print a0In [22]: a =2; a*=8In [23]: print a16In [24]: a =10; a/=2In [25]: print a5
2.4.3.关系运算符: >, >=, <, <=, !=, ==
实例5.In [26]: 1>2Out[26]: FalseIn [27]: 1>2 == FalseOut[27]: FalseIn [28]: (1>2) == FalseOut[28]: True
2.5.数值类型
2.5.1. 整型,长整型实例6.In [29]: anInt = 12In [30]: print type(anInt)In [31]: aLong = 12LIn [32]: print type(aLong) #整型和长整型相加In [33]: print type(anInt + aLong)
2.5.2.float 浮点型,类似于c语言中的double类型
实例7.In [34]: aFloat = 12.34In [35]: print type(aFloat)In [36]: bFloat = 0.12E11In [37]: print bFloat12000000000.0
2.5.3 complex 复数型
实例8.In [38]: aComplex = 2+3jIn [39]: print aComplex.real #输出实部2.0In [40]: print aComplex.imag #输出虚部3.0In [41]: print aComplex.conjugate() #输出共轭复数(2-3j)In [42]: print type(aComplex)
数值类型是不可变数据类型
In [43]: print abs(-1)1In [44]: print coerce(1, 1.0)(1.0, 1.0)In [45]: print divmod(5, 2)(2, 1)In [46]: print pow(2,3)8In [47]: print round(2.456657,2)2.46
测试练习2.
判断闰年?分析:这个年份能被4整除但不能被100整除,或者能被400整除,那么就是闰年。#!/usr/bin/env python#coding:utf-8Year = input ("year:")print (Year % 4 == 0 and Year % 100 != 0) or (Year % 400 == 0)
执行结果:
2.6 if判断语句
Python中的判断语句:注意缩进If 表达式:If-suiteIf 表达式:
If-suiteelse:else-suite测试练习3.
用if语句判断闰年#!/usr/bin/env python#coding:utf-8year = input ("year:")exp = (year % 4 == 0 and year % 100 != 0) or (year % 400 == 0)if exp == 1: print "%s 是闰年" %(year)else: print "%s 不是闰年" %(year)
测试结果:
测试练习4.
用户登陆ATM系统#!/usr/bin/env python#conding = utf-8import getpass#数据库中存储的用户名和密码;user = "root"passwd = "redhat"username = raw_input("用户名:")password = getpass.getpass("密码:")if username == user and password == passwd: print "%s 用户登陆成功!" %(user) print """ ATM 管理系统 1.取款 2.存款 3.余额查询 4.退出 """ choice = input("请输入您的选择:") if choice == 1: pass elif choice == 2: pass elif choice == 3: pass elif choice == 4: exit(0) else: print "请输入正确的选择!"else: print "%s 用户登录失败!" %(username)
测试结果:
因为导入getpass模块,我们必须在终端进行测试:测试练习5:if_模拟三目运算符
三目运算符: a>b?a:b <注意:python不支持>a=1b=2Print a if a>b else b
测试结果:
while循环语句
while 表达式:循环执行语句while 表达式:
循环执行语句else:不符合循环条件执行的语句死循环:
while True:死循环的语句while 1:
死循环的语句测试练习6:
在测试练习4的基础上,使得用户登陆次数不超过三次,且不选择退出时,不退出登陆页面。import getpass#数据库中存储的用户名和密码;user = "root"passwd = "redhat"#已登陆的次数;trycount = 0#登陆次数小于3,允许再次登陆;while trycount < 3: print "%s次登陆........" %(trycount+1) username = raw_input("用户名:") password = getpass.getpass("密码:") if username == user and password == passwd: print "%s用户登陆成功!" % (username) print """ ATM管理系统 1. 取款 2. 存款 3. 查询余额 4. 退出 """ while 1: choice = input("请输入你的选择:") if choice == 1: print "取款" elif choice == 2: print "存款" elif choice == 3: print "查询余额" elif choice == 4: exit(0) else: print "请输入正确的选择!" else: print "%s 用户登陆失败!" % (username) trycount += 1#登陆次数超过三次,报错;else: print "登陆次数超过3次, waiting......"
测试结果:
因为导入getpass模块,我们必须在终端进行测试:测试练习7:
求(1 10000)内偶数之和,并计算时间戳。法一:#!/usr/bin/env python#coding:utf-8import timestart_time = time.time()sum = 0for i in range(2,10001,2): sum += iprint sumend_time = time.time()print "run %s" % (end_time - start_time)
测试结果1:
法二:
#!/usr/bin/env python#coding:utf-8import timestart_time = time.time()i = 2evensum = 0while i<=10000: evensum += i i += 2print evensumend_time = time.time()print "run%s" %(end_time-start_time)
测试结果2:
循环语句中的关键字:break , continue
break: 遇到这个关键字跳出当前循环;不再继续执行循环;
continue:遇到这个关键字跳出本次循环;转载于:https://blog.51cto.com/12183531/2088209