一直听闻Python大名,故最近决定小探Python。
Python是一种面向对象、直译式计算机程序设计语言,由Guido van Rossum于1989年底发明,第一个公开发行版发行于1991年。Python语法简捷而清晰,具有丰富和强大的类库。它常被昵称为胶水语言,它能够很轻松的把用其他语言制作的各种模块(尤其是C/C++)轻松地联结在一起。常见的一种应用情形是,使用python快速生成程序的原型(有时甚至是程序的最终界面),然后对其中有特别要求的部分,用更合适的语言改写,比如3D游戏中的图形渲染模块,速度要求非常高,就可以用C++重写。
个人感觉,Python还是有点类似于C语言的,大体上是相同的,只是侧重的方向不一样,而且添加了一点新的特性。那么,我们一起看看有什么新特性吧。
一、Python程序的基本架构
这一方面跟C语言一样的。
1、输入:变量赋值、输入语句
Python输入语句print函数
re = raw_input(【prompt】)
prompt:提示字符,字符串型的
re 为返回值
比如:raw_input("plz input a string:")
2、处理:算术运算、逻辑运算、算法处理
3、输出:打印输出、写入文件、写入数据库
Python输出语句print函数,基本使用方法
1、打印整型数据
2、打印浮点型数据
3、打印字符串数据,但字符串数据要带上单引号
4、同时打印出多个数据,可用逗号在数据之间进行连接,这样数据便会在同一行上输出。有逗号就是一行。可以同时打印多个变量。这是输出函数,不带括号也可以
5、格式化输出
print(format(val,fomat_modifier))
val:值
format_madifier:格式字,‘m.nf’
m:输出占位,数据右对齐,位数有余则留空格,否则左对齐打印输出
n:精度,小数点后面的数
对于浮点型的数据,在进行格式化输出的时候,并不是简单地对数据进行截取,二是会对其进行四舍五入处理,然后在进行输出。
比如:print(format(x,'2.2f'))
百分号格式化输出:
将‘%’替换‘f’,其他相同
二、Python变量。
这是与C语言,完全不同的新特性。
在Python之中,变量是可变化数据对象的程序标识符,指向的变化。一次定义,多次指向,每次指向不能改变其内容。而相比,C语言是一次指向,多次改变。
即是说,Python之中,变量就相当于静态的指针,其指向是指向内存之中一个代表该数据大小的数据单元,而每一次的赋值也只是更改变量所指向的数据单元而已,而这个数据单元之中对应的数据将是另外的一个固定的数据。变化的是指向,而不是其指向的数据单元的数据。不是内容的变,而是指向的变。
而C语言,每次的赋值都是对该内存空间、数据单元中的数据内容进行重新的赋值,更改的是内容,而不是指向,与Python正好相反。
比如,在Python中,y=x语句是指x、y指向相同的数据单元,指向的地址一样,是除了标识符不同外的同一个数据。
这是一种动态的数据类型结构,赋值什么即是什么,所以在Python之中,对于变量的定义,我们无需指定变量的类型。原因也是因为Python变量的这一特性。
即可总结为:
1、Python变量的‘变’是变指向,数据单元对应的id。
还可以通过id() i函数,得知该id在内存之中的地址。
而且不可通过变量名修改其指向数据单元的内容。
2、Python数据类型不需要指定type
3、对比一下c变量和Python变量不同
三、Python函数
Python工程师为我们提供了三种类型的函数,包括:
1、系统库提供内部函数
系统函数库包括:字符函数库(系统默认的)、数学函数库、网络函数库。
要使用系统函数库,就要导入包,导入格式为:import 包名
比如:import math import os
次方运算符:** 类似于math.pow()
os.getcwd() 返回当前的工作路径
listdir(path) -> list_of_strings 当前工作的路径,所有的文件和目录。将路径目下的文件盒目录名,返回回来
网络函数库import socket
baiduip = socket.gethostbyname('www.baidu.com')捕获某主机的ip地址
2、第三方提供的函数
可由网络上下载相关函数库
简单网页爬虫示例
import urllib
import webbrowser as web //用as取了个假名
url = "http://www.163.com"
content = urllib.urlopen(url).read()
open("jeapedu.html","w").write(content)
web.open_new_tab('jeapedu.html')
//打开一个新标签
//访问公网上的某网页
web.open_new_tab('http://jeapedu.html')
3、自定义函数
1)语法结构
这是Python的一个特性,与C语言有很大的区别,但问题不大,可以多编程来记住就成。
(1)使用冒号代替无花括号。而使用空格的缩进进行包含内容的区别。类似于C语言之中的花括号之间的语句。
(2)函数无返回值类型
(3)基本格式
def function_name([parameters]):
(TAB或者空格) statement1
(TAB或者空格) statement2
(TAB或者空格) statement3
无返回值
def funa([para1,para2.....]):
(TAB或者空格) statement1 语句
(TAB或者空格) statement2
(TAB或者空格) statement3
有返回值
def funa([para1,para2.....]):
(TAB或者空格) statement1 语句
(TAB或者空格) statement2
(TAB或者空格) statement3
....
return values1,values2,values3....valuesn
(4)函数的定义使用的是形参;函数的调用使用的是实参。
(5)Python 支持多值返回,对应的赋值,等号之前也要有n个变量,一一对应的赋值。
如:values1,values2,values3....valuesn = funa([para1,para2.....])
当然,也有
value = funa([para1,para2.....]) 会以圆括号的形式返回。
print value(values1,values2,values3....valuesn) 各个形参的值,叫做圆组,类似于数组
(6)预设值问题(可以不给已设好预定值的参数传参,可以重新修改其值)从左到右,有预定值的必须写在最右边
def funa([para1,para2....parai=default....paran=default]):
2)Python函数实参赋值顺序
(1)一般情况下是与形参是一一对应赋值
(2)可以指定形参一一赋值,如:fun(n2=3,n1=1),指定参数的名字。只是可以无视预定的顺序。
(3)有预定义值得参数不能先于无预定义值参数被赋值,当所有形参都被指定了,才可以。
新特性还有很多,但我还没有专研透彻,也在学习当中,暂时先写到这吧,算是对之前所学进行的一次总结,以后还会更新,亲大家多关注,谢谢。
Python是一种面向对象、直译式计算机程序设计语言,由Guido van Rossum于1989年底发明,第一个公开发行版发行于1991年。Python语法简捷而清晰,具有丰富和强大的类库。它常被昵称为胶水语言,它能够很轻松的把用其他语言制作的各种模块(尤其是C/C++)轻松地联结在一起。常见的一种应用情形是,使用python快速生成程序的原型(有时甚至是程序的最终界面),然后对其中有特别要求的部分,用更合适的语言改写,比如3D游戏中的图形渲染模块,速度要求非常高,就可以用C++重写。
个人感觉,Python还是有点类似于C语言的,大体上是相同的,只是侧重的方向不一样,而且添加了一点新的特性。那么,我们一起看看有什么新特性吧。
一、Python程序的基本架构
这一方面跟C语言一样的。
1、输入:变量赋值、输入语句
Python输入语句print函数
re = raw_input(【prompt】)
prompt:提示字符,字符串型的
re 为返回值
比如:raw_input("plz input a string:")
2、处理:算术运算、逻辑运算、算法处理
3、输出:打印输出、写入文件、写入数据库
Python输出语句print函数,基本使用方法
1、打印整型数据
2、打印浮点型数据
3、打印字符串数据,但字符串数据要带上单引号
4、同时打印出多个数据,可用逗号在数据之间进行连接,这样数据便会在同一行上输出。有逗号就是一行。可以同时打印多个变量。这是输出函数,不带括号也可以
5、格式化输出
print(format(val,fomat_modifier))
val:值
format_madifier:格式字,‘m.nf’
m:输出占位,数据右对齐,位数有余则留空格,否则左对齐打印输出
n:精度,小数点后面的数
对于浮点型的数据,在进行格式化输出的时候,并不是简单地对数据进行截取,二是会对其进行四舍五入处理,然后在进行输出。
比如:print(format(x,'2.2f'))
百分号格式化输出:
将‘%’替换‘f’,其他相同
二、Python变量。
这是与C语言,完全不同的新特性。
在Python之中,变量是可变化数据对象的程序标识符,指向的变化。一次定义,多次指向,每次指向不能改变其内容。而相比,C语言是一次指向,多次改变。
即是说,Python之中,变量就相当于静态的指针,其指向是指向内存之中一个代表该数据大小的数据单元,而每一次的赋值也只是更改变量所指向的数据单元而已,而这个数据单元之中对应的数据将是另外的一个固定的数据。变化的是指向,而不是其指向的数据单元的数据。不是内容的变,而是指向的变。
而C语言,每次的赋值都是对该内存空间、数据单元中的数据内容进行重新的赋值,更改的是内容,而不是指向,与Python正好相反。
比如,在Python中,y=x语句是指x、y指向相同的数据单元,指向的地址一样,是除了标识符不同外的同一个数据。
这是一种动态的数据类型结构,赋值什么即是什么,所以在Python之中,对于变量的定义,我们无需指定变量的类型。原因也是因为Python变量的这一特性。
即可总结为:
1、Python变量的‘变’是变指向,数据单元对应的id。
还可以通过id() i函数,得知该id在内存之中的地址。
而且不可通过变量名修改其指向数据单元的内容。
2、Python数据类型不需要指定type
3、对比一下c变量和Python变量不同
三、Python函数
Python工程师为我们提供了三种类型的函数,包括:
1、系统库提供内部函数
系统函数库包括:字符函数库(系统默认的)、数学函数库、网络函数库。
要使用系统函数库,就要导入包,导入格式为:import 包名
比如:import math import os
次方运算符:** 类似于math.pow()
os.getcwd() 返回当前的工作路径
listdir(path) -> list_of_strings 当前工作的路径,所有的文件和目录。将路径目下的文件盒目录名,返回回来
网络函数库import socket
baiduip = socket.gethostbyname('www.baidu.com')捕获某主机的ip地址
2、第三方提供的函数
可由网络上下载相关函数库
简单网页爬虫示例
import urllib
import webbrowser as web //用as取了个假名
url = "http://www.163.com"
content = urllib.urlopen(url).read()
open("jeapedu.html","w").write(content)
web.open_new_tab('jeapedu.html')
//打开一个新标签
//访问公网上的某网页
web.open_new_tab('http://jeapedu.html')
3、自定义函数
1)语法结构
这是Python的一个特性,与C语言有很大的区别,但问题不大,可以多编程来记住就成。
(1)使用冒号代替无花括号。而使用空格的缩进进行包含内容的区别。类似于C语言之中的花括号之间的语句。
(2)函数无返回值类型
(3)基本格式
def function_name([parameters]):
(TAB或者空格) statement1
(TAB或者空格) statement2
(TAB或者空格) statement3
无返回值
def funa([para1,para2.....]):
(TAB或者空格) statement1 语句
(TAB或者空格) statement2
(TAB或者空格) statement3
有返回值
def funa([para1,para2.....]):
(TAB或者空格) statement1 语句
(TAB或者空格) statement2
(TAB或者空格) statement3
....
return values1,values2,values3....valuesn
(4)函数的定义使用的是形参;函数的调用使用的是实参。
(5)Python 支持多值返回,对应的赋值,等号之前也要有n个变量,一一对应的赋值。
如:values1,values2,values3....valuesn = funa([para1,para2.....])
当然,也有
value = funa([para1,para2.....]) 会以圆括号的形式返回。
print value(values1,values2,values3....valuesn) 各个形参的值,叫做圆组,类似于数组
(6)预设值问题(可以不给已设好预定值的参数传参,可以重新修改其值)从左到右,有预定值的必须写在最右边
def funa([para1,para2....parai=default....paran=default]):
2)Python函数实参赋值顺序
(1)一般情况下是与形参是一一对应赋值
(2)可以指定形参一一赋值,如:fun(n2=3,n1=1),指定参数的名字。只是可以无视预定的顺序。
(3)有预定义值得参数不能先于无预定义值参数被赋值,当所有形参都被指定了,才可以。
新特性还有很多,但我还没有专研透彻,也在学习当中,暂时先写到这吧,算是对之前所学进行的一次总结,以后还会更新,亲大家多关注,谢谢。