第一章 关于python
Python简介
Python是什么?
python的创始人为吉多·范罗苏姆(Guido van Rossum)。
“Python is a great object-oriented, interpreted, and interactive programming language“。
Python官网(https://wiki.python.org/moin/FrontPage)对Python的解释为:“Python是一种面向对象的、解释型的、带有动态语义的高级程序语言“。
面向对象编程:Object Oriented Programming,简称OOP,是一种程序设计思想。OOP把对象作为程序的基本单元,一个对象包含了数据和操作数据的函数。
解释型语言:程序不需要编译,程序在运行时才翻译成机器语言,每执行一次都要翻译一次。
动态类型语言:动态类型语言是指在运行期间才去做数据类型检查的语言,也就是说,在用动态类型的语言编程时,永远也不用给任何变量指定数据类型,该语言会在你第一次赋值给变量时,在内部将数据类型记录下来。
Python主要应用领域
(1)网络编程:包括 web 网站 、服务器后台服务等
(2)科学运算:随着 NumPy、SciPy、matplotlib、ETS 等众多程序库的开发,Python 越来越适合于做科学计算
(3)自动化运维与测试:可以使用Python开发自动化管理工具、监控程序等;也可以应用于selenium、appium中编写自动化脚本,提高测试效率
(4)爬虫:爬虫领域,Python几乎是霸主地位,Scrapy\Request\BeautifuSoap\urllib等,想爬啥就爬啥
(5)云计算:目前最火最知名的云计算框架就是OpenStack,Python现在的火,很大一部分就是因为云计算
(6)人工智能:谁会成为AI 和大数据时代的第一开发语言?这本已是一个不需要争论的问题
总之,Python 能做的事情还是非常多的,不然为什么有那么多大中型互联网企业(如:Youtube、Dropbox、BT、Quora(中国知乎)、豆瓣、知乎、Google、Yahoo!、Facebook、NASA、百度、腾讯、汽车之家、美团等)都在用python呢?
python2 or python3
"Python 2.x is legacy, Python 3.x is the present and future of the language"
所以当然是Python3咯!
python安装
Python目前已支持所有主流操作系统,在Linux,Unix,Mac系统上自带Python环境,在Windows系统上需要安装一下,Windows安装步骤如下
(1) 打开官网下载中心:https://www.python.org/downloads/windows/
(2)选择下载你要安装的版本,下载完成后根据提示完成安装即可
(3)在安装的过程中需要勾选“Add Python 3.x to PATH”,如果没有勾选,需要在安装完成之后,将Python的安装目录(如C:\Python34)添加到环境变量PATH下面
(4)测试安装是否成功:windows->运行->cmd(或者使用快捷键windows键+r打开运行),输入python,如果出现版本信息,则安装成功
第一个Python程序
接下来我们可以写第一个python程序了,接着刚才的cmd运行界面,输入print('hello world')
恭喜你,你已经迈出漫长python学习生涯的第一步了。
好马配好鞍,JAVA有Eclipse,C#,C++有VisualStudio,那对于Python有什么好的开发工具呢?当然首推Pycharm啦!所以赶紧去官网
https://www.jetbrains.com/pycharm/download 下载最好的Python开发IDEPycharm吧!
变量和基本数据类型
变量
name='luoli'
变量即变化的量,python中的变量很好理解,就是代表(或者引用)某值的名字
变量的定义规范:变量名只能是字母、数字和下划线;不能以数字开头;关键字不能声明为变量
变量的属性包括:id、type和value
id的作用为标识内存地址
>>> name='luoli' >>> id(name) 92499072
type的作用为查看变量数据类型
>>> name='luoli' >>> type(name) <class 'str'>
value的作用为查看变量值
>>> name='luoli' >>> name 'luoli'
基本数据类型
整型
>>> age=18 >>> type(age) <class 'int'>
浮点型
>>> score=98.5 >>> type(score) <class 'float'>
字符串
>>> name='luoli' >>> type(name) <class 'str'>
列表:在[ ]内用逗号分隔,可以存放多个任意类型的值
>>> list=['luoli','18','98.5'] >>> print(list) ['luoli', '18', '98.5']
字典:在{}内用逗号分隔,可以存放多个key:value的值,value可以是任意类型
>>> dic={'name':'luoli','age':'18','score':'98.5'} >>> dic['name'] 'luoli'
布尔值:True 和False,用于逻辑判断
>>> a=3 >>> b=5 >>> a>b False >>> a<b True
输入和输出
输入
当计算机与用户交互的时候,需要用户输入一些必要的信息怎么办呢?python提供了input()可以让用户输入字符串,并保存到变量里。
>>> username=input("Please enter your name:") Please enter your name:luoli
格式化输出
如果要求用户输入用户名和年龄,然后打印成如下格式:
my name is xxx,my age is yyy
上述的'xxx'和'yyy'是根据用户的输入变化而变化的,那该怎么办呢?这时就需要用占位符进行格式化输出了
name=input('Please enter your name:') age=input('Please enter your age:') print('your name is %s,your age is %s'%(name,age)) 运行结果: Please enter your name:luoli Please enter your age:18 your name is luoli,your age is 18
常见的占位符有
%d | 整数 |
%f | 浮点数 |
%s | 字符串 |
%x | 十六进制整数 |
如果你不太确定用什么,'%s'永远起作用,它会把任何数据类型转换为字符串
基本运算符
计算机可以进行算数运算、比较运算、逻辑运算、赋值运算等
算数运算
运算符 | 描述 |
+ | 相加 |
- | 相减 |
* | 相乘 |
/ | 相除 |
% | 相除-取余数 |
** | 求幂 |
// | 相除-取商 |
比较运算:返回值为True或False
运算符 | 描述 |
== | 等于 |
!= | 不等于 |
> | 大于 |
< | 小于 |
>= | 大于等于 |
<+ | 小于等于 |
赋值运算
运算符 | 描述 |
= | 赋值运算 |
+= | 加法赋值 |
-= | 减法赋值 |
*= | 乘法赋值 |
/= | 除法赋值 |
%= | 取模赋值 |
**= | 幂赋值 |
//= | 取整除赋值 |
逻辑运算:返回值为True或False
运算符 | 描述 |
and | 布尔'与',全为True时返回True |
or | 布尔'或',只要有一个为True则返回True |
not | 布尔'非',如果x为True,则not x 返回False |
流程控制
if...else
a.用户输入用户名和密码,当用户名为 seven 且 密码为 123 时,显示登陆成功,否则登陆失败!
username=input('请输入用户名:') password=input('请输入密码:') if username=='seven' and password=='123': print('登录成功') else: print('登录失败')
b.根据用户输入内容输出其权限,当输入super时为超级管理员,输入为admin时为普通管理员,输入为governor时为业务主管,输入为general时为普通用户
user=input("请输入用户名:") if user=='super': print("超级管理员") elif user=='admin': print("普通管理员") elif user=='governor': print('业务主管') elif user=='general': print('普通用户') else: print('无权限')
c.如果:今天是Monday,那么:上班,
如果:今天是Tuesday,那么:上班,
如果:今天是Wednesday,那么:上班,
如果:今天是Thursday,那么:上班,
如果:今天是Friday,那么:上班,
如果:今天是Saturday,那么:出去浪,如果:今天是Sunday,那么:出去浪
today=input('today is :') if today in ['Saturday','Sunday']: print('go happy') elif today in ['Monday','Tuesday','Wednesday','Thursday','Friday']: print('go work') else: print('''必须输入其中一种: Monday Tuesday Wednesday Thursday Friday Saturday Sunday ''')
while循环
a.打印0-10
count=0 while count<=10: print(count) count+=1
b.打印0-10之间的偶数
count=0 while count<=10: if count%2==0: print(count) count+=1
c.使用while循环输出1 2 3 4 5 6 8 9 10
count=1 while count<=10: if count==7: count += 1 continue print(count) count+=1
d.(1)循环验证用户输入的用户名与密码
(2)认证通过后,运行用户重复执行命令
(3)当用户输入命令为quit时,则退出整个程序
tag=True while tag: username=input('请输入用户名:') password=input('请输入密码:') if username=='luoli' and password=='123456': while tag: text=input("command:") if not text: continue if text=='quit': tag=False continue print('run %s'%text) else: print("登录失败")
练习
1.求1-2+3-4+5 ... 99的所有数的和
sum=0 count=0 while count<100: if count%2==0: sum=sum-count if count%2==1: sum=sum+count count+=1 print(sum)
2.(1)让用户输入用户名密码
(2)认证成功后显示欢迎信息
(3)输错三次后退出程序
(4)可以支持多个用户登录 (提示,通过列表存多个账户信息)
(5)用户3次认证失败后,退出程序,再次启动程序尝试登录时,还是锁定状态(提示:需把用户锁定的状态存到文件里)
usr=['user_01','user_02','user_03'] usr_pwd={'user_01':'111','user_02':'222','user_03':'333'} count=0 count_lock=0 while True: #username错误输入三次退出 if count>2: print('Login Failed') break username=input('Please enter your name:') #检查username是否锁定 with open ('C:\lock_user.txt', 'r')as f: lock_user=f.read().split(',') if username in lock_user: print('Sorry! The user has been locked') break #检查not exist username if username not in usr: print('username is not exist! Please try again!') count+=1 #检查exist username并判定密码 if username in usr: password=input('Please enter your password:') if password==usr_pwd[username]: print('Login success') break else: print('Your password is wrong! ') count_lock+=1 #输入错误密码三次被写入lock_file if count_lock>2: with open('C:\lock_user.txt', 'w')as f: f.write('%s,'%username) print('user has been locked') break