Python入门基础(一)

Python的创始人叫吉多·范罗苏姆(Guido van Rossum),Python诞生于1989年,用于作为ABC语言的继承。
Python崇尚优美、清晰和简单,是一个优秀并且广泛使用的语言。
2016年时,Python排名程序语言第5名。

目前Python的主要应用领域:
1、云计算:典型的如OpenStack
2、科学运算、人工智能:典型如NumPy等
3、Web开发:如Django
4、系统运维
5、金融
6、图形GUI

编程语言主要由以下几种分类方法:
1、编译型和解释型
2、静态语言和动态语言
3、强类型定义语言和弱类型定义语言

编译型:
和汇编语言是一样的,也是一个负责翻译的程序来对我们的源码进行转换,生成相应的可执行代码,这个过程称为编译(compile),负责编译的程序称为编译器(compiler)。如果我们写的程序代码都包含在一个源文件中,那么编译之后就会直接生成一个可执行的文件,我们就可以直接运行了。但是对于一个比较复杂的项目,为了方便管理,我们通常把代码分散在各个源文件中,作为不同的模块来组织。这时编译各个文件时,就会生成目标文件(object files),而不是前面所说的可执行文件。一般一个源文件的编译都会对应一个目标文件。这些目标文件里的内容基本上是可执行代码了,但对于整个项目来说,只是一部分,所以还不能直接运行。只有等待所有的源文件都编译完成,我们就可以把这些半成品的目标文件打包成一个可执行文件,这个工作由另一个程序完成,这个过程是把包含可执行代码的目标文件连接装配起来,所以又称为链接(link),负责这个步骤的程序叫做链接程序(linker)。链接程序除了目标文件之外,可能还有各种资源,如图形文件、声音文件等,还负责去除目标文件之间的冗余重复代码等,所以也很累。链接完成之后,一般就可以得到我们想要的可执行文件了。

解释型:
编译型程序,是一次把所有的代码转换成机器语言,然后写成可执行文件;而解释型程序,是每执行到源程序的某一条指令,则会有一个称之为解释程序的外壳程序将源代码转换成二进制代码以供执行,总而言之,就是不断的解释、执行、解释、执行,所以,解释型代码是离不开解释程序的。解释型程序中,由于程序总是以源代码的形式出现,因此只要有相应的解释器,移植几乎不成问题。编译型程序也可以移植,但是针对不同系统,必须分别重新编译,对于复杂工程来说,非常耗费时间。但解释型程序因为一边解释,一边执行,因此速度比编译型程序要慢上好多,几百倍也不足为奇。

总结:
编译型由于速度快,因此对系统要求较低,开发操作系统、数据库和大型应用等都使用它,比如C/C++、Pascal/Delphi、VB等都是编译语言。而一些网页脚本、服务器脚本和辅助开发接口等对速度要求不高,对不同系统平台兼容性有要求的一般使用解释型语言,如Java、JavaScript、VBScript、Perl、Python等。
打个比方,有一本英文书你想看,但是你又不懂英语,于是乎请来一位资深翻译。这位资深翻译可以从头到底给你一口气全部翻译完,然后把中文版的书交给你阅读,这种就是编译型的方式来处理。而这位资深翻译可以翻译一个章节后,你可以阅读翻译完的这个章节,之后这位资深翻译继续翻译下面的章节,翻译完毕后,你才能再读接下去的章节,但是当你想回看之前的章节,那么必须由这名翻译再次翻译一下这个你想再次看的章节,等待翻译完毕后,你才能再次阅读这个章节,这种就是解释型的方式来处理。

动态类型语言:
动态类型语言是指在运行期间采取做数据类型检查的语言。也就是说,在用动态类型的语言编程时,永远也不用给任何变量指定数据类型,该语言会在你第一次赋值给变量时,在内部将数据类型记录下来。Python和Ruby就是一种典型的动态类型语言,其它的各种脚本语言如VBScript也多少属于动态类型语言。

静态类型语言:
静态类型语言刚好和动态类型语言相反,它的数据类型是在编译期间去检查的,也就是说在写程序时,是需要声明变量的数据类型的,如C/C++就是典型的例子,其它的还有C#、Java等。

强类型定义语言:
是指强制数据类型定义的语言。也就是说,一旦一个变量被指定了某个数据类型,如果不经过强制转换,那么它就是永远这个数据类型了。比如说,如果定义了整型变量a,那么程序就不会把a当做字符串类型处理了。强类型定义语言时类型安全的语言。

弱类型定义语言:
数据类型可以被忽略的语言。一个变量可以被赋予不同数据类型的值。

总结:
强类型语言运行速度慢于弱类型语言,但是强类型定义语言更安全,Python是强类型定义语言。另外,一门语言是不是动态语言和是不是强类型定义语言没有任何关系。

由此得出结论,Python是一门解释型的动态强类型定义语言。

那么Python的优缺点有哪些?
优点:
1、优雅、明确、简单,容易入门
2、开发效率很高,有强大的第三方库
3、高级语言,无需考虑内存调用等底层细节
4、可移植性
5、可扩展性,如果希望关键代码不公开,这部分可以用C或C++来写,然后在Python中使用
6、可嵌入性,可以把Python嵌入C/C++程序,向用户提供脚本功能
缺点:
1、速度慢,Python比C和Java都要慢
2、代码不能加密
3、线程不能利用多CPU

Python解释器:
当我们编写Python代码时,我们得到的是一个包含Python代码的以.py为扩展名的文本文件。要运行代码,就需要Python解释器去执行.py文件。
由于整个Python语言从规范到解释器都是开源的。所以理论上,只要水平够高,任何人都可以编写Python解释器来执行Python代码(当然难度很大)。事实上,确实存在多种Python解释器。
CPython:
存在于Python官方网站,C语言开发的,使用最广。Linux默认安装也是这个。
IPython:
基于CPython之上的交互式解释器。IPython只是在交互方式上有所增强,但是执行代码功能和CPython其实一样。好比很多浏览器外观不同,其实质都是内核调用IE。
PyPy:
执行速度快一些,采用JIT技术,对Python代码动态编译(注意不是解释),所以可以显著提高Python代码执行速度。绝大部分Python代码都可以在PyPy下运行,但是PyPy和CPython有些不同,这就导致相同Python代码在两种解释器下输出结果有些不同。
Jython:
运行在Java平台上的Python解释器,可以直接把Python代码编译成Java字节码的执行。
IronPython:
运行在微软.net平台上的Python解释器,可以直接把Python代码编译成.Net的字节码。

Twisted目前还不支持[email protected],该模块正在改。

用PyCharm来开发Python代码,效果很好,开发效率高。

Python的第一个程序Hello World:
print("Hello World!")
输出:
Hello World
若是在Linux下执行:
vim hello_world.py
#!/usr/bin/env python -> 最好的写法
print("Hello World!")
chmod +x hello_world.py
./hello_world.py

关于变量:
变量是用来存数据的,为了后面的调用。
name = "Alex Hou"
注意,=两边有空格。

示例:
name = "Alex Hou"
print("My name is ",name)
输出:
My name is Alex Hou

示例:
name = "Alex Hou"
name2 = name
name = "new string"
print(name,name2)
输出:
new string Alex Hou
说明:
上述示例的原理是这样的,name这个变量首先被赋值"Alex Hou",接着name2这个变量也被赋值"Alex Hou",这些赋值的行为是在内存中开辟新的空间,然后变量通过指针指向这些内存地址,因此也就表示该变量中存着这些值,之后name变量又被赋予新的值"new string",此时name变量的指针指向新的内存地址,原来的指针失效了,因此name变量此时有了新的值,而name2是不受影响的。

变量定义的规则:
1、变量名只能是字母、数字或者下划线的任意组合
2、变量名的第一个字符不能是数字
3、以下关键字不能声明为变量名
[‘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‘]
4、变量取名要有意义,容易读懂
5、不写拼音和中文
6、巧用下划线,gf_of_alex
7、巧用驼峰写法,GFOfAlex
8、在Python中表示常量,一般写全大写,如PIE = 3.14

关于字符编码:
Python解释器在加载.py文件中的代码时,会对内容进行编码(默认Ascii)
Ascii(American Standard Code for Information Interchange,美国标准信息交换代码)是基于拉丁字母的一套电脑编码系统,主要用于显示现代英语和其它西欧语言,其最多只能用8位来表示(1个字节),所以Ascii码最多只能表示255个符号。

Unicode(统一码、万国码、单一码)是一种在计算机上使用的字符编码。Unicode是为了解决传统的字符编码方案的局限而产生的,它为每种语言中的每个字符设定了统一并且唯一的二进制码,规定所有的字符和符号最少由16位来表示(2个字节),2**16=65536
UTF-8,是对Unicode编码的压缩和优化,它不再使用最少使用2个字节,而是将所有的字符和符号进行分类:Ascii码中的内容用1个字节保存、欧洲的字符用2个字节保存、东亚的字符用3个字节保存。

注释:
单行注释:# 被注释内容
多行注释:‘‘‘ 被注释内容 ‘‘‘,或者""" 被注释内容 """
在Python中,单引号和双引号基本上是一样的,除了以下的情况:
msg = "I‘m Alex."

关于在Python3.x中的用户输入:
使用input函数:
name = input("what is your name?")
print("Hello " + name)
输入密码时,如果想要不可见,需要利用getpass模块中的getpass方法,即:
import getpass
pwd = getpass.getpass("请输入密码: ")
print(pwd)
注意,getpass模块在PyCharm中不好用,只能在cmd中使用。

打印一个变量的数据类型:
print(type(age))
查看变量age的数据类型。

Python中的占位符,顾名思义就是插在输出里站位的符号。我们可以把它理解成我们预定饭店。当我们告诉饭店的时候,饭店的系统里会有我们的预定位置。虽然我们现在没有去但是后来的顾客就排在我们后面。
常用的占位符有三个:
1、%s,字符型占位符。在Python中,input()函数用户输入默认是字符型的,因此默认%s占位符,其余占位符不可用,如果需要使用,需要强制转换,如:
age = int(input("age:"))
由于使用了int()函数,此时的age变量类型是整数型,原来默认是字符型。
如果想转字符型,可以使用str()函数。
raw_input()是在Python 2.x中使用的,和Python 3.x中的input()是一样的。
在Python 2.x中也有input()函数,它接收到什么数据类型,就是什么数据类型,用起来有些复杂,不建议使用。
2、%d,整数型占位符。
3、%f,浮点数型占位符。

Python中的format函数,也可以起到格式化的作用:
format函数常与print()函数结合使用,具备很强的格式化输出能力。
通过变量,逗号隔开:
print(‘{我}今天{action}‘.format(我=‘拦路雨‘,action =‘在写博客‘))
通过位置:
print(‘{1}今天{0}‘.format(‘拦路雨‘,‘写博客‘))

关于Python中的if函数:
举例:
_username = "alex"
_password = "abc123"
username = input("username:")
password = getpass.getpass("password")
if _username == username and _password == password:
print("Welcome user {name} login...".format(name=username))
else:
print("Invalid username or password!")
注意,自动缩进。
缩进的目的可以省去结束符,并且结构优雅,缩进还表示逻辑和级别结构。
顶级代码必须顶格写。

==,表示等于。
=,表示赋值。

举例:
age_of_oldboy = 56
guess_age = int(input("guess age:"))
if guess_age == age_of_oldboy:
print("Yes, you got it.")
elif guess_age >age_of_oldboy:
print("think smaller...")
else:
print("thnik bigger!")

关于Python中的循环,使用while语句:
count = 0
while True: -> 无限循环
print("count:",count)
count = count + 1 # count +=1

举例:
age_of_oldboy = 56
guess_age = int(input("guess age:"))
count = 0
while count < 3:
if guess_age == age_of_oldboy:
print("Yes, you got it.")
break
elif guess_age >age_of_oldboy:
print("think smaller...")
else:
print("thnik bigger!")
count +=1
else:
print("You have tried too many times.")

关于Python中的循环,使用for语句:
for i in range(10):
print("loop ",i)
注意,这里是0到9的打印。

举例:
age_of_oldboy = 56
guess_age = int(input("guess age:"))
for i in range(3):
if guess_age == age_of_oldboy:
print("Yes, you got it.")
break
elif guess_age >age_of_oldboy:
print("think smaller...")
else:
print("thnik bigger!")
count +=1
else:
print("You have tried too many times.")

举例:
for i in range(0,10,2)
这里指,从0打印到10,间隔为2,打印0,2,4,6,8

举例:
age_of_oldboy = 56
guess_age = int(input("guess age:"))
for i in range(3):
if guess_age == age_of_oldboy:
print("Yes, you got it.")
break
elif guess_age >age_of_oldboy:
print("think smaller...")
else:
print("thnik bigger!")
count +=1
if count == 3:
countine_confirm = input("do you want to keep guessing?")
if continue_confirm != ‘n‘:
count = 0

break是跳出循环,并且结束整个循环不再继续。
continue是跳出本次循环,进行下一次循环。

原文地址:http://blog.51cto.com/houjun19830610/2312375

时间: 2024-08-30 10:43:09

Python入门基础(一)的相关文章

Python入门基础学习 三

Python入门基础学习 三 数据类型 Python区分整型和浮点型依靠的是小数点,有小数点就是浮点型. e记法:e就是10的意思,是一种科学的计数法,15000=1.5e4 布尔类型是一种特殊的整形,true就相当于1,false相当于0,可以用来计算 类型转换 转换:整数:int();字符串:str();浮点数:float() 转换例子:(图9) 如果用内置函数当变量名,比如str=123,一旦被赋值,再使用这个函数会被报错. type()函数可以明确告诉我们变量类型. isinstance

Python学习路线引导-Python入门基础

一.学习目标和建议学习周期 1.学习目标:完成Python入门基础,为数据分析事或者软件测试工程师知识体系中Python编程的入门知识. 2.学习阶段:2020.1.13-2020.2.23六周,建议每周学习时长15小时,整个学习时长90小时. 二.推荐教程 廖雪峰教程:https://www.liaoxuefeng.com/wiki/1016959663602400 学习笔记:<Python入门学习笔记-精灵>-部分示例代码源自廖雪峰教程,可参照其教程,理解其知识点,在数据分析与软件测试创新

学python入门基础教程[推荐]

python入门经典必备推荐基础教程 绝对是python初学者入门必备,比learning python写的好100倍, 远超python基础教程n个数量级 下载地址 http://pan.baidu.com/s/1jGwzpeY 更多python学习资料 http://dou.bz/35ODPo

Python入门基础知识实例,值得收藏!

7月的编程语言指数榜已经发布,Python 在今年5月首次超越 Java 拿下榜首位置后,仍保持上涨趋势,正逐渐与 Java 拉开差距.(图为与去年 7 月数据对比) 上周为大家简单介绍了如何安装Python和配置环境?相信大家都将Python安装成功了吧~今天小白就为大家分享一些Python的基础知识,希望大家都能快速入门Python~ 1.在Python 语言中,对象是通过引用传递的. 在赋值时,不管这个对象是新创建的,还是一个已经存在的,都是将该对象的引用(并不是值)赋值给变量. 如:x=

Python入门基础01

计算机基础扫盲 1.什么是编程语言?什么是语言?为何要用编程语言? 编程语言的本质就是一门语言,Python就是一门编程语言 语言就是一种事物与另外一种事物沟通的表达方式/工具 编程就是人把自己的思维逻辑,用编程语言表达出来 编程的目的就是让计算机按照人类的思维逻辑去工作,从而解放人力 2.计算机的世界里有几种角色? 人--------------编程语言-------------计算机 3.计算机五大组成部分 4.软件的运行与三大核心硬件的关系 程序最先是存放于硬盘中的 程序的运行一定是先把程

Python 入门基础学习

Python入门学习 我们使用python3.0版本 首选来入门  带你进入Hello World >>> print ("Hello World")Hello World 好了 我们会python了  呵呵了 我们来实现个简单的列子吧  文字游戏 print('------------我爱九月天---------------') temp = input("不妨猜一下九月天在你心里你会想的是哪个数字:") guess = int(temp) if

python 入门基础知识点总结

最近在群里,同学们对于python基础课程到底要学什么,一直不能很好的确定,那么我在这里针对python基础知识的几个阶段,做一个总结,新手朋友们,可以根据这个来进行学习,那么由于我是做web开发的,所以会从web的角度去涉及. 第一阶段知识---基础语法 (1) python的数据结构的认识: python所有数据结构的认识 字符串的使用以及字符串的相关方法 列表的使用以及列表的相关方法 字典的使用以及字典的相关方法 元组的使用以及远足的相关方法 (2)逻辑判断的使用 if else if e

python入门基础教程02 Python简介

02 Python简介 Python简介 Python是一种解释型.面向对象.动态数据类型的高级程序设计语言,属于应用层软件.自从20 世纪90 年代初Python语言诞生至今,它逐渐被广泛应用于处理系统管理任务.自动化运维.图像处理游戏和Web 网站开发等领域.Python已经成为最受欢迎的程序设计语言之一.4.易读以及可扩展性,在国外用Python做科学计算的研究机构日益增多,一些知名大学已经采用Python教授程序设计课程.例如麻省理工学院的计算机科学及编程导论课程就使用Python语言讲

python入门基础教程05 Python工具常见错误

Python-Shell反馈常见错误 初学者通常会使用Python-Shell来学习Python基础及语法知识,在使用Python-Shell 时会遇到这样或者那样的错误,有的是语法错误,有的是键入的函数或者变量名字拼写错误,现就初学者常出现的错误做一个总结. 变量.函数未定义 下面我们简单总结一下在使用Python-Shell时常见的错误提示. >>>len = 12>>>le Traceback (most recent call last):   File &qu

python入门基础笔记--1

以前在学校的时候,其实学过python,自己感觉这是一门很优雅的语言.现在觉得有必要把基础整理出来,学习的教程是廖雪峰的python2.7 http://www.liaoxuefeng.com/wiki/001374738125095c955c1e6d8bb493182103fac9270762a000/001374738150500472fd5785c194ebea336061163a8a974000 1)pythond 的安装: 现在python的安装十分简单.在windows上只要下载ex