Python学习-day1

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python学习-day1相关的知识,希望对你有一定的参考价值。

一、Python的介绍

  python的创始人为吉多·范罗苏姆(Guido van Rossum)。1989年的圣诞节期间,吉多·范罗苏姆为了在阿姆斯特丹打发时间,决心开发一个新的脚本解释程序,作为ABC语言的一种继承。 

  龟叔给Python的定位是“优雅”、“明确”、“简单”,所以Python程序看上去总是简单易懂,Python的哲学就是简单优雅,尽量写容易看明白的代码,尽量写少的代码。

 

技术分享

2016年9月TIOBE社区编程语言排名 

 

技术分享

 2002年--2016年语言排名趋势

 

目前Python主要应用领域:

  • 云计算: 云计算最火的语言, 典型应用OpenStack
  • WEB开发: 众多优秀的WEB框架,众多大型网站均为Python开发,Youtube, Dropbox, 豆瓣。。。, 典型WEB框架有Django
  • 科学运算、人工智能: 典型库NumPy, SciPy, Matplotlib, Enthought librarys,pandas
  • 系统运维: 运维人员必备语言
  • 金融:量化交易,金融分析,在金融工程领域,Python不但在用,且用的最多,而且重要性逐年提高。原因:作为动态语言的Python,语言结构清晰简单,库丰富,成熟稳定,科学计算和统计分析都很牛逼,生产效率远远高于c,c++,java,尤其擅长策略回测
  • 图形GUI: PyQT, WxPython,TkInter
 

Python的优缺点:

 优点:
  1. Python的定位是“优雅”、“明确”、“简单”,所以Python程序看上去总是简单易懂,初学者学Python,不但入门容易,而且将来深入下去,可以编写那些非常非常复杂的程序。
  2. 开发效率非常高,Python有非常强大的第三方库,基本上你想通过计算机实现任何功能,Python官方库里都有相应的模块进行支持,直接下载调用后,在基础库的基础上再进行开发,大大降低开发周期,避免重复造轮子。
  3. 高级语言————当你用Python语言编写程序的时候,你无需考虑诸如如何管理你的程序使用的内存一类的底层细节
  4. 可移植性————由于它的开源本质,Python已经被移植在许多平台上(经过改动使它能够工 作在不同平台上)。如果你小心地避免使用依赖于系统的特性,那么你的所有Python程序无需修改就几乎可以在市场上所有的系统平台上运行
  5. 可扩展性————如果你需要你的一段关键代码运行得更快或者希望某些算法不公开,你可以把你的部分程序用C或C++编写,然后在你的Python程序中使用它们。
  6. 可嵌入性————你可以把Python嵌入你的C/C++程序,从而向你的程序用户提供脚本功能。
 缺点:
  1. 速度慢,Python 的运行速度相比C语言确实慢很多,跟JAVA相比也要慢一些。
  2. 代码不能加密,因为PYTHON是解释性语言,它的源码都是以名文形式存放的。
  3. 线程不能利用多CPU问题。
 

二、学习编写python程序

 

2.1 打印Hello World!

 

学习一门语言的第一个小程序,一般都是打印"Hello World!"
在Linux下创建hello.py,并输入
1 print ("Hello World!")

使用解释器执行hello.py

1 [[email protected]_69.112.148_hemingyuan ~]$ python hello.py
2 Hello World!

 

指定解释器

上一步中执行 python hello.py 时,明确的指出 hello.py 脚本由 python 解释器来执行。我们可以再脚本头部指定解释器执行
1 #!/usr/bin/env python
2 
3 print ("Hello World!")

给脚本增加执行权限 查看并执行脚本

1 [[email protected]_69.112.148_hemingyuan ~]$ chmod +x hello.py 
2 
3 #查看脚本权限
4 [[email protected]_69.112.148_hemingyuan ~]$ ll hello.py 
5 -rwxrwxr-x 1 hemingyuan hemingyuan 46 Sep 26 14:52 hello.py
6 
7 #执行脚本
8 [[email protected]_69.112.148_hemingyuan ~]$ ./hello.py 
9 Hello World!

 

在python交互器中执行

可以通过直接使用命令python,进入python交互器,执行操作。

1 [[email protected]_69.112.148_hemingyuan ~]$ python
2 Python 2.6.6 (r266:84292, Jul 23 2015, 15:22:56) 
3 [GCC 4.4.7 20120313 (Red Hat 4.4.7-11)] on linux2
4 Type "help", "copyright", "credits" or "license" for more information.
5 >>> 
6 >>> print ("Hello World!")
7 Hello World!

 

打印多行文字

 

2.2 变量与数据类型

2.2.1 数据类型

计算机顾名思义就是可以做数学计算的机器,因此,计算机程序理所当然地可以处理各种数值。但是,计算机能处理的远不止数值,还可以处理文本、图形、音频、视频、网页等各种各样的数据,不同的数据,需要定义不同的数据类型。在Python中,能够直接处理的数据类型有以下几种:

整数

Python可以处理任意大小的整数,当然包括负整数,在程序中的表示方法和数学上的写法一模一样,例如:1100-80800,等等。

1 >>> type(123)
2 <class int>
3 >>> type(-10)
4 <class int>
5 >>> type(-10)
浮点型

浮点数也就是小数,之所以称为浮点数,是因为按照科学记数法表示时,一个浮点数的小数点位置是可变的,比如,1.23x109和12.3x108是完全相等的。浮点数可以用数学写法,如1.233.14-9.01,等等。但是对于很大或很小的浮点数,就必须用科学计数法表示,把10用e替代,1.23x109就是1.23e9,或者12.3e8,0.000012可以写成1.2e-5,等等。

1 >>> type(3.141592)
2 <class float>
字符串

字符串是以单引号或双引号"括起来的任意文本,比如‘abc‘"xyz"等等。请注意,‘‘""本身只是一种表示方式,不是字符串的一部分,因此,字符串‘abc‘只有abc这3个字符。如果本身也是一个字符,那就可以用""括起来,比如"I‘m OK"包含的字符是Im,空格,OK这6个字符。

1 >>> type(abc)
2 <class str>
3 >>> type("456")
4 <class str>
5 >>> type(My name is He Mingyuan)
6 <class str>
7 >>> type("I‘m a student")
8 <class str>
布尔型

布尔值和布尔代数的表示完全一致,一个布尔值只有TrueFalse两种值,要么是True,要么是False,在Python中,可以直接用TrueFalse表示布尔值(请注意大小写),也可以通过布尔运算计算出来:

1 >>> 3>2
2 True
3 >>> 3>10
4 False
5 >>> 1==10
6 False

 

2.2.2 变量与常量

变量

在python中,声明变量时,变量名必须是大小写英文、数字和_的组合,且不能用数字开头,比如:

1 a=123
2 b="456"
3 name="hemingyuan"
4 t_003="T_003"
5 answer=True

可以使用type()查看变量的类型

 1 >>> type(a)
 2 <class int>
 3 
 4 >>> type(b)
 5 <class str>
 6 
 7 >>> type(name)
 8 <class str>
 9 
10 >>> type(answer)
11 <class bool>

常量

所谓常量就是不能变的变量,比如常用的数学常数π就是一个常量。在Python中,通常用全部大写的变量名表示常量:

1 PI = 3.14159265359

 

但事实上PI仍然是一个变量,Python根本没有任何机制保证PI不会被改变,所以,用全部大写的变量名表示常量只是一个习惯上的用法,如果你一定要改变变量PI的值,也没人能拦住你。

 

2.3 接收用户输入

在python中可以使用 print() 输出指定信息,如果想要接收用户的输入需要用到 input(),Python提供了一个input(),可以让用户输入字符串,并存放到一个变量里。比如输入用户的名字:

1 name=input()

 

编写小程序,接收用户的姓名,年龄,职业,爱好等信息,并打印出来

 1 name=input("Name:")
 2 age=int(input("Age:"))
 3 job=input("Job:")
 4 hobby=input("Hobby:")
 5 
 6 info=‘‘‘
 7     ---------index of %s ----------
 8            Name:  %8s
 9             Age:  %8d
10             Job:  %8s
11           Hobby:  %8s
12 ‘‘‘ % (name,name,age,job,hobby)
13 
14 print(info)

上面代码的执行结果如下 

 1 Name:hmy
 2 Age:24
 3 Job:Engineer
 4 Hobby:Game
 5 
 6     ---------index of hmy ----------
 7            Name:      hmy
 8             Age:       24
 9             Job: Engineer
10           Hobby:     Game

 

2.4 条件表达式if…else…

场景一

使用if…else…编写模拟登陆小程序,验证用户名和密码

1 username=input("username:")
2 password=input("password:")
3 
4 if username != "hmy" or password != "123.com":
5     print("Wrong username or password")
6 else:
7     print("welcome %s" %username)

程序执行结果

1 #正确输入username和password
2 username:hmy
3 password:123.com
4 Welcome hmy!
5 
6 #输入错误的username和password
7 username:asd
8 password:123
9 Wrong username or password

 

场景二

编写猜年龄小程序,提示用户是否猜对,猜对即退出

 1 age=23
 2 while True:
 3     guess=int(input("guess hmy‘s age:"))
 4     if guess<age:
 5         print("It‘s too small")
 6     elif guess==age:
 7         print("Right!")
 8         break
 9     else:
10         print("It‘s too big")

执行结果

 1 guess hmys age:10
 2 Its too small
 3 guess hmys age:20
 4 Its too small
 5 guess hmys age:100
 6 Its too big
 7 guess hmys age:24
 8 Its too big
 9 guess hmys age:23
10 Right!

 

 

作业二:编写登陆接口

  • 输入用户名密码
  • 认证成功后显示欢迎信息
  • 输错三次后锁定
 1 #!/usr/bin/env python
 2 
 3 login_list = []
 4 dict={}
 5 
 6 #读入data.list 写入字典 作为账号密码验证的工具
 7 with open(data.list, r) as data:
 8     for data_read in data:
 9         str = data_read.strip().split(:)
10         dict[str[0]]=str[1]
11 
12 while True:
13     # 读取用户输入用户名和密码
14     name = input(username:)
15     password = input(password:)
16 
17     #如果输入的用户名不存在与data.list文件中 跳出本次循环
18     if name not in dict:
19         print(Login failed.Your account does not exist!\n)
20         continue
21     else:
22         #读取锁定列表文件 判断账号是否被锁定,如果账号锁定则退出程序
23         with open(lock.list,r) as r:
24             for read in r:
25                 if name in read:
26                     print(Login failed.Your account has been locked!)
27                     exit()
28 
29         #判断账号与密码是否匹配
30         if  password != dict[name]:
31             print("Login failed.Wrong username or password!")
32             login_list.append(name)
33 
34             #如果密码错误3次 写入lock.list锁定账号
35             if login_list.count(name) == 3:
36                 with open(lock.list,a) as a:
37                     a.write(name+\n)
38                     print(Your account will be locked.\n)
39         #验证通过 显示欢迎信息
40         else:
41             print("Login Successful! Welcome %s!" % name)
42             exit()

 

以上是关于Python学习-day1的主要内容,如果未能解决你的问题,请参考以下文章

Python学习之路——Day1

python学习之路-day1

Python学习day1作业

Python学习记录day1

python学习day1

坚持Selenium+Python学习之从读懂代码开始 DAY1