2016年7月23日"Python基础s14-Day1"

Python是什么?
Python(英国发音:/ˈpaɪθən/ 美国发音:/ˈpaɪθɑːn/),是一种面向对象、直译式的计算机程序语言,具有近二十年的发展历史。它包含了一组功能完备的标准库,能够轻松完成很多常见的任务。它的语法简单,与其它大多数程序设计语言使用大括号不一样,它使用缩进来定义语句块。

与Scheme、Ruby、Perl、Tcl等动态语言一样,Python具备垃圾回收功能,能够自动管理内存使用。它经常被当作脚本语言用于处理系统管理任务和网络程序编写,然而它也非常适合完成各种高级任务。Python虚拟机本身几乎可以在所有的作业系统中运行。使用一些诸如py2exe、PyPy、PyInstaller之类的工具可以将Python源代码转换成可以脱离Python解释器运行的程序。

Python的官方解释器是CPython,该解释器用C语言编写,是一个由社区驱动的自由软件,目前由Python软件基金会管理。

Python支持命令式程序设计、面向对象程序设计、函数式编程、面向侧面的程序设计、泛型编程多种编程范式。

Python历史

Python的创始人为吉多·范罗苏姆(Guido van Rossum)。1989年的圣诞节期间,吉多·范罗苏姆为了在阿姆斯特丹打发时间,决心开发一个新的脚本解释程序,作为ABC语言的一种继承。之所以选中Python作为程序的名字,是因为他是BBC电视剧——蒙提·派森的飞行马戏团(Monty Python's Flying Circus)的爱好者。ABC是由吉多参加设计的一种教学语言。就吉多本人看来,ABC这种语言非常优美和强大,是专门为非专业程序员设计的。但是ABC语言并没有成功,究其原因,吉多认为是非开放造成的。吉多决心在Python中避免这一错误,并获取了非常好的效果,完美结合了C和其他一些语言。[5]

就这样,Python在吉多手中诞生了。实际上,第一个实现是在Mac机上。可以说,Python是从ABC发展起来,主要受到了Modula-3(另一种相当优美且强大的语言,为小型团体所设计的)的影响。并且结合了Unix shell和C的习惯。

目前吉多仍然是Python的主要开发者,决定整个Python语言的发展方向。Python社区经常称呼他是仁慈的独裁者。

Python 2.0于2000年10月16日发布,增加了实现完整的垃圾回收,并且支持Unicode。同时,整个开发过程更加透明,社区对开发进度的影响逐渐扩大。Python 3.0于2008年12月3日发布,此版不完全兼容之前的Python源代码。不过,很多新特性后来也被移植到旧的Python 2.6/2.7版本。

Python是完全面向对象的语言。函数、模块、数字、字符串都是对象。并且完全支持继承、重载、派生、多重继承,有益于增强源代码的复用性。Python支持重载运算符,因此Python也支持泛型设计。相对于Lisp这种传统的函数式编程语言,Python对函数式设计只提供了有限的支持。有两个标准库(functools, itertools)提供了与Haskell和Standard ML中类似的函数式程序设计工具。

虽然Python可能被粗略地分类为“脚本语言”(script language),但实际上一些大规模软件开发项目例如Zope、Mnet及BitTorrent,Google也广泛地使用它。Python的支持者较喜欢称它为一种高级动态编程语言,原因是“脚本语言”泛指仅作简单程序设计任务的语言,如shell script、VBScript等只能处理简单任务的编程语言,并不能与Python相提并论。

Python2到Python3发生了哪些变化

1.print语句没有了取而代之的是print()函数
下面是python2中的print写法

下面是python3中的print写法

2.raw_input()没有了取而代之的是input()
在python2中用户输入可以用raw_input()也可以用input()。

python3中只有input()

3.Pthon3中默认支持中文了
在python2中要想输出中文需要在代码中加上# -*- coding:utf-8 -*-
python3中还有一些模块名称发生了改变以及其他变化。这里不一一列出了

开始Python之旅
跟所有程序一样第一个程序总是Hello.World。下面我们写一个hello world:
#创建一个helloworld.py的程序

 #!/usr/bin/env python
 # -*- coding: utf-8 -*-
 print("Hello.World!"

#然后执行命令python helloworld.py

[root@node1 ~]# python helloworld.py
Hello.World!

Python变量

python中声明一个变量与shell相似"变量名 = value"

name = "enzhi.wang"

上面代码声明一个变量,变量名为name,变量的值为"enzhi.wang"。

Python变量的命名规范

1.变量只能是字母、数字、下划线任意组合

2.变量名第一个字符不能以数字开头

3.变量名第一个字符不能以特殊字符开头

Python注释

1.单行注释,Python中使用#号用来实现单行代码注释  

#name = "enzhi.wang"

2.多行注释,python中使用一对'''来注释多行内容

 #!/usr/bin/env python
 # _*_ coding:utf-8 _*_
 # Author: enzhi.wang
 #name = "enzhi.wang"
 # 下面为多行注释
 '''
 name = "enzhi.wang"
 age = 26
 job = "IT"
 '''

Python用户输入

Python3中使用input()函数来实现用户与程序之间的交互

 #!/usr/bin/env python
 # _*_ coding:utf-8 _*_
 # Author: enzhi.wang
 name = input("Please enter your user name.")
 age = int(input("Age:"))
 job = input("Job:")

 print(name,age,job)

执行上面代码

Please enter your user name.enzhi
Age:26
Job:IT
enzhi 26 IT  #用户输入结束后print打印出变量值

格式化输出

python中格式化输出的三种方式:
1.创建一个名为formatting.py的程序

 #!/usr/bin/env python
 # _*_ coding:utf-8 _*_
 # Author: enzhi.wang
 name = input("Please enter user name:")
 age = int(input("Age:"))
 job = input("Job:")

 info1 = '''
 Information of:%s
           Name:%s
            age:%d
            job:%s
 ''' % (name,name,age,job)  #变量必须按顺序去引用

 print(info1)# %我理解为与shell中的$1,$2类似用于传参# %s,s是代表字符串# %d,d是代表数字

执行formatting.py

python formatting.py

Please enter user name:wangenzhi
Age:26
Job:IT

Information of:wangenzhi
          Name:wangenzhi
           age:26
           job:IT

第二种格式化输出方式:

 #!/usr/bin/env python
 # _*_ coding:utf-8 _*_
 # Author: enzhi.wang
 name = input("Please enter user name:")
 age = int(input("Age:"))
 job = input("Job:")
 info2 =  '''
 Information of {_name}
          Name: {_name}
           Age: {_age}
           Job: {_job}
 ''' .format(_name=name,_age=age,_job=job)

 print(info2)

执行formatting.py

Please enter user name:wangenzhi
Age:26
Job:IT

Information of wangenzhi
         Name: wangenzhi
          Age: 26
          Job: IT

第三种格式化输出方式:

 #!/usr/bin/env python
 # _*_ coding:utf-8 _*_
 # Author: enzhi.wang
 name = input("Please enter user name:")
 age = int(input("Age:"))
 job = input("Job:")
 # 第一种格式化方式
 info1 = '''
 Information of: %s
           Name: %s
            age: %d
            job: %s
 ''' % (name,name,age,job)#变量必须按顺序去引
 # 第二种格式化方式
 info2 =  '''
 Information of {_name}
          Name: {_name}
           Age: {_age}
           Job: {_job}
 ''' .format(_name=name,_age=age,_job=job)
 # 第三种格式化方式
 info3 = '''
 Information of {0}
          Name: {0}
           Age: {1}
           Job: {2}
 '''.format(name,age,job)

 print(info3)

执行formatting.py

Please enter user name:enzhi
Age:25
Job:it

Information of enzhi
         Name: enzhi
          Age: 25
          Job: it

Python条件判断

python中使用if来进行条件判断语法如下

 if condition_1:
     statement_block_1
 elif condition_2:
     statement_block_2
 else:
     statement_block_3
  • 如果 "condition_1" 为 True 将执行 "statement_block_1" 块语句
  • 如果 "condition_1" 为False,将判断 "condition_2"
  • 如果"condition_2" 为 True 将执行 "statement_block_2" 块语句
  • 如果 "condition_2" 为False,将执行"statement_block_3"块语句

Python 中用 elif 代替了 else if,所以if语句的关键字为:if – elif – else

注意:

  • 1、每个条件后面要使用冒号(:),表示接下来是满足条件后要执行的语句块。
  • 2、使用缩进来划分语句块,相同缩进数的语句在一起组成一个语句块。当出现如下错误提示(IndentationError)则为缩进错误

实例:使用if条件判断实现猜大小的游戏

让用户输入一个年龄判断是否与定义的年龄相等,如果相等打印欢迎信息退出程序,如果大于定义的年龄则提示用户猜小一点,如果小于定义的年龄则提示用户猜大一点。

 [root@node1 ~]# vim interaction.py
 #!/usr/bin/env python
 # -*- coding: utf-8 -*-
 # Author: enzhi.wang
 age = 26  #定义默认age为26

 input_age = int(input("guess age:"))  #提示用户输入一个年龄
 if input_age == age:  #如果等于age那么就打印下面的print内容
     print("yes,guess great!")
 elif input_age > age:  #如果大于age那么就打印下面print内容
     print("guess a little bit samll")
 else:  #否则,如果上面既不等于又不是大于那一定是小于,就打印下面print内容
     print("guess a  bit bigger")

 Python循环语句

python中循环语句有while和for循环。

while循环

python中while循环的写法:在while循环中同样要注意代码之间的缩进

#!/usr/bin/env python
# -*- coding: utf-8 -*-
# Author: enzhi.wang
while  条件判断:
    语句

在上面猜大小的游戏中用户输入完成后不论是否猜对答案程序都会退出,现在我们用while循环来实现只要用户正确就退出否则就一直猜

# 创建一个名为guess_while.py的脚本

 1 [root@node1 ~]#vim guess_while.py
 2 #!/usr/bin/env python
 3 # -*- coding: utf-8 -*-
 4 # Author: enzhi.wang
 5 age = 26
 6 while True:
 7   input_age = int(input("Please enter your guess age:"))
 8
 9   if input_age == age:
10     print("yes,Guessed it.")
11     break
12   elif input_age > age:
13     print("guess a little bit small.")
14   else:
15     print("guess a bit bigger.")

执行guess_while.py

[root@node1 ~]# python3 guess_while.py
Please enter your guess age:
guess a bit bigger.
Please enter your guess age:
guess a little bit small.
Please enter your guess age:
yes,Guessed it.

# 运行上面脚本时只有用户猜对了才会退出这样显得非常不友好,现在要求如果用户猜错三次就提示用户对不起你猜错的次数过多并退出程序

 [root@node1 ~]#
 age = 26
 count = 0
 while count <3:
   input_age = int(input("Please enter your guess age:"))
   if input_age == age:
     print("yes,Guessed it.")
     break
   elif input_age > age:
     print("guess a little bit small.")
   else:
     print("guess a bit bigger.")
   count += 1
 else:
   print("I'm sorry your guess wrong too many times.")

# 提示:在python中while循环可以使用else来做条件式判断。当while count <3条件不满足时执行else下面的语句

执行guess_while2.py

[root@node1 ~]# python3 guess_while2.py
Please enter your guess age:
guess a little bit small.
Please enter your guess age:
guess a bit bigger.
Please enter your guess age:
guess a little bit small.
I'm sorry your guess wrong too many times.

for循环

Python for循环可以遍历任何序列的项目,如一个列表或者一个字符串。

for循环的写法:for循环同样需要注意代码之间的缩进

 #!/usr/bin/env python
 # -*- coding: utf-8 -*-
 # Author: enzhi.wang
 for variable in sequence:
   statements
 else:
   statements

# 下面用for循环实现猜大小的游戏,并实现错误三次退出程序

 [root@node1 ~]#
 #!/usr/bin/env python
 # -*- coding: utf-8 -*-
 # Author: enzhi.wang
 age = 26

 for i in range(3):
   input_age = int(input("Please enter your guess age:"))
   if input_age == age:
     print("yes,Guessed it.")
     break
   elif input_age > age:
     print("guess a little bit small.")
   else:
     print("guess a bit bigger.")
 else:
   print("\033[31;1mI'm sorry your guess wrong too many times.\033[0m")

执行guess_for.py

[root@node1 ~]# python3  guess_for.py
Please enter your guess age:
guess a bit bigger.
Please enter your guess age:
guess a little bit small.
Please enter your guess age:
yes,Guessed it.

break和continue语句

break可以跳出for和while的循环体。如下面实例

 [root@node1 ~]# vim break.py
 #!/usr/bin/env python
 # -*- coding: utf-8 -*-
 for i in range(10):  #循环0到10之间的整数
   print(i)  #每循环一次打印出当前的整数
   if i >4:  #判断如果i大于4那么就退出整个循环
     break

执行以上脚本输出结果为:

[root@node1 ~]# python3 break.py 

continue语句被用来告诉Python跳过当前循环块中的剩余语句,然后继续进行下一轮循环。

 [root@node1 ~]# vim continue.py
 #!/usr/bin/env python
 # -*- coding: utf-8 -*-
 for i in range(10):  #循环10次
   if i == 5:  #当i等于5时跳出本次循环继续下一次循环
     continue
   print(i)

执行上面脚本的输出结果为:

[root@node1 ~]# python3  continue.py 

9# 当i等于5时则跳过去继续下一轮循环了

Python基础s14-day1的更多相关文章

  1. python基础之day1

    Python 简介 Python是著名的“龟叔”Guido van Rossum在1989年圣诞节期间,为了打发无聊的圣诞节而编写的一个编程语言. Python为我们提供了非常完善的基础代码库,覆盖了 ...

  2. python基础篇-day1

    python基础篇 python是由C语言写的: pass 占位符: del,python中全局的功能,删除内存中的数据: 变量赋值的方法: user,pass = 'freddy','freddy1 ...

  3. Python基础(Day1)

    一.Python的简介  1.Python的诞生 python的创始人为吉多·范罗苏姆(Guido van Rossum).1989年的圣诞节期间,吉多·范罗苏姆(中文名字:龟叔)为了在阿姆斯特丹打发 ...

  4. Python 基础学习day1

    1.计算机的组成 CPU:相当于人的大脑,预算中心. 内存:临时加载数据或者程序. 缺点:断电即消失. 硬盘:存放所有的数据,输入输出设备. 2.什么是操作系统. 调控所有硬件与软件的中间介质. 3. ...

  5. Python基础,day1

    一. Python介绍 目前Python主要应用领域: 云计算: 云计算最火的语言, 典型应用OpenStack WEB开发: 众多优秀的WEB框架,众多大型网站均为Python开发,Youtube, ...

  6. 9-Python基础知识-day1

    Python基础知识-day1 Python 2 和Python 3 的区别: Python2 源码不标准,混乱,重复代码多:#-*-encoding:utf8 -*- 解决python2显示中文的问 ...

  7. Day1 - Python基础1 介绍、基本语法、流程控制

    Python之路,Day1 - Python基础1   本节内容 Python介绍 发展史 Python 2 or 3? 安装 Hello World程序 变量 用户输入 模块初识 .pyc是个什么鬼 ...

  8. Python day1 ---python基础1.1

    1.模块初识2..pyc是个什么鬼?3.数据类型初识 4.数据运算5.入门知识拾遗 1.模块初识 sys模块 import sys print(sys.path) #打印环境变量 'D:\\Pycha ...

  9. Day1 Python基础学习

    一.编程语言分类 1.简介 机器语言:站在计算机的角度,说计算机能听懂的语言,那就是直接用二进制编程,直接操作硬件 汇编语言:站在计算机的角度,简写的英文标识符取代二进制去编写程序,本质仍然是直接操作 ...

  10. python基础day1

    一.python介绍 1.1简介 Python  (英国发音:/ˈpaɪθən/ 美国发音:/ˈpaɪθɑːn/), 是一种面向对象的解释型计算机程序设计语言,由荷兰人Guido van Rossum ...

随机推荐

  1. java servlet Json.org.jar

    servlet我们可以把他当成一个数据媒介,他最终执行的是将方法体内获取处理后的数据,返回给请求的客户端,或以XML格式,或以JSON格式 ,我这里是使用的JSON格式数据,所以下面我要说org.js ...

  2. 2016 大连网赛---Weak Pair(dfs+树状数组)

    题目链接 http://acm.split.hdu.edu.cn/showproblem.php?pid=5877 Problem Description You are given a rooted ...

  3. Scalaz(24)- 泛函数据结构: Tree-数据游览及维护

    上节我们讨论了Zipper-串形不可变集合(immutable sequential collection)游标,在串形集合中左右游走及元素维护操作.这篇我们谈谈Tree.在电子商务应用中对于xml, ...

  4. Java --ClassLoader创建、加载class、卸载class

    一.java提供了三种ClassLoader对Class进行加载: 1.BootStrap ClassLoader:称为启动类加载器,是Java类加载层次中最顶层的类加载器,负责加载JDK中的核心类库 ...

  5. Atom 备份神器 —— Sync Settings

    当 Atom 的扩展越装越多,配置也越来越偏离了系统默认设置时,一旦电脑重装后需要复原开发环境,这将是一件比较头疼的事,但今天发现一个扩展,可以解决这一问题,那就是「Sync Settings」,根据 ...

  6. 2015年最佳的15个 Node.js 开发工具

    Node.js 越来月流行,这个基于 Google V8 引擎建立的平台, 用于方便地搭建响应速度快.易于扩展的网络应用.在本文中,我们列出了2015年最佳的15个 Node.js 开发工具.这些工具 ...

  7. JS的window.location应用实例

    window.location 对象用于获得当前页面的地址 (URL),并把浏览器重定向到新的页面. Window Locationwindow.location 对象在编写时可不使用 window ...

  8. javascript中关于数组的一些鄙视题

    一.判断一个数组中是否有相同的元素 /* * 判断数组中是否有相同的元素的代码 */ // 方案一 function isRepeat1(arrs) { if(arrs.length > 0) ...

  9. iOS UIView设置圆角

    UIView设置圆角 1.比较简单的情况,UIView四个角都是圆角: UIView *aView = [[UIView alloc] init]; aView.frame = CGRectMake( ...

  10. 如何:对 SharePoint 列表项隐藏 ECB 中的菜单项

    可以通过使用功能框架向编辑控制块 (ECB) 菜单添加新的自定义操作.但是,您不能使用此方法进行相反的操作,即隐藏现有的 ECB 菜单项,因为它们是通过使用 ECMAScript(JavaScript ...