本节内容

1、 Python简介 
2、安装
3、第一个程序(hello world)
4、解释器
5、编程语言的分类
6、注释
7、变量
8、中文的问题
9、运算
10、输入/输出
11、流程控制/if/for/while 
12、数字+字符串+格式化
今日目标:
实现用户登录、三级菜单

1、 Python简介

1.1 python的由来

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

  Python社区的人赋予他“仁慈大君” 的称号,这一称号直接来自英国肥皂剧《Monty Python飞行马戏团》。Guido当初之所以选中Python作为语言的名字,是因为他太喜欢这部肥皂剧了。

      

1.2 python的现状

http://www.tiobe.com/tiobe_index
   
 

1.3 python 的特点

  引用一段《python基础教程》开场白:

  编写C程序就像一群人拿着剃刀在刚打过蜡的舞场内跳快舞

                                               ------Walidi Ravens

  C++:难学更难用,设计如此

                                                    ------匿名

  在很多方面,Java就是C++ 

                                              ------Michael Feldman

  现在请看一种前所未有的表演......

                                     ------Monty Python的表演《飞行的马戏团》

任何编程语言都有缺点,Python也不例外:
第一个缺点就是运行速度慢,和C程序相比非常慢,因为Python是解释型语言,你的代码在执行时会一行一行地翻译成CPU能理解的机器码,这个翻译过程非常耗时,所以很慢。而C程序是运行前直接编译成CPU能直接执行的机器码,所以非常快。
第二个缺点是,线程不能利用多CPU问题,这是Python被人诟病最多的一个缺点,GIL即全局解释器锁。是计算机程序设计语言解释器用于同步线程的工具,使得任何时刻仅有一个线程在执行,Python的线程是操作系统的原生线程。在Linux上为pthread,在Windows上为Win thread,完全由操作系统调度线程的执行。一个python解释器进程内有一条主线程,以及多条用户程序的执行线程。即使在多核CPU平台上,由于GIL的存在,所以禁止多线程的并行执行。关于这个问题的折衷解决方法,我们在以后线程和进程章节里再进行详细探讨。
第三个缺点就是代码不能加密。

1.4 Python主要应用领域

  • WEB/客户端 开发: 豆瓣、Youtube 、Quora 、BitTorrent、dropbox 、Gmail、Google Maps
  • 云计算:OpenStack
  • 爬虫:搜索引擎、网站比价、买火车票
  • 游戏: EVE online 、Civilization IV
  • 科学运算、人工智能: 典型库NumPy, SciPy, Matplotlib, Enthought librarys,pandas
  • 系统运维: 运维人员必备语言
  • 金融:量化交易,金融分析,在金融工程领域,Python不但在用,且用的最多,而且重要性逐年提高。原因:作为动态语言的Python,语言结构清晰简单,库丰富,成熟稳定,科学计算和统计分析都很牛逼,生产效率远远高于c,c++,java,尤其擅长策略回测
  • 图形GUI: PyQT, WxPython,TkInter

 

1.5 Python在一些公司的应用 

  • 谷歌:Google App Engine 、code.google.com 、Google earth 、谷歌爬虫、Google广告等项目都在大量使用Python开发
  • CIA: 美国中情局网站就是用Python开发的
  • NASA: 美国航天局(NASA)大量使用Python进行数据分析和运算
  • YouTube:世界上最大的视频网站YouTube就是用Python开发的
  • Dropbox:美国最大的在线云存储网站,全部用Python实现,每天网站处理10亿个文件的上传和下载
  • Instagram:美国最大的图片分享社交网站,每天超过3千万张照片被分享,全部用python开发
  • Facebook:大量的基础库均通过Python实现的
  • Redhat: 世界上最流行的Linux发行版本中的yum包管理工具就是用python开发的
  • 豆瓣: 公司几乎所有的业务均是通过Python开发的
  • 知乎: 国内最大的问答社区,通过Python开发(国外Quora)
  • 春雨医生:国内知名的在线医疗网站是用Python开发的
  • 除上面之外,还有搜狐、金山、腾讯、盛大、网易、百度、阿里、淘宝 、土豆、新浪、果壳等公司都在使用Python完成各种各样的任务。

1.6 如何学好python

2、Python开发必备环境

2.1 如何获取python

https://www.python.org/downloads/ 

2.2 如何安装

windows:

linux:

查看默认Python版本
python -V1、安装gcc,用于编译Python源码yum install gcc
2、下载源码包,https://www.python.org/ftp/python/
3、解压并进入源码文件
4、编译安装./configuremake allmake install
5、查看版本/usr/local/bin/python2.7 -V
6、修改默认Python版本mv /usr/bin/python /usr/bin/python2.6ln -s /usr/local/bin/python2.7 /usr/bin/python
7、防止yum执行异常,修改yum使用的Python版本vi /usr/bin/yum将头部 #!/usr/bin/python 修改为 #!/usr/bin/python2.6

3、第一个python程序 Hello World!

在什么地方写一个python程序?

3.1 使用python交互程序

3.2 使用文件

windows:

推荐Notepad++ ,不要用Word和Windows自带的记事本。Word保存的不是纯文本文件,而记事本会自作聪明地在文件开始的地方加上几个特殊字符(UTF-8 BOM),结果会导致程序运行出现莫名其妙的错误!

linux:

# vim hello.py
# python hello.py
Hello World!

上一步中执行 python hello.py 时,明确的指出 hello.py 脚本由 python 解释器来执行。

如果想要类似于执行shell脚本一样执行python脚本,例: ./hello.py ,那么就需要在 hello.py 文件的头部指定解释器,如下:

#!/usr/bin/env python
#The first code
print "hello,world"

ps:执行前需给予 hello.py 执行权限,chmod 755 hello.py

解释器:

Python在执行时,解释器会将.py文件中的源代码编译成Python的byte code(字节码),然后再执行这些编译好的byte code。

对比下其它语言的hello world

 C++
 C
 JAVA
 PHP
 RUBY
 Go

3.3 使用IDE---pycharm(windows)

补充知识:编译型语言和解释型语言

编译型语言

需通过编译器(compiler)将源代码编译成机器码,之后才能执行的语言。一般需经过编译(compile)、链接(linker)这两个步骤。编译是把源代码编译成机器码,链接是把各个模块的机器码和依赖库串连起来生成可执行文件。

优点:编译器一般会有预编译的过程对代码进行优化。 因为编译只做一次,运行时不需要编译,所以编译型语言的程序执行效率高 。可以脱离语言环境独立运行。

缺点:编译之后如果需要修改就需要整个模块重新编译。编译的时候根据对应的运行环境生成机器码,不同的操作系统之间移植就会有问题,需要根据运行的操作系统环境编译不同的可执行文件。

代表语言:C、C++、 Pascal、Object-C以及最近很火的苹果新语言swift

解释型语言

解释性语言的程序不需要编译,相比编译型语言省了道工序,解释性语言在运行程序的时候才逐行翻译。

优点:有良好的平台兼容性,在任何环境中都可以运行,前提是安装了解释器(虚拟机)。灵活,修改代码的时候直接修改就可以,可以快速部署,不用停机维护。

缺点:每次运行的时候都要解释一遍,性能上不如编译型语言。

代表语言:JavaScript、Python、Erlang、PHP、Perl、Ruby

混合型语言

既然编译型和解释型各有缺点就会有人想到把两种类型整合起来,取其精华去其糟粕。就出现了半编译型语言。比如C#,C#在编译的时候不是直接编译成机器码而是中间码,.NET平台提供了中间语言运行库运行中间码,中间语言运行库类似于Java虚拟机。我个人认为抛开一切的偏见C#是这个星球上最好的编程语言。可惜微软的政策限制了C#的推广。

Java先生成字节码再在Java虚拟机中解释执行。

严格来说混合型语言也属于解释型语言。

 

4、注释

  单行注视:#  被注释内容

  多行注释:""" 被注释内容 """

# 井号可以注释单行代码
"""
3个双引号或者单引号
可以注释多行内容
"""

  

5、变量和数据类型  

变量可以用来存储数据和被程序调用,它由名字和值两部分组成,可以把它想象成一个容器,容器的名字和值会被保存在内存中。

#_*_coding:utf-8_*_name = "Alex Li"
age = 18
sales = 4432.67 / 1.20

  

变量定义的规则:

  • 变量名只能是 字母、数字或下划线的任意组合
  • 变量名的第一个字符不能是数字
  • 以下关键字不能声明为变量名
    ['and', 'as', 'assert', 'break', 'class', 'continue', 'def', 'del', 'elif', 'else', 'except', 'exec', 'finally', 'for', 'from', 'global', 'if', 'import', 'in', 'is', 'lambda', 'not', 'or', 'pass', 'print', 'raise', 'return', 'try', 'while', 'with', 'yield']

变量的赋值

name = "Alex Li"name2 = name
print(name,name2)name = "Jack"print("What is the value of name2 now?")

  

6、输入/输出

输出:

在print()括号中加上字符串,就可以向屏幕上输出指定的文字。

print('hello, python')  

print()函数也可以接受多个字符串,用逗号“,”隔开,就可以连成一串输出:

name = “france”
print(“my name is :”,name)  

print()会依次打印每个字符串,遇到逗号“,”会输出一个空格。

输入:

Python提供了一个input(),可以让用户输入字符串

7、中文的问题

#!/usr/bin/env pythonprint "你好,世界"

 
错误原因:python解释器在加载 .py 文件中的代码时,会对内容进行编码(默认ASCII码),但ASCII不支持中文。

字符编码:

字符编码(英语:Character encoding)、字集码是把字符集中的字符编码为指定集合中某一对象(例如:比特模式、自然数序列、8位组或者电脉冲),以便文本在计算机中存储和通过通信网络的传递。常见的例子包括将拉丁字母表编码成摩斯电码和ASCII。其中,ASCII将字母、数字和其它符号编号,并用7比特的二进制来表示这个整数。通常会额外使用一个扩充的比特,以便于以1个字节的方式存储。

ASCII

ASCII(American Standard Code for Information Interchange,美国标准信息交换代码)是基于拉丁字母的一套电脑编码系统,主要用于显示现代英语和其他西欧语言,其最多只能用 8 位来表示(一个字节),即:2**8 = 256-1,所以,ASCII码最多只能表示 255 个符号。ASCII规范标准在1967发表,最后一次更新则是在1986年。至今为止共定义了128个字符。

GB2312/GBK/GB18030 

GB 2312 是中国国家标准简体中文字符集,全称《信息交换用汉字编码字符集·基本集》,又称GB0,由中国国家标准总局在1981年发布实施。GB 2312标准共收录6763个汉字。

GBK即汉字内码扩展规范。共收入21886个汉字和图形符号。

GB 18030与GB 2312-1980完全兼容,与GBK基本兼容,支持GB 13000及Unicode的全部统一汉字,共收录汉字70244个。

各国语言编码

http://blog.csdn.net/miqi770/article/details/43935273

Unicode

Unicode(中文:万国码、国际码、统一码、单一码)是计算机科学领域里的一项业界标准。它对世界上大部分的文字系统进行了整理、编码,使得电脑可以用更为简单的方式来呈现和处理文字。

Unicode伴随着通用字符集的标准而发展,同时也以书本的形式[1]对外发表。Unicode至今仍在不断增修,每个新版本都加入更多新的字符。目前最新的版本为2016年6月21日公布的9.0.0[2],已经收入超过十万个字符(第十万个字符在2005年获采纳)。Unicode涵盖的数据除了视觉上的字形、编码方法、标准的字符编码外,还包含了字符特性,如大小写字母。

UTF-8

UTF-88-bit Unicode Transformation Format)是一种针对Unicode的可变长度字符编码,也是一种前缀码。它可以用来表示Unicode标准中的任何字符,且其编码中的第一个字节仍与ASCII兼容,这使得原来处理ASCII字符的软件无须或只须做少部分修改,即可继续使用。因此,它逐渐成为电子邮件、网页及其他存储或发送文字的应用中,优先采用的编码。

UTF-8使用一至六个字节为每个字符编码(尽管如此,2003年11月UTF-8被RFC 3629重新规范,只能使用原来Unicode定义的区域,U+0000到U+10FFFF,也就是说最多四个字节)

改正:应该显示的告诉python解释器,用什么编码来执行源代码,即:

#!/usr/bin/env python
# -*- coding: utf-8 -*-print "你好,世界" 

 

8、流程控制之if ... else

场景一、用户登陆验证

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
# 提示输入用户名和密码
  
# 验证用户名和密码
#     如果错误,则输出用户名或密码错误
#     如果成功,则输出 欢迎,XXX!
#!/usr/bin/env python
# -*- coding: encoding -*-
  
import getpass
  
  
name = raw_input('请输入用户名:')
pwd = getpass.getpass('请输入密码:')
  
if name == "alex" and pwd == "cmd":
    print("欢迎,alex!")
else:
    print("用户名和密码错误")

场景二、猜年龄游戏

在程序里设定好你的年龄,然后启动程序让用户猜测,用户输入后,根据他的输入提示用户输入的是否正确,如果错误,提示是猜大了还是小了

+ View Code

  

外层变量,可以被内层代码使用
内层变量,不应被外层代码使用

12、表达式for loop

最简单的循环10次

1
2
3
4
5
6
#_*_coding:utf-8_*_
__author__ = 'Alex Li'
for in range(10):
    print("loop:", i )

输出:

1
2
3
4
5
6
7
8
9
10
loop: 0
loop: 1
loop: 2
loop: 3
loop: 4
loop: 5
loop: 6
loop: 7
loop: 8
loop: 9

需求一:还是上面的程序,但是遇到小于5的循环次数就不走了,直接跳入下一次循环

1
2
3
4
for in range(10):
    if i<5:
        continue #不往下走了,直接进入下一次loop
    print("loop:", i )

需求二:还是上面的程序,但是遇到大于5的循环次数就不走了,直接退出

1
2
3
4
for in range(10):
    if i>5:
        break #不往下走了,直接跳出整个loop
    print("loop:", i )

13、while loop   

 有一种循环叫死循环,一经触发,就运行个天荒地老、海枯石烂。

海枯石烂代码

1
2
3
4
5
count = 0
while True:
    print("你是风儿我是沙,缠缠绵绵到天涯...",count)
    count +=1
    

其实除了时间,没有什么是永恒的,死loop还是少写为好 

上面的代码循环100次就退出吧

+ View Code

回到上面for 循环的例子,如何实现让用户不断的猜年龄,但只给最多3次机会,再猜不对就退出程序。

+ View Code

  

  

作业一:博客

作业二:编写登陆接口

  • 输入用户名密码
  • 认证成功后显示欢迎信息
  • 输错三次后锁定
作业三:多级菜单
  • 三级菜单
  • 可依次选择进入各子菜单
  • 所需新知识点:列表、字典

转载于:https://www.cnblogs.com/francis818/p/5692358.html

Day1 - Python基础相关推荐

  1. Day1 - Python基础1

    Day1 - Python基础1 目录 Python介绍 发展史 Python 2 or 3? 安装 Hello World程序 变量 用户输入 模块初识 python的创始人为吉多·范罗苏姆(Gui ...

  2. Day1 python基础

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

  3. Python全栈开发,Day1 - Python基础1

    本章内容 Python是什么? Python的发展史 Python2与3的区别 Python的语言类型 Python的优缺点 一.Python是什么? Python的创始人是吉多·范罗苏姆(Guido ...

  4. Python on the Way, Day1 - Python基础1

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

  5. Python之路,Day1 - Python基础

    本节内容 Python介绍 发展史 一. Python介绍 python的创始人为吉多·范罗苏姆(Guido van Rossum).1989年的圣诞节期间,吉多·范罗苏姆为了在阿姆斯特丹打发时间,决 ...

  6. 老男孩-Python之路,Day1 - Python基础1

    本节内容 Python介绍 发展史 Python 2 or 3? 安装 Hello World程序 变量 用户输入 模块初识 .pyc是个什么鬼? 数据类型初识 数据运算 表达式if ...else语 ...

  7. ISP成像算法基础Day1—Python基础

    主要内容 • 流程图伪代码 • 基本编程元素 • 脚本函数和包 • Numpy 伪代码到程序 第一个脚本 •1 建⽴项⽬和脚本 •2 运⾏ •3 Debug,查看断点 •4 步进,查看系统函数的代码 ...

  8. Studing Day1 - python基础1

    11.23日学习 python是一个解释型的语言,也是一种强类型的动态类型的语言 强类型弱类型等详细解释: http://blog.csdn.net/gs_008/article/details/51 ...

  9. Day1 - Python基础1作业【编写登陆接口】

    1 # 作业:编写登陆接口 2 # 输入用户名密码 3 # 认证成功后显示欢迎信息 4 # 输错三次后锁定 5 import getpass 6 7 user = {'hepd':123456, 'h ...

最新文章

  1. Linux C++与Python混合编程(g++生成链接库与python调用)
  2. 何恺明大神新作:一种用于目标检测的主流ViT架构,效果SOTA
  3. “全能”选手—Django 1.10文档中文版Part2
  4. 移动端 Web 开发踩坑之旅
  5. 中国HBase技术社区第五届MeetUp ——HBase技术解析及应用实践(深圳站)
  6. mybatis plus 导出sql_软件更新丨mybatis-plus 3.0.7 发布,辞旧迎新
  7. HDU 1253.胜利大逃亡
  8. Java API下载和查阅方法
  9. android:scaletype=quot;fitxyquot;,Android ImageView的ScaleType属性
  10. 什么是Symbian
  11. poj-3034 Whac-a-Mole
  12. 蚂蚁链ACCA认证试题
  13. IEC61850——开山篇
  14. revit打开服务器文件格式,Revit文件导出格式大全(下)
  15. html怎么设置字体的透明度,CSS字体透明度怎么设置?
  16. 计算机专业专硕考研数学考一还是二,计算机专业考研数学考一还是二
  17. java solr group by_solr高级查询——group和facet
  18. Java Servlet 详解:(三)在 IDES 中开发 Servlet-多图警告
  19. 北理工嵩天Python语言程序设计笔记(10 Python计算生态概览)
  20. 领域驱动设计,为何又死灰复燃了?

热门文章

  1. python polygon_Polygon
  2. 网页访问时页面错误代码含义
  3. 西游记中孙悟空所尊敬的神佛
  4. Python3,异常进阶写法之retrying。
  5. 成长部落# 编辑推荐 Python 入门学习内容系列
  6. XiaoHu日志 7/29~8/9
  7. SFP-GE模块(1310nm, LC) 是什么意思
  8. 谈谈做等保三级后的一些关于运维的想法
  9. 各种假期用英语的表达
  10. 美国纽约大学计算机排名,纽约大学计算机科学与信息系统世界排名2019年最新排名第20(QS世界排名)...