python学习:基础知识

一、编译器和解释器的区别

编译器:编译器是把源程序的每一句代码编译成机器语言,并保存在一个二进制的文件中。当计算机在运行这个程序时就可以直接用这个机器语言运行,速度快。

解释器:解释器是在运行程序的时候,才逐行将源程序解释成机器语言来运行。由于解释器是将源程序解释一行执行一行,所以运行速度比编译器要慢。

编译型优点和缺点:

优点:编译器一般会有一个预编译的过程对代码进行优化,只要编译通过后在运行时就不再需要编译,所以执行效率搞。可以脱离语言环境独立运行。

缺点:编译之后如果发现代码有问题需要修改,修改后则需要重新编译。编译的时候根据运行环境生成对应的机器码。不同的操作系统生成的机器码是不同的,比如在windows上编译后的代码移植到linux上是不能直接运行的,需要重新在linux上编译后才能运行。

解释型优点和缺点:

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

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

动态语言和静态语言:

动态语言:动态类型语言是指在程序运行期间才去做数据类型检查的语言。也就是说,在使用动态型的语言进行编程的过程中,是不会给任何变量指定数据类型的,动态类型语言会在第一次给变量赋值时,在内部将该变量的类型记录下来,也就是说,第一次你给该变量赋的是什么类型的值,这个变量就默认被定义成了对应的数据类型。python就是动态类型语言。

静态语言:静态类型语言和动态类型语言恰恰相反。静态类型语言在编程的过程中,就必须显式的给变量定义数据类型,它的所有变量的数据类型的合法性是在程序编译时进行检查。c语言和c++等就是典型的静态语言。

强类型语言和弱类型语言:

强类型语言:就是强制数据类型定义的语言,这种语言一旦为某个变量指定了数据类型,如果不进行强制转换就不能再改变这个变量的数据类型了。例如,变量a被定义成了int类型,在编程的过程中就不能将一个字符串赋值给它。所以强类型定义语言是类型安全的语言。

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

Python是动态强类型语言。VBScript是动态弱类型语言。JAVA是今天强类型语言。

Python是一门动态解释型的强类型定义语言。

二、python的优缺点

优点:

1、Python的定位是:优雅、明确、简单。所以Python程序看上去简单易懂,初学者容易入门。

2、开发效率高,Python有非常强大的第三方库,基本上你要实现的功能都可以通过引入Python库中的模块来解决,大大降低开发周期。

3、高级语言,不用考虑内存回收等细节。

4、可移植性,由于它的开源的本质,Python已经被移植到多个平台上运行上(但是还是需要稍作修改)。如果你在编程的过程中就避免使用某些依赖具体操作系统的一些特性,那么你的Python程序几乎不做任何修改就可以在不同的上运行。

5、可扩展性,如果你在开发的过程中,某一个算法或者某一个核心功能不希望公开,你可以采用c或者c++来编写,然后在Python中使用即可。

6、可嵌入性,Python可以嵌入c或者c++程序,从而向你的程序用户提供脚本功能。

缺点:

1、速度慢,Python的运行速度比c语言或者java都要慢,但是这种“慢”用肉眼是无法感知的。如果你要编写例如搜索引擎这种对速度要求很高的程序,你完全可以采用c或者其他语言编写。

2、代码是明文,因为Python是解释型的语言,运行的直接是源程序。如果你要编写保密性很高的程序,要求源码是加密的,你从一开始就不能选择Python语言来开发。

3、线程不能利用多CPU,这个主要是因为GIL的全局解释器锁造成的,它禁止多线程的并行执行。

三、python的几个解释器

1、CPython,C语言编写,官网推荐。常用的编译器。

2、IPython,基于CPython编写,交互性有所增强,不常用。

3、PyPy,执行速度快,对Python代码进行动态编译(不是解释),可以显著提高代码的运行速度。绝大部分Python程序都可以在PyPy下运行,但是也有可能会出现两种不同的结果,需要充分了解CPython和PyPy两者的不同。

4、Jython,运行在JAVA平台上的Python解释器。直接把Python代码编译成java字节码。

5、IronPython,运行在微软.NET平台上的解释器。

四、python2和python3的区别

1、如果有中文,在使用Python2时必须使用在程序最开始加上:  # -*- coding: utf-8 -*- ,python3不需要。

2、print函数,在python2中:print ‘hello world’,在python3中:print(‘hello world‘) 。

五、变量

1、变量的命名规范:

1.1、必须是字母、数字或下划线的任意组合。

1.2、第一个字符不能是数字,也就是说变量的第一个字符必须是字母或者下划线。

1.3、变量名不能是Python的关键字。

‘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‘

1.4、变量有两种定义的方式:

驼峰体:NumberOfStudents = 100

下划线:number_of_students = 100

1.5、变量名禁止中文,虽然在Python用中文做为变量名并不报错。

六、常量

Python没有专门的语法代表常量,即程序中不会改变的。通常约定俗成使用变量名全部大写代表一个常量。、

NUMBER_OF_STUDENTS = 100

七、字符编码

ASCII:表示英文及西欧语言,占用1个字节(8位)

GB2312:国家简体中文字符集,兼容ASCII,占用2个字节(16位)

Unicode:国籍标准组织统一标准字符集。一版占用2个字节(16位),复杂的文字占用4位(32位)

GBK:GB2312的扩展字符集,支持繁体字,兼容GB2312,占用2个字节(16位)

UTF-8:ASCII占用1个字节(8位),西欧字符占2个字节(16位),中文占用3个字节(24位)

八、程序交互input

1 #!/usr/bin/env python
2 # -*- coding: utf-8 -*-
3 name = input("What is your name?")
4 age = input("How old are you?")
5 hometown = input("Where is your hometown?")
6
7 print("Hello ",name , "your are ", age , "years old, you came from",hometown)

程序的第一行是指定要用哪个解释器来执行程序。第二行告诉解释器用什么编码来执行源码,python3中不需要指定编码。

九、格式化输出

1、使用占位符:字符用%s,整数用%d,浮点数用%s

name = input(‘name :‘)
age = input(‘age :‘)
job = input(‘job :‘)
salary = input(‘salary :‘)

info=‘‘‘
--------Info Of %s--------
Name   : %s
Age    : %s
Job    : %s
Salary : %s
--------------------------‘‘‘%(name, name, age, job, salary)
print(info)

这里的疑问:既然多行注释用的也是三个单引号,为何这里使用了三个单引号括起来的内容被当初了变量的值???

2、使用format

 1 name = input(‘name :‘)
 2 age = input(‘age :‘)
 3 job = input(‘job :‘)
 4 salary = input(‘salary :‘)
 5
 6 info=‘‘‘
 7 --------Info Of {_name}--------
 8 Name   : {_name}
 9 Age    : {_age}
10 Job    : {_job}
11 Salary : {_salary}
12 --------------------------‘‘‘.format(_salary=salary, _age=age, _job=job, _name=name)
13 print(info)
14
15 info=‘‘‘
16 --------Info Of {0}--------
17 Name   : {0}
18 Age    : {1}
19 Job    : {2}
20 Salary : {3}
21 --------------------------‘‘‘.format(name, age, job, salary)
22 print(info)

十、流程控制if...else...

单分支:

if 条件:
    满足条件后要执行的代码

双分支:

if 条件:
    满足条件执行代码
else:
    if条件不满足就走这段

多分支:

if 条件:
    满足条件执行代码
elif 条件:
    上面的条件不满足就走这个
elif 条件:
    上面的条件不满足就走这个
elif 条件:
    上面的条件不满足就走这个
else:
    上面所有的条件不满足就走这段

例题:把成绩分成ABCDE五个等级,等级与分数的对应关系如下:

A : 90-1000

B :80-89

C :60-79

D :40-59

E :0-39

 1 while True:
 2     score = input(‘请输入你的分数:‘)
 3     if score.lower() == ‘q‘:
 4         break
 5
 6     if score.isdigit():
 7         score = int(score)
 8         if score > 100:
 9             print(‘你咋不上天呢?‘)
10         elif score >= 90:
11             print(‘A‘)
12         elif score >= 80:
13             print(‘B‘)
14         elif score >= 60:
15             print(‘C‘)
16         elif score >= 40:
17             print(‘D‘)
18         else:
19             print(‘E‘)
20     else:
21         print(‘你必须要输入一个数字。‘)

十一、循环while和for

注意两个关键字:

continue:跳出本次循环,执行下次循环。即continue后面的代码统统都不执行了,重新回到循环开始的地方接着进行下次循环。

break:结束当前循环或者跳出当前循环。即只要遇到break,就结束这个循环。

 1 for i in range(0,10):
 2     print(‘loop :‘, i)
 3
 4 for i in range(0,10,2):
 5     print(‘loop :‘, i)
 6
 7 for i in range(0,10,3):
 8     print(‘-----------%d‘%i)
 9     for j in range(0,10,2):
10         print(j)
 1 my_age = 28
 2
 3 count = 0
 4 while count < 3:
 5     user_input = int(input("input your guess num:"))
 6
 7     if user_input == my_age:
 8         print("Congratulations, you got it !")
 9         break
10     elif user_input < my_age:
11         print("Oops,think bigger!")
12     else:
13         print("think smaller!")
14     count += 1  # 每次loop 计数器+1
15 else:
16     print("猜这么多次都不对,你个笨蛋.")

十二、注释

单行注释: # 被注释的内容

多行注释: ‘‘‘被注释的内容‘‘‘ 或者 """被注释的内容"""

原文地址:https://www.cnblogs.com/Ryan-Fei/p/12073727.html

时间: 2024-11-05 21:34:44

python学习:基础知识的相关文章

python学习-基础知识-1

1.计算机历史 计算机使用高低电压的两种状态来描述信息.计算机可以理解的只有二进制数据即010100011....,1个比特位可以表示的状态只有2种,n个比特位可以表示的状态有2的n次方种. 所以如果想要描述天气状态:天晴.下雨.刮风.下雪.霜冻,则需要使用3个比特位. 2.编程语言历史 计算机只能理解二进制数据,二进制数据中蕴含了很多指令.操作.数据,计算机通过cpu直接运行二进制代码执行不同的功能,二进制代码被称为机器语言. 但是机器语言(二进制代码)对于人类而言可读性太差.编写太困难,所以

Python学习基础知识概要

1.输入输出 输出实例 1 2 print 'hello','world' hello world 输入实例 1 2 3 4 5 name = raw_input(); print "hello,",name world hello,world 输入时提示实例 1 2 3 4 5 name = raw_input('please enter your name:'); print "hello,",name please enter your name:world

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

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

Python学习基础篇第一篇——快速入门(适合初学者)

一.Python学习基础篇第一篇--(快速入门) 建议从Python2.7开始学习,Python2.7可以支持扩展大量的第三方类库,是目前比较成熟的版本 编写代码的软件推荐将python自带的IDLE和PyCharm集成IDE结合起来使用 1.1 Python命令行 Python命令行将以 >>> 开始,比如 >>>print 'Hello World!' 对于验证简单的命令可以在python自带的IDLE中完成  1.2 在Python自带的IDLE写一段小程序 在所

(八)从零开始学人工智能--统计学习:统计学习基础知识

目录 统计学习基础知识 1. 统计学习种类 1.1 监督学习 1.2 非监督学习 2. 统计学习中的基本概念 2.1 统计学习三要素:模型,策略,算法 2.2 欠拟合和过拟合 2.3 如何避免过拟合 2.4 过拟合产生的原因 2.5 最大似然估计和贝叶斯估计 3. 线性回归 3.1 经典线性回归 3.2 岭回归(ridge regression) 3.3 lasso回归和ElasticNet 4. 线性分类 4.1 感知机 4.2 逻辑回归(logistic regression) 4.3 So

Python爬虫基础知识及前期准备

学习爬虫有一小段时间了,于是决定把自己学爬虫时所学的,写过的代码以及看过的文档记录下来,权当小结.第一次写这些,如果有错误,请多指教. 首先我们需要了解一下什么是爬虫. 根据百度百科上给出的定义," 网络爬虫(又被称为网页蜘蛛,网络机器人,在FOAF社区中间,更经常的称为网页追逐者),是一种按照一定的规则,自动地抓取万维网信息的程序或者脚本."简单来说,爬虫类似手动下载网页信息,比如小说.歌曲.说到这,或许会有疑问,既然这样,干嘛还去敲代码,直接人工处理不好吗?话是这么说,但如果下载的

VII python(1)基础知识

VII Python(1)基础知识 1989年诞生(同LinuxOS),google推崇,06年后才开始在中国流行,08年运维开始使用python www.python.org(主流OS默认配的python为2.6或2.7,最好在Ubuntu12.10上使用python,对于开发很方便,否则会浪费很多时间在装某一软件包) https://www.python.org/ftp/python/ Python(简单.容易上手.语法非常简明,任何功能都可实现:胶水语言,粘合剂,能与任何语言结合起来(如j

Python 面向对象基础知识

面向对象基础知识 1.什么是面向对象编程? - 以前使用函数 - 类 + 对象 2.什么是类什么是对象,又有什么关系? class 类: def 函数1(): pass def 函数2(): pass # obj是对象,实例化的过程 obj = 类() obj.函数1() ========== 面向对象不好 ============ ========== 函数编程好 ============== - 有时候,函数编程能实现?比较麻烦. - 面向对象非常的简单就能实现. 3.什么时候适用面向对象?

教你快速学会 Python 函数基础知识

一.函数基础 简单地说,一个函数就是一组Python语句的组合,它们可以在程序中运行一次或多次运行.Python中的函数在其他语言中也叫做过程或子例程,那么这些被包装起来的语句通过一个函数名称来调用. 有了函数,我们可以在很大程度上减少复制及粘贴代码的次数了(相信很多人在刚开始时都有这样的体验).我们可以把相同的代码可以提炼出来做成一个函数,在需要的地方只需要调用即可.那么,这样就提高了代码的复用率了,整体代码看起来比较简练,没有那么臃肿了. 函数在Python中是最基本的程序结构,用来最大化地

基于Linux的USB子系统学习 --- &lt;基础知识与USB协议概述&gt; ing

一.参考资料 1.<USB基础知识概论>  http://www.crifan.com/files/doc/docbook/usb_basic/release/html/usb_basic.html 2.<USB in a NutShell> http://www.beyondlogic.org/usbnutshell/usb1.shtml 3.<USB开发大全(第四版)> http://download.csdn.net/download/qqqq419276485/