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
本文版权归作者所有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
目录
相关文章
|
6天前
|
数据采集 存储 XML
Python爬虫定义入门知识
Python爬虫是用于自动化抓取互联网数据的程序。其基本概念包括爬虫、请求、响应和解析。常用库有Requests、BeautifulSoup、Scrapy和Selenium。工作流程包括发送请求、接收响应、解析数据和存储数据。注意事项包括遵守Robots协议、避免过度请求、处理异常和确保数据合法性。Python爬虫强大而灵活,但使用时需遵守法律法规。
|
7天前
|
Python
深入理解Python装饰器:从入门到实践####
本文旨在通过简明扼要的方式,为读者揭开Python装饰器的神秘面纱,从基本概念、工作原理到实际应用场景进行全面解析。不同于常规的摘要仅概述内容概要,本文将直接以一段精炼代码示例开篇,展示装饰器如何优雅地增强函数功能,激发读者探索兴趣,随后深入探讨其背后的机制与高级用法。 ####
36 11
|
3天前
|
机器学习/深度学习 人工智能 TensorFlow
人工智能浪潮下的自我修养:从Python编程入门到深度学习实践
【10月更文挑战第39天】本文旨在为初学者提供一条清晰的道路,从Python基础语法的掌握到深度学习领域的探索。我们将通过简明扼要的语言和实际代码示例,引导读者逐步构建起对人工智能技术的理解和应用能力。文章不仅涵盖Python编程的基础,还将深入探讨深度学习的核心概念、工具和实战技巧,帮助读者在AI的浪潮中找到自己的位置。
|
3天前
|
机器学习/深度学习 数据挖掘 Python
Python编程入门——从零开始构建你的第一个程序
【10月更文挑战第39天】本文将带你走进Python的世界,通过简单易懂的语言和实际的代码示例,让你快速掌握Python的基础语法。无论你是编程新手还是想学习新语言的老手,这篇文章都能为你提供有价值的信息。我们将从变量、数据类型、控制结构等基本概念入手,逐步过渡到函数、模块等高级特性,最后通过一个综合示例来巩固所学知识。让我们一起开启Python编程之旅吧!
|
3天前
|
存储 Python
Python编程入门:打造你的第一个程序
【10月更文挑战第39天】在数字时代的浪潮中,掌握编程技能如同掌握了一门新时代的语言。本文将引导你步入Python编程的奇妙世界,从零基础出发,一步步构建你的第一个程序。我们将探索编程的基本概念,通过简单示例理解变量、数据类型和控制结构,最终实现一个简单的猜数字游戏。这不仅是一段代码的旅程,更是逻辑思维和问题解决能力的锻炼之旅。准备好了吗?让我们开始吧!
|
9天前
|
Java 测试技术 持续交付
【入门思路】基于Python+Unittest+Appium+Excel+BeautifulReport的App/移动端UI自动化测试框架搭建思路
本文重点讲解如何搭建App自动化测试框架的思路,而非完整源码。主要内容包括实现目的、框架设计、环境依赖和框架的主要组成部分。适用于初学者,旨在帮助其快速掌握App自动化测试的基本技能。文中详细介绍了从需求分析到技术栈选择,再到具体模块的封装与实现,包括登录、截图、日志、测试报告和邮件服务等。同时提供了运行效果的展示,便于理解和实践。
42 4
【入门思路】基于Python+Unittest+Appium+Excel+BeautifulReport的App/移动端UI自动化测试框架搭建思路
|
3天前
|
设计模式 缓存 开发框架
Python中的装饰器:从入门到实践####
本文深入探讨了Python中装饰器的工作原理与应用,通过具体案例展示了如何利用装饰器增强函数功能、提高代码复用性和可读性。读者将学习到装饰器的基本概念、实现方法及其在实际项目开发中的实用技巧。 ####
15 3
|
6天前
|
机器学习/深度学习 数据采集 数据可视化
Python在数据科学中的应用:从入门到实践
本文旨在为读者提供一个Python在数据科学领域应用的全面概览。我们将从Python的基础语法开始,逐步深入到数据处理、分析和可视化的高级技术。文章不仅涵盖了Python中常用的数据科学库,如NumPy、Pandas和Matplotlib,还探讨了机器学习库Scikit-learn的使用。通过实际案例分析,本文将展示如何利用Python进行数据清洗、特征工程、模型训练和结果评估。此外,我们还将探讨Python在大数据处理中的应用,以及如何通过集成学习和深度学习技术来提升数据分析的准确性和效率。
|
5天前
|
机器学习/深度学习 数据挖掘 开发者
Python编程入门:理解基础语法与编写第一个程序
【10月更文挑战第37天】本文旨在为初学者提供Python编程的初步了解,通过简明的语言和直观的例子,引导读者掌握Python的基础语法,并完成一个简单的程序。我们将从变量、数据类型到控制结构,逐步展开讲解,确保即使是编程新手也能轻松跟上。文章末尾附有完整代码示例,供读者参考和实践。
|
5天前
|
人工智能 数据挖掘 程序员
Python编程入门:从零到英雄
【10月更文挑战第37天】本文将引导你走进Python编程的世界,无论你是初学者还是有一定基础的开发者,都能从中受益。我们将从最基础的语法开始讲解,逐步深入到更复杂的主题,如数据结构、面向对象编程和网络编程等。通过本文的学习,你将能够编写出自己的Python程序,实现各种功能。让我们一起踏上Python编程之旅吧!