Python基础(上)

前言

正式开始Python之旅,主要学习内容专注在爬虫人工智能领域,如Web开发之类将跳过不研究。

Python的意思是蟒蛇,源于作者Guido van Rossum(龟叔)喜欢的一部电视剧。所以现在开始暂时忘掉.NET忘掉C#,using干什么用的?不知道....

我只记得、我要玩蛇!!!

Python基础概述

1.优点

简单:Python是一种代表简单主意的语言。Python这种伪代码本质是它最大的优点之一,它使你能够专注于解决问题而不是搞明白语言本身。

易学:Python极易上手,它有着极其简单的语法,Python采用强制缩进的方式使得代码具有极佳的可读性。

免费、开源:Python是FLOS(自由/开放源码软件)之一。可以自由地发布这个软件的拷贝、阅读它的源码、并改动它和闭源。

高层语言:无需关心内存方面的管理之类的底层细节。

跨平台(可移植性):Python已经被移植在多个平台,在任何平台都可以在不修改源码的情况下运行Python程序。

解释性:Python程序不需要编译成二进制码,可以直接源代码运行程序,在计算机内部,Python解释器把源代码转换成字节码的中间形式,再把它翻译成计算机使用的机器语言运行。

面向对象:Python既支持面向过程编程也支持面向对象编程,相比其它语言如Java和C#相比,它以一种非常强大又简单的方式实现面向对象编程。

可扩展性:如果需要关键代码运行得更快或希望某些算法不公开,可以把这一部分使用C或C++编写,然后在Python程序中使用它们。

丰富的库:Python标准库很庞大。

2.缺点

运行速度:如果对运行速度有要求的话,用C++改写关键部分。

中文资源匮乏:入门资料多,高级内容还得看英文版。

架构选择太多:没有像C#这样的官方.NET企业架构,

3.应用场景

Web应用开发:一些Web框架,如Django,TurboGears,web2py,Zope等,可以让程序员轻松地开发和管理复杂Web程序。

操作系统管理、服务器运维和自动化脚本:在很多操作系统里,Python是标准的系统组件。大多数Linux发行版和MacOS都集成了Python,可以在终端直接运行Python。Python能够访问Windows的COM服务及其它Windows API。使用IroPython,Python程序可以直接调用.Net Frameword。

科学计算:NumPySciPyMatplotlibPandas等,可以让Python程序员编写科学计算程序。

桌面软件:PyQt,PySide,wxPython,PyGTK可以使用Python快速开发桌面应用程序。

服务器软件:Python对于各种网络协议的支持非常完美,因此常被用于编写服务器软件、网络爬虫、第三方库Twisted支持异步网络编程和多数标准的网络协议,并且提供了多种工具,被广泛用于编写高性能的服务器软件。

游戏:很多游戏使用C++编写图形显示等高性能模块,使用Python编写游戏的逻辑、服务器。

注释

1.单行注释

#开头、#右边的所有内容当作说明而非真正要执行的内容。

1 #我是单号注释
2 print(‘Hello Jonins‘)

2.多行注释

‘‘‘(3个单引号)开始以‘‘‘(3个单引号)结尾,中间的内容被当作说明。(也可以用3个双引号""")

1 ‘‘‘
2 我是多行注释
3 ‘‘‘
4 """
5 我是多行注释
6 """
7 print(‘Hello Jonins‘)

中文支持

Python3支持中文,但在Python2中,程序只要包含中文,python2的解释器不能识别所以会报错,所以需要在程序的最开头输入如下代码:

1 #conding=utf-8

还有一种写法,是python的语法规范中推荐使用的:

1 #-*- conding:utf-8 -*-

完整的示例如下:

变量及类型

1.变量定义

python是一门弱类型语言,意味着不用强调变量的类型,在变量的定义前面不需要加变量的类型。

1 num1 = 10#num1在变量赋值的过程中自动赋值自己的类型
2 num2 = 20
3 total = num1+num2
4 print(total)

若想查看变量的类型,可以使用type(变量名):

1 num1 = 10
2 num1 = ‘1‘
3 print(type(num1))

2.变量类型

为了更充分的利用内存空间以及更高效的管理内存,变量有不同类型的,常用的数据类型如下:

标识符和关键字

标识符是我们自己定义的如:变量名、函数名等。

标识符只能由数字、字母和下划线组成,并且数字不能在开头

关键词是python已经使用了的,具有特殊功能的标识符。python不允许开发者自己定义和关键词相同名字的标识符。可以通过代码查看python具有哪些关键词:

import keyword
keys = keyword.kwlist;
print(keys)

大致有如下这些:

[‘False‘, ‘None‘, ‘True‘, ‘and‘, ‘as‘, ‘assert‘, ‘break‘, ‘class‘, ‘continue‘, ‘def‘, ‘del‘, ‘elif‘, ‘else‘, ‘except‘, ‘finally‘, ‘for‘, ‘from‘, ‘global‘, ‘if‘, ‘import‘, ‘in‘, ‘is‘, ‘lambda‘, ‘nonlocal‘, ‘not‘, ‘or‘, ‘pass‘, ‘raise‘, ‘return‘, ‘try‘, ‘while‘, ‘with‘, ‘yield‘]

输入(input)

1.Python2中输入

python2中,获取键盘输入的数据的方式采用raw-input()函数,示例如下:

name=raw_input("请输入姓名:")
print(name)

说明:

raw-input()的小括号中放入的是,提示信息,用来在获取数据之前给用户一个提示。

raw-input()在从键盘获取到数据以后,会将数据存放到等号右边的变量中。

raw-input()会把用户输入的任何值都作为字符串来存储。

python2中的input()函数于raw_input()类似,但其接受的输入必须是表达式(切换python2的交互窗口进行验证)如下所示:

 1 >>> num=input()
 2 123#输入123自动识别为int
 3
 4 >>> num
 5 123
 6 >>> type(num)
 7 <type ‘int‘>
 8 >>> str=input()
 9 ‘jonins‘#输入"或‘自动识别为string
10
11 >>> str
12 ‘jonins‘
13 >>> type(str)
14 <type ‘str‘>
15 >>> num=input()
16 1+2+3#同类型可以相加
17
18 >>> num
19 6
20 >>> str=input()
21 ‘1010‘+‘jonsin‘#string同类型则会拼接
22
23 >>> str
24 ‘1010jonsin‘
25 >>>

2.Python3中输入

python3中没有raw_input()函数,只有input(),并且python3中的input()功能与python2中的raw_inpu()功能一样。

输出(print)

1.普通输出

1 print(‘hello jonins‘)
2 age=18
3 print(age)

2.格式化输出

在程序中若想在输出中给变量占位需要使用%号格式化输出,如下所示

1 age=18
2 print(‘年龄是:%d已成年!‘%age)
3 name=‘jonins‘
4 print(‘姓名%s,年龄%d岁.‘%(name,age))

在程序,看到%这样的操作符,就是python的格式化输出

3.常用的格式符号

下面是完整的,可以与%符号配合使用的列表:

格式符号 转换
%c 字符
%s 通过str()字符串转换来的格式化
%i 有符号十进制整数
%d 有符号十进制整数
%u 无符号十进制整数
%o 八进制整数
%x 十六进制整数(小写字母)
%X 十六进制整数(大写字母)
%e 索引符号(小写e)
%E 索引符号(大写E)
%f 浮点实数
%g %f和%e的简写
%G %f和%E的简写

4.换行输出

在输出的时候,如果有\n那么,此时\n后的内容会在另外一行显示

1 print(‘姓名jonins\n年龄18岁‘)

运算符

1.算术运算符

注意:当算术的运算两个对象不是同类型,也是可以计算的,结果会跟随类型较大的对象。如:9/3.0 =3.0

2.赋值运算符

运算符=,为赋值运算符,作用是把等号右边的结果给左边的变量,示例如下:

1 a,b=1,3
2 print(a+b)
3 c,d=2.0,‘jonins‘
4 print(c)
5 print(d)

3.复合赋值运算符

运算符 描述 示例
+= 加法赋值 a+=b等效于a=a+b
-= 减法赋值 a-=b等效于a=a-b
*= 乘法赋值 a*=b等效于a=a*b
/= 除法赋值 a/=b等效于a=a/b
//= 取整除赋值 a//=b等效于a=a//b
%= 取余赋值 a%=b等效于a=a%b
**= 幂计算赋值 a**=b等效于a=a**b

数据类型转换

示例

1 str=‘3‘
2 num=float(str)
3 print(num)

判断语句(if&elif)

1.if-else语句

if-else的使用格式:

 1 if 条件:
 2     满足条件时要做的事情1
 3     满足条件时要做的事情2
 4     满足条件时要做的事情3
 5     满足条件时要做的事情4
 6     ...(省略)...
 7 else:
 8     不满足条件时要做的事情1
 9     不满足条件时要做的事情2
10     不满足条件时要做的事情3
11     不满足条件时要做的事情4
12     ...(省略)...

示例如下:

1 age=18
2 print(‘--------if判断开始----------‘)
3 if age>=18:
4     print(‘已成年‘)
5     print(‘年龄是%i‘%age)
6 else:
7     print(‘未成年‘)
8     print(‘年龄是%i‘%age)
9 print(‘--------if判断结束----------‘)

注意:代码的缩进为一个tab键,或者4个空格。解释器会将缩进的语句判定为满足条件时执行的代码。对应的C#代码如下所示:

 1             int age = 18;
 2             Console.WriteLine("--------if判断开始----------");
 3             if (age >= 18)
 4             {
 5                 Console.WriteLine("已成年");
 6                 Console.WriteLine($"年龄是{age}");
 7             }
 8             else
 9             {
10                 Console.WriteLine("未成年");
11                 Console.WriteLine($"年龄是{age}");
12             }
13             Console.WriteLine("--------if判断结束----------");
14             Console.ReadKey();

C# Code

2.elif语句

elif的使用格式如下:

 1 if 条件1:
 2     满足条件1时要做的事情1
 3     满足条件1时要做的事情2
 4     满足条件1时要做的事情3
 5     满足条件1时要做的事情4
 6     ...(省略)...
 7 elif 条件2:
 8     满足条件2时要做的事情1
 9     满足条件2时要做的事情2
10     满足条件2时要做的事情3
11     满足条件2时要做的事情4
12     ...(省略)...
13 else:
14     不满足上述所有条件时要做的事情1
15     不满足上述所有条件时要做的事情2
16     不满足上述所有条件时要做的事情3
17     不满足上述所有条件时要做的事情4
18     ...(省略)...

示例如下:

 1 age=18
 2 print(‘--------if判断开始----------‘)
 3 if age==16:
 4     print(‘已年满16岁‘)
 5 elif age==18:
 6     print(‘已成年‘)
 7     print(‘年龄是%i‘%age)
 8 else:
 9     print(‘未成年‘)
10     print(‘年龄是%i‘%age)
11 print(‘--------if判断结束----------‘)

elif语句一定要配合if使用,可以有else也可以没有,elif的条件不限制,对应的C#代码如下所示:

 1             int age = 18;
 2             Console.WriteLine("--------if判断开始----------");
 3
 4             if (age == 16)
 5                 Console.WriteLine("已年满16岁");
 6             else if (age == 18)
 7             {
 8                 Console.WriteLine("已成年");
 9                 Console.WriteLine($"年龄是{age}");
10             }
11             else
12             {
13                 Console.WriteLine("未成年");
14                 Console.WriteLine($"年龄是{age}");
15             }
16             Console.WriteLine("--------if判断结束----------");
17             Console.ReadKey();

C# Code

3.if嵌套

if嵌套的格式大致如下:

 1 if 条件1:
 2     满足条件1时要做的事情1
 3     满足条件1时要做的事情2
 4     ...(省略)...
 5     if 条件2:
 6         满足条件2时要做的事情1
 7         满足条件2时要做的事情2
 8         满足条件2时要做的事情3
 9         满足条件2时要做的事情4
10         ..(省略)...

注意:

外层的if判断,也可以是if-else

内层的If判断,也可以是if-else

比较&关系运算符

1.比较运算符

2.逻辑运算符

循环语句(while)

1.while语句

while循环的格式如下:

1 while 条件:
2     满足条件时,做事情1
3     满足条件时,做事情2
4     满足条件时,做事情3
5     ...(省略)...

示例如下:

1 i=1
2 sum=0
3 while i<=100:
4     sum+=i
5     i+=1
6 print("1-100的累积和为:%i"%sum)

2.循环嵌套

 1 while 条件:
 2     满足条件时,做事情1
 3     满足条件时,做事情2
 4     满足条件时,做事情3
 5     ...(省略)...
 6     while 条件:
 7         满足条件时,做事情1
 8         满足条件时,做事情2
 9         满足条件时,做事情3
10         ...(省略)...

示例如下:

1 i=1
2 while i<=5:
3     j=1
4     while j<=i:
5         print("* ",end=" ")
6         j+=1
7     print("\n")
8     i+=1

循环语句(for)

在python中for循环可以遍历任何序列的项目,如一个列表或者一个字符串

1 for 临时变量 in 列表或者字符串等:
2     满足循环条件时执行的代码
3 else:
4     满足不循环条件时执行的代码

示例如下:

1 name=‘jonins‘
2 for x in name:
3     print(x)
4 else:
5     print(‘遍历完成‘)

break&continue

break的作用:用来结束整个循环。

continue的作用:用来结束本次循环,紧接着执行下一次的循环。

示例如下:

1 name=‘jonins.com‘
2 for x in name:
3     if(x==‘o‘):
4         continue;
5     if(x==‘.‘):
6         break;
7     print(x)

注意:

break/continue只能用在循环中,除此以外不能单独使用。

break/continue在嵌套循环中,只对最近的一层循环起作用。

原文地址:https://www.cnblogs.com/jonins/p/9694546.html

时间: 2024-11-08 19:08:28

Python基础(上)的相关文章

萌新向Python数据分析及数据挖掘 第一章 Python基础 (上)未排版

因word和博客编辑器格式不能完全对接,正在重新排版,2019年1月1日发出第一章完整版 本文将参考<Python编程 从入门到实践>的讲述顺序和例子,加上自己的理解,让大家快速了解Python的基础用法,并将拓展内容的链接添加在相关内容之后,方便大家阅读. 好了!我们开始第一章的学习. 第一章 Python基础 python安装以及环境搭建 python的安装和环境变量的配置通过百度查询即可解决,这里不作赘述. IDE的选择:因为后期需要用来做数据分析,所以直接安装Anaconda会是一个不

windows在python基础上安装pip

首先你必须已经安装了python,并且配置好环境 键入pip 复制https://bootstrap.pypa.io/get-pip.py的内容并创建get-pip.py文件(该文件的内容就是刚刚复制的内容) 然后进入到刚刚get-pip.py所在文件夹,键入python get-pip.py 就会安装pip 原文地址:https://www.cnblogs.com/jakejian/p/9021734.html

《转》python学习--基础上

学习的python本来想自己总结,但是发现了一篇不错的大牛的博客,拿来主义,,又被我实践了 关于前两篇如果总结的不详细,因此把他人的转载过来 http://www.cnblogs.com/BeginMan/archive/2013/04/12/3016323.html 一.欲练此功,必先自宫 从现在起,就开始真正地接触她了,或许很多人像我一样,不知道如何去快速掌握一门新的编程语言,今天贴出来一些建议,方便大家看看,这也是学习之前的十分重要的事情.虽然"欲练此功,必先自宫"太夸张,但是在

Python基础 - 多线程(上)

前面对 进程 一点认识, 通俗理解, 进程是操作系统(OS)进行资源调度分配的基本单元. 每个程序的至少就一个进程在OS中被"监控"着的哦. 然后围绕着多进程, 用消息队列共享全局变量, 守护主进程, 进程池...这一通探讨, 当然还是偏向应用的一方, 我自己偶尔工作有多任务的处理的地方, 也是优先弄多进程 (主要是公司电脑贼强, 我就要弄多进程, 就要浪费资源哈哈..). 进程 呢, 基本没用过, (爬虫除外, 之前有用 scrapy 是多线程的), 自己来手写应该是没有的. 为啥宁

python基础===基于requests模块上的协程【trip】

今天看博客get了一个有趣的模块,叫做 trip     #(pip install  trip) 兼容2.7版本 基于两大依赖包:TRIP: Tornado & Requests In Pair. 先看一下simple code: import trip @trip.coroutine def main(): r = yield trip.get('http://www.baidu.com/') print(r.content) trip.run(main) 于是又做了一个比较: import

linux+jmeter+python基础+抓包拦截

LINUX 一 配置jdk 环境 *需要获取root权限,或者切换为root用户 1.windows下载好,去 http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html 官方网站下载jdk(linux相应版本) 2.在usr目录下创建java路径文件夹 [root bin]cd /usr mkdir java 3.将jdk-8u60-linux-x64.tar.gz放到刚才创建的文件夹下

Python基础教程(第九章 魔法方法、属性和迭代器)

本文内容全部出自<Python基础教程>第二版,在此分享自己的学习之路. ______欢迎转载:http://www.cnblogs.com/Marlowes/p/5437223.html______ Created on Marlowes 在Python中,有的名称会在前面和后面都加上两个下划线,这种写法很特别.前面几章中已经出现过一些这样的名称(如__future__),这种拼写表示名字有特殊含义,所以绝不要在自己的程序中使用这样的名字.在Python中,由这些名字组成的集合所包含的方法称

Python基础入门 (一)

一.关于版本的选择 Should i use Python 2 or Python 3 for my development activity?转载自Python官网 Short version: Python 2.x is legacy, Python 3.x is the present and future of the language Python 3.0 was released in 2008. The final 2.x version 2.7 release came out

python基础-02

常见的数据类型 列表 在python中,列表的创建可以是由[]两个方括号组成的.在其他语言中,被称之为数组. 列表里可以存放一组值,并且系统默认的给列表里的每一个元素以索引值,方便查找和使用. 如下: #创建一个列表,并且保存一定的数据 user_list = ['刘德华','张学友','张靓颖','郭富城','李白'] print(user_list) #['刘德华', '张学友', '张靓颖', '郭富城', '李白'] #根据索引值来读取数据 print(user_list[0])#刘德华