Python入门篇

简介: 1.1 Python介绍 1.1.1 Python简介   Python,是一种广泛使用的高级编程语言,属于通用型编程语言,由吉多·范罗苏姆(中文名字:龟叔)创造,第一版发布于 1991 年。

1.1 Python介绍

1.1.1 Python简介

 

Python,是一种广泛使用的高级编程语言,属于通用型编程语言,由吉多·范罗苏姆(中文名字:龟叔)创造,第一版发布于 1991 年。可以视之为一种改良 (加入一些其他编程语言的优点,如面向对象) LISP

 

作为一种解释型语言,Python 的设计哲学强调代码的可读性和简洁的语法(尤其是使用空格缩进划分代码块,而非使用大括号或者关键词)。

 

数据来源:https://www.tiobe.com/tiobe-index/

由上图可见,Python整体呈上升趋势,反映出Python应用越来越广泛并且也逐渐得到业内的认可。相比于 C++ JavaPython 让开发者能够用更少的代码表达想法。不管是小型还是大型程序,该语言都试图让程序的结构清晰明了。

1.1.2 Python设计哲学与定位

Python的设计哲学是“优雅”、“明确”、“简单”。

Python开发者的哲学是“用一种方法,最好是只有一种方法来做一件事”,也因此它和拥有明显个人风格的其他语言很不一样。在设计Python语言时,如果面临多种选择,Python开发者一般会拒绝花俏的语法,而选择明确没有或者很少有歧义的语法。

这些准则被称为“Python格言”。在Python解释器内运行import this可以获得完整的列表。

>>> import this
The Zen of Python, by Tim Peters
Beautiful is better than ugly.
Explicit is better than implicit.
Simple is better than complex.
Complex is better than complicated.
Flat is better than nested.
Sparse is better than dense.
Readability counts.
Special cases aren't special enough to break the rules.
Although practicality beats purity.
Errors should never pass silently.
Unless explicitly silenced.
In the face of ambiguity, refuse the temptation to guess.
There should be one-- and preferably only one --obvious way to do it.
Although that way may not be obvious at first unless you're Dutch.
Now is better than never.
Although never is often better than *right* now.
If the implementation is hard to explain, it's a bad idea.
If the implementation is easy to explain, it may be a good idea.
Namespaces are one honking great idea -- let's do more of those!

1.1.3 Python应用范围

Web程序:

         Python经常被用于Web开发。比如,通过mod_wsgi模块,Apache可以运行用Python编写的Web程序。使用Python语言编写的Gunicorn作为Web服务器,也能够运行Python语言编写的Web程序。

Python定义了WSGI标准应用接口来协调Http服务器与基于PythonWeb程序之间的沟通。一些Web框架,如DjangoPyramidTurboGearsTornadoweb2pyZopeFlask等,可以让程序员轻松地开发和管理复杂的Web程序。

GUI开发:

         Python本身包含的Tkinter库能够支持简单的GUI开发。但是越来越多的Python程序员选择wxPython或者PyQtGUI包来开发跨平台的桌面软件。使用它们开发的桌面软件运行速度快,与用户的桌面环境相契合。通过PyInstaller还能将程序发布为独立的安装程序包。

其他:

         YouTubeGoogleYahoo!NASA都在内部大量地使用PythonOLPC的作业系统Sugar项目的大多数软件都是使用Python编写。

1.1.4 Python的种类

1CPython

   Python的官方版本,使用C语言实现,使用最为广泛,CPython实现会将源文件(py文件)转换成字节码文件(pyc文件),然后运行在Python虚拟机上。

1 Jython

   PythonJava实现,Jython会将Python代码动态编译成Java字节码,然后在JVM上运行。

3IronPython

  PythonC#实现,IronPythonPython代码编译成C#字节码,然后在CLR上运行(与Jypthon类似)。

4PyPy(特殊)

 Python实现的Python,将Python的字节码字节再编译成机器码。

5RubyPython,Brython ....

注意:本文中都的为Python 3.6.2 版本:https://www.python.org/downloads/release/python-362/

关于Python环境部署可以参考:http://www.runoob.com/python/python-install.html

1.2 Python的语法

Python的设计目标之一是让代码具备高度的可阅读性。它设计时尽量使用其它语言经常使用的标点符号和英文单字,让代码看起来整洁美观。因为Python是动态语言,它不像其他的静态语言如CPascal那样需要书写声明语句。

1.2.1 缩进语法

Python开发者有意让违反了缩进规则的程序不能通过解释,以此来强迫程序员养成良好的编程习惯,也方便所有人查找和阅读。例如:

if age < 21:
    print("你不能买酒。")
    print("不过你能买口香糖。")
print("这句话处于if语句的外面。")

 

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

#!/usr/bin/env python
# -*- coding: utf-8 -*-
if age < 21:
    print("你不能买酒。")
    print("不过你能买口香糖。")
print("这句话处于if语句的外面。")

         注:上述例子为Python 3.0以上版本的代码。

1.2.2 变量说明

变量定义的规则:

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、变量的定义要具有可描述性。

1.2.3 语句和控制流

语句类型

说明

if语句

当条件成立时运行语句块。经常与else, elif(相当于else if)配合使用。

for语句

遍列列表、字符串、字典、集合等迭代器,依次处理迭代器中的每个元素。

while语句

当条件为真时,循环运行语句块。

try语句

except, finally, else配合使用处理在程序运行中出现的异常情况。

class语句

用于定义类型。

def语句

用于定义函数和类型的方法。

pass语句

表示此行为空,不运行任何操作。

assert语句

用于程序调适阶段时测试运行条件是否满足。

with语句

Python2.6以后定义的语法,在一个场景中运行语句块。比如,运行语句块前加锁,然后在语句块运行结束后释放锁。

yield语句

在迭代器函数内使用,用于返回一个元素。自从Python 2.5版本以后。这个语句变成一个运算符。

raise语句

抛出一个异常。

import语句

导入一个模块或包。常用写法:from module import name, import module as name, from module import name as anothername

1.2.4 程序交互

input进行交互

#!/usr/bin/env python
# -*- coding: utf-8 -*-
  
# 将用户输入的内容赋值给 name 变量
name = input("请输入用户名:")
  
# 打印输入的内容
print(name)

可以让用户输入多个信息,如下

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

1.2.5 数据类型与动态类型

Python内置多种数据类型。下面这个列表简要地描述了Python内置数据类型(适用于Python 3.x):

类型

描述

例子

str

一个由字符组成的不可更改的有序列。在Python 3.x里,字符串由Unicode字符组成。

'Wikipedia'

"Wikipedia"

"""Spanning

multiple

lines"""

bytes

一个由字节组成的不可更改的有序列。

b'Some ASCII'

b"Some ASCII"

list

可以包含多种类型的可改变的有序列

[4.0, 'string', True]

tuple

可以包含多种类型的不可改变的有序列

(4.0, 'string', True)

set, frozenset

与数学中集合的概念类似。无序的、每个元素唯一。

{4.0, 'string', True}

frozenset([4.0, 'string', True])

dictmap

一个可改变的由键值对组成的无序列。

{'key1': 1.0, 3: False}

int

精度不限的整数

42

float

浮点数。精度与系统相关。

3.1415927

complex

复数

3+2.7j

bool

逻辑值。只有两个值:真、假

True

False

除了各种数据类型,Python语言还用类型来表示函数、模块、类型本身、对象的方法、编译后的Python代码、运行时信息等等。因此,Python具备很强的动态性。

1.2.6 运算符

计算机可以进行的运算有很多种,可不只加减乘除这么简单,运算按种类可分为算数运算、比较运算、逻辑运算、赋值运算、成员运算、身份运算、位运算,今天我们暂只学习算数运算、比较运算、逻辑运算、赋值运算

算数运算

以下假设变量:a=10b=20

比较运算

以下假设变量:a=10b=20

赋值运算

以下假设变量:a=10b=20

逻辑运算

         关于逻辑运算

在没有()的情况下not 优先级高于 andand优先级高于or,即优先级关系为( )>not>and>or,同一优先级从左往右计算。

in,not in :

判断子元素是否在原字符串(字典,列表,集合)中:

例如:

#print('喜欢' in 'dkfljadklf喜欢hfjdkas')
#print('a' in 'bcvd')
#print('y' not in 'ofkjdslaf')

         常见的占位符有:

1.3 流程控制语句

1.3.1 流程控制之--if

假如把写程序比做走路,那我们到现在为止,一直走的都是直路,还没遇到过分叉口,想象现实中,你遇到了分叉口,然后你决定往哪拐必然是有所动机的。你要判断那条岔路是你真正要走的路,很简单,只需要在程序里预设一些条件判断语句,满足哪个条件,就走哪条岔路。这个过程就叫流程控制。

单分支

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

双分支

"""
if 条件:
    满足条件执行代码
else:
    if条件不满足就走这段
"""
MemInfo = 48
if MemInfo > 95 :
    print("内存即将用光")
else:
    print("没事,放心用!")

多分支

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

示例:猜猜我的年龄

age_of_clsn = 24
guess = int(input(">>:"))
if guess > age_of_clsn :
    print("猜的太大了,往小里试试...")
elif guess < age_of_clsn :
    print("猜的太小了,往大里试试...")
else:
    print("恭喜你,猜对了...")

1.3.2 流程控制之--while循环

基本while循环

while 条件:
     
    # 循环体
     
    # 如果条件为真,那么循环体则执行
    # 如果条件为假,那么循环体不执行

循环中止语句

         如果在循环的过程中,因为某些原因,你不想继续循环了,怎么把它中止掉呢?这就用到break continue 语句

break用于完全结束一个循环,跳出循环体执行循环后面的语句

continuebreak有点类似,区别在于continue只是终止本次循环,接着还执行后面的循环,break则完全终止循环。

示例:

         之前猜年龄的代码运行一次使用一次,但稍加修改就能一自运行。

age_of_clsn = 24
while True:
    guess = int(input(">>:"))
    if guess > age_of_clsn:
        print("猜的太大了,往小里试试...")
    elif guess < age_of_clsn:
        print("猜的太小了,往大里试试...")
    else:
        print("恭喜你,猜对了...")
        break

1.3.3 格式化输出

现有一练习需求,问用户的姓名、年龄、工作、爱好 ,然后打印成以下格式

------------ info of Alex Li -----------
Name  : CLSN
Age   : 24
job   : Linux Ops
Hobbie: girl
------------- end -----------------

         这样的格式如何输出呢?

name = input("Name:")
age = input("Age:")
job = input("Job:")
hobbie = input("Hobbie:")
info = '''
------------ info of %s ----------- #这里的每个%s就是一个占位符,本行的代表 后面拓号里的 name 
Name  : %s  #代表 name 
Age   : %s  #代表 age  
job   : %s  #代表 job 
Hobbie: %s  #代表 hobbie 
------------- end -----------------
''' %(name,name,age,job,hobbie)  # 这行的 % 号就是 把前面的字符串 与拓号 后面的 变量 关联起来 
print(info)

         在格式化输出里面,怎么表示%?

msg = "我是%s,年龄%d,目前工作进度为80%%"%('clsn',24)
print(msg)

         使用%% % 转义.

1.4 编码说明

字符

ASCII

Unicode

utf-8

GBK

英文

1个字节

2-4个字节

1个字节

1个字节

中文

x

2-4个字节

3个字节

2个字节

其他

x

2-4个字节

2个字节

x

         : 1个字节 = 8 bit

1.5 参考文献

[1]  https://zh.wikipedia.org/wiki/Python

[2]  http://www.cnblogs.com/jin-xin/articles/7459977.html

[3]  http://www.cnblogs.com/wang-yc/articles/6419907.html

[4]  http://www.runoob.com/python/python-install.html

[5]  https://www.cnblogs.com/iDouble/p/8467738.html

 我的博客即将入驻“云栖社区”,诚邀技术同仁一同入驻。

作者: 惨绿少年
出处: https://www.nmtui.com
本文版权归作者所有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
目录
相关文章
|
1天前
|
机器学习/深度学习 数据可视化 数据挖掘
使用Python进行数据分析的入门指南
【9月更文挑战第33天】本文旨在为初学者提供一个关于使用Python进行数据分析的全面概述。我们将从基本的安装和设置开始,逐步介绍数据处理、数据可视化以及机器学习的基本概念和应用。文章将通过实际代码示例来展示如何使用Python及其相关库来解决常见的数据分析问题。
|
7天前
|
Python
Python 编程入门:打造你的第一个程序
【9月更文挑战第27天】编程,就像是在数字世界里绘画。想象一下,你手中的键盘是画笔,屏幕是画布,而代码则是你的颜料。这篇文章将带你走进编程的世界,学习如何使用 Python 这门语言来创建你的第一个程序。我们将从基础的语法开始,逐步深入到条件判断和循环结构,最终完成一个简单的猜数字游戏。无论你是否有编程经验,这里的内容都将为你打开一扇新的大门。
|
7天前
|
人工智能 数据挖掘 开发者
Python编程入门:从零到英雄
【9月更文挑战第27天】本文旨在通过浅显易懂的语言,为初学者介绍Python编程的基础知识和实用技巧。我们将一起探索Python的世界,了解其语法、数据结构,并通过实际示例学习如何编写简单的Python程序。无论你是编程新手,还是希望拓展技能的开发者,这篇文章都将为你打开一扇通往Python编程世界的大门。
|
6天前
|
Python
? Python 装饰器入门:让代码更灵活和可维护
? Python 装饰器入门:让代码更灵活和可维护
12 4
|
8天前
|
存储 人工智能 数据挖掘
Python编程入门:从基础到实战
【9月更文挑战第26天】 在这篇文章中,我们将一起探索Python编程的奇妙世界。无论你是初学者还是有一定经验的开发者,这篇文章都将为你提供有价值的信息和技巧。我们将从Python的基本语法开始,然后逐步深入到更复杂的主题,如函数、类和模块。最后,我们将通过一个实际的项目来应用我们所学的知识。让我们一起开始这段Python编程之旅吧!
|
6天前
|
数据可视化 Python
使用Python进行数据可视化:从入门到精通
【8月更文挑战第60天】本文是一篇面向初学者的Python数据可视化教程,旨在帮助读者掌握如何使用Python及其强大的库(如Matplotlib和Seaborn)来创建引人入胜的数据可视化。我们将从基础开始,逐步深入,最终达到能够独立完成复杂数据可视化项目的水平。无论你的背景如何,只要你对数据可视化感兴趣,这篇文章都将为你开启一段新的学习之旅。
|
9天前
|
数据采集 人工智能 数据挖掘
Python编程入门:从基础到实战的快速指南
【9月更文挑战第25天】本文旨在为初学者提供一个简明扼要的Python编程入门指南。通过介绍Python的基本概念、语法规则以及实际案例分析,帮助读者迅速掌握Python编程的核心技能。文章将避免使用复杂的专业术语,而是采用通俗易懂的语言和直观的例子来阐述概念,确保内容的可读性和实用性。
|
7天前
|
Python
Python 装饰器入门:让代码更灵活和可维护
Python 装饰器入门:让代码更灵活和可维护
12 1
|
9天前
|
设计模式 开发者 Python
Python中的装饰器:从入门到精通
【9月更文挑战第25天】本文深入浅出地介绍了Python装饰器的使用,包括其定义、语法和实际应用。通过实例演示如何利用装饰器增强函数功能,同时探讨了装饰器的高级用法如带参数的装饰器和装饰器嵌套。最后,文章强调了在设计装饰器时应避免的常见陷阱。
|
9天前
|
前端开发 开发者 Python
从零到一:Python Web框架中的模板引擎入门与进阶
在Web开发的广阔世界里,模板引擎是连接后端逻辑与前端展示的重要桥梁。对于Python Web开发者而言,掌握模板引擎的使用是从零到一构建动态网站或应用不可或缺的一步。本文将带你从基础入门到进阶应用,深入了解Python Web框架中的模板引擎。
14 3
下一篇
无影云桌面