Python 全栈开发一 python初识
1.Python简介
python的创始人为吉多·范罗苏姆(Guido van Rossum)。1989年的圣诞节期间,吉多·范罗苏姆为了在阿姆斯特丹打发时间,决心开发一个新的脚本解释程序,作为ABC语言的一种继承。Python崇尚优美、清晰、简单,是一个优秀并广泛使用的语言。
Python是一样什么类型的语言
Python是一种强类型定义的解释型的动态语言。
强类型与弱类型语言的区别:
强类型定义语言
一种总是强制类型定义的语言。Java和Python是强制类型定义的。如果你有一个整数,如果不显示地进行转换,你不能将其视为一个字符串。如果你定义了一个整型变量a,那么程序根本不可能将a当作字符串类型处理。强类型定义语言是类型安全的语言。
弱类型定义语言
数据类型可以被忽略的语言。它与强类型定义语言相反, 一个变量可以赋不同数据类型的值。常见有vb,php。
静态类型与动态类型的区别:
静态类型定义语言
一种在编译时,数据类型是固定的语言。大多数静态类型定义语言强制这一点,它要求你在使用所有变量之前要声明它们的数据类型。Java和C是静态类型定义语言。
动态类型定义语言
一种在执行期间才去发现数据类型的语言,与静态类型定义相反。VBScript和Python是动态类型定义的,因为它们是在第一次给一个变量赋值的时候找出它的类型的。
解释型与编译型语言的区别:
解释型语言
解释型是在运行的时候将程序翻译成机器语言,所以运行速度相对于编译型语言要慢。例如Python,C#,java
编译型语言
编译型语言在程序执行之前,有一个单独的编译过程,将程序翻译成机器语言,以后执行这个程序的时候,就不用再进行翻译了。例如C/C++
python语言的优缺点:
优点:
- Python的定位是“优雅”、“明确”、“简单”,所以Python程序看上去总是简单易懂,初学者学Python,不但入门容易,而且将来深入下去,可以编写那些非常非常复杂的程序。
- 开发效率非常高,Python有非常强大的第三方库,基本上你想通过计算机实现任何功能,Python官方库里都有相应的模块进行支持,直接下载调用后,在基础库的基础上再进行开发,大大降低开发周期,避免重复造轮子。
- 高级语言————当你用Python语言编写程序的时候,你无需考虑诸如如何管理你的程序使用的内存一类的底层细节
- 可移植性————由于它的开源本质,Python已经被移植在许多平台上(经过改动使它能够工 作在不同平台上)。如果你小心地避免使用依赖于系统的特性,那么你的所有Python程序无需修改就几乎可以在市场上所有的系统平台上运行
- 可扩展性————如果你需要你的一段关键代码运行得更快或者希望某些算法不公开,你可以把你的部分程序用C或C++编写,然后在你的Python程序中使用它们。
- 可嵌入性————你可以把Python嵌入你的C/C++程序,从而向你的程序用户提供脚本功能。
缺点:
- 速度慢,Python 的运行速度相比C语言确实慢很多,跟JAVA相比也要慢一些,因此这也是很多所谓的大牛不屑于使用Python的主要原因,但其实这里所指的运行速度慢在大多数情况下用户是无法直接感知到的,必须借助测试工具才能体现出来,比如你用C运一个程序花了0.01s,用Python是0.1s,这样C语言直接比Python快了10倍,算是非常夸张了,但是你是无法直接通过肉眼感知的,因为一个正常人所能感知的时间最小单位是0.15-0.4s左右,哈哈。其实在大多数情况下Python已经完全可以满足你对程序速度的要求,除非你要写对速度要求极高的搜索引擎等,这种情况下,当然还是建议你用C去实现的。
- 代码不能加密,因为PYTHON是解释性语言,它的源码都是以名文形式存放的,不过我不认为这算是一个缺点,如果你的项目要求源代码必须是加密的,那你一开始就不应该用Python来去实现。
- 线程不能利用多CPU问题,这是Python被人诟病最多的一个缺点,GIL即全局解释器锁(Global Interpreter Lock),是计算机程序设计语言解释器用于同步线程的工具,使得任何时刻仅有一个线程在执行,Python的线程是操作系统的原生线程。在Linux上为pthread,在Windows上为Win thread,完全由操作系统调度线程的执行。一个python解释器进程内有一条主线程,以及多条用户程序的执行线程。即使在多核CPU平台上,由于GIL的存在,所以禁止多线程的并行执行。
2.Hello World 程序
因为python2与python3在用户输入上有所区别,但考虑到接下来python3迅速普及,python上一些鸡肋的操作被取消,所以接下来的代码都以python3为准。
hello world程序
print('Hello World!') #直接输出在屏幕上,Linux上有自带的python
#创建文件执行即可,Windows上可以用下在的shell下执行
用户输入:
a = input('请输入内容:') #该程序执行后会提示用户输入
用户输入的内容会别赋值给变量a。注意用户输入的内容会被定义为字符串,即使输入的是数字,也会被定义为字符串,想要得到对应的数值类型,必须用对应的方法进行转换。
b = int(input('请输入一个数字:')) #输入的数值为字符串,但会经过int转换为整型。
3.变量的定义规则
- 只能是由字母,数字,和下划线组成。
- 必须是由字母或下划线开头。
- 不能是关键字。
- 最好每个变量为英文单词,有一定的意义,方便阅读代码。
- 若想要定义一个不被人修改的变量,可以全部由大写字母组成。
name = 'wallace' #即姓名为wallace
4.常用的数值类型
常见的数值类型有整形(int),浮点型(float),布尔型(bool),复数型(complex),定义这些类型很容易,因为是强类型定义的语言,所以会直接识别是什么类型。例如:
a = 1 #int类型
b = 1.2 #float类型
c = True #bool 类型
d = 1+2j #complex类型
5.常见数据类型(列表,元组)
下面将会介绍两种常见的数据类型列表和元组,这里会通过实例来介绍这两数据类型。
列表(list):
li = [1,2,'a','list'] #列表内的元素用逗号隔开,列表内元素可以为大多数数据类型 li1 = [1,3,[3,4],'wallace'] #列表本身也可以作为元素
索引和切片:
li = [1,2,4,'a'] #定义一列表
>>li[1] #索引的起始为li[0]
2
>>li[-1] #可以从末尾开始索引
'a'
>>li[0:2] #切片原则为左闭右开,即取左不取右
1,2
>>li[2:] #若想去最后面的数据,可什么数据都不写
4,'a'
>>li[-2:-1] #也可以有负数切片
4,'a'
list增加元素:
>>li = [1,3,4]
>>li.append('a') #在末尾添加元素
>>li
[1,3,4,'a']
>>li.insert(2,'b') #在指定位置添加一个元素
>>li
[1,3,'b',4,'a']
>>li.extend([2,'c']) #添加多个元素,即扩展列表
>>li
[1,3,'b',4,'a',2,'c']
list搜索:
>>li = [1,3,'b',4,'a',2,'c']
>>li.index('b') #返回对应元素的索引位置,若不存在则会报错
2
list删除:
>>li = [1,3,'b',4,'a',2,'c',3]
>>li.remove(3) #移除首次出现的对应的值
>>li
[1,'b',4,'a',2,'c',3]
>>li.pop() #弹出列表最末尾的值
3
>>li
[1,'b',4,'a',2,'c']
元组(tuple):
tu = (1,2,3,[2,3]) #元组就是将列表的中括号改为小括号
tu2 = 'a','b' #这种方式定义的也是一个元组
tu = 1, #注意必须有一个逗号才能表示一个元组
可能大家会有疑问,为什么有列表还定义一个元组,这不是多余吗,当然不是:列表是有序的集合,可以随时添加和删除其中的元素。元组是不可变的,即一旦定义好后不可对其添加,修改以及删除。
Python 全栈开发一 python初识的更多相关文章
- python 全栈开发:python基础
python具有优美.清晰.简单,是一个优秀并广泛使用的语言.诞生于1991年2.python历史 1989年,为了打发圣诞节假期,Guido开始写Python语言的编译器.Python这个名字,来自 ...
- python 全栈开发,Day17(初识面向对象)
一.引子 第一次参加工作,进入了一家游戏公司,公司需要开发一款游戏<人狗大战>一款游戏,首先得把角色和属性定下来. 角色有2个,分别是人和狗属性如下:人 :昵称.性别.血.攻击力狗 :名字 ...
- python全栈开发day21面向对象初识总结
- Python 全栈开发四 python基础 函数
一.函数的基本语法和特性 函数的定义 函数一词来源于数学,但编程中的「函数」概念,与数学中的函数是有很大不同的.函数是指将一组语句的集合通过一个名字(函数名)封装起来,要想执行这个函数,只需调用其函数 ...
- Python 全栈开发二 python基础 字符串 字典 集合
一.字符串 1,在python中,字符串是最为常见的数据类型,一般情况下用引号来创建字符串. >>ch = "wallace" >>ch1 = 'walla ...
- Python 全栈开发三 python基础 条件与循环
一. 条件语句 python条件语句是根据一条或多条语句的执行结果的真假(True Or False)来决定代码块的执行. 而执行内容可以多行,以缩进来区分表示同一范围. 1.Python判断条件真假 ...
- python 全栈开发,Day99(作业讲解,DRF版本,DRF分页,DRF序列化进阶)
昨日内容回顾 1. 为什么要做前后端分离? - 前后端交给不同的人来编写,职责划分明确. - API (IOS,安卓,PC,微信小程序...) - vue.js等框架编写前端时,会比之前写jQuery ...
- python全栈开发从入门到放弃之迭代器生成器
1.python中的for循环 l = [1,2,3,4,5,6] for i in l: #根据索引取值 print(i) 输出结果: 1 2 3 4 5 6 2.iterable 可迭代的 可迭 ...
- Python全栈开发【面向对象进阶】
Python全栈开发[面向对象进阶] 本节内容: isinstance(obj,cls)和issubclass(sub,super) 反射 __setattr__,__delattr__,__geta ...
随机推荐
- linux命令学习(4):cd命令
Linux cd 命令可以说是Linux中最基本的命令语句,其他的命令语句要进行操作,都是建立在使用 cd 命令上的.所以,学习Linux 常用命令,首先就要学好 cd 命令的使用方法技巧. 1. 命 ...
- API(二)之Requests and Responses
这一部分可以让返回的api信息以两种格式呈现:.json和.api REST框架的核心部分.我们来介绍几个基本的组成部分. Request objects REST框架引入了Request对象来扩展常 ...
- ado.net EF学习系列----深入理解查询延迟加载技术(转载)
ado.net EF是微软的一个ORM框架,使用过EF的同学都知道EF有一个延迟加载的技术. 如果你是一个老鸟,你可能了解一些,如果下面的学习过程中哪些方面讲解的不对,欢迎批评指教.如果一个菜鸟,那我 ...
- MapReduce 找出共同好友
这个前提需要注意:好友之间的关系是单向的,我的好友队列里有你,你的里面不一定有我.所以思考方式需要改变. 共同好友: 某两个人的好友队列里都有的人. 第一个mapper 和 reducer 简单说:找 ...
- MySql数据库笔试题总结
数据库面试题94577265 1,设有关系EMP(ENO,ENAME,SALARY,DNO),其中各属性的含义依次为职工号.姓名.工资和所在部门号,以及关系DEPT(DNO,DNAME,MANAGER ...
- MySQL获取分组后的TOP 1和TOP N记录-转
有时会碰到一些需求,查询分组后的最大值,最小值所在的整行记录或者分组后的top n行的记录,在一些别的数据库可能有窗口函数可以方面的查出来,但是MySQL没有这些函数,没有直接的方法可以查出来,可通过 ...
- utf-8 utf8
mysql> DROP TABLE IF EXISTS student; Query OK, 0 rows affected (0.00 sec) mysql> create table ...
- 读书笔记iOS-Core-Animation-Advanced-Techniques,iOS性能调试工具
调试卡顿,除了使用timer profile,还可以使用 OpenGL ES驱动工具 OpenGL ES Driver工具显示的GPU利用率,打开Color Blended Layers 我们给图片和 ...
- ELKstack5.6.5
ELKstack 安装: 一:环境准备: 1.给添加块磁盘50G,相当于模拟raid 2.分别给它们做本机的主机解析 [root@node01 ~ ]#cat /etc/hosts 127.0.0. ...
- Apache SSL 服务搭建
Web服务器在默认情况下使用HTTP,这是一个纯文本的协议.正如其名称所暗示的,纯文本协议不会对传输中的数据进行任何形式的加密.而基于HTTP的Web服务器是非常容易配置,它在安全方面有重大缺陷.任何 ...