零基础小白不得不先看的Python基础教程

本文是第一篇,一共四篇打下Python基础

声明下:Python的入门难度为0,比Java,C++根本不能比,你会英语基本没问题。

本文是第一篇

1、基本概念

1.1 四种类型

python中数有四种类型:整数、长整数、浮点数和复数。

整数, 如 1 复制代码

长整数 是比较大的整数 复制代码

浮点数 如 1.23、3E-2

复数 如 1 + 2j、 1.1 + 2.2j

1.2 字符串

字符串(字符的序列)

python中单引号和双引号使用完全相同。 复制代码

使用三引号('''或""")可以指定一个多行字符串。 复制代码

转义符 `'\'` 复制代码

自然字符串, 通过在字符串前加r或R。 如` r"this is a line with \n"` 则`\n`会显示,并不是换行。 复制代码

python允许处理`unicode`字符串,加前缀u或U, 如 `u"this is an unicode string"`。 复制代码

字符串是不可变的。

按字面意义级联字符串,如"this " "is " "string"会被自动转换为this is string。 复制代码

1.3 标识符的命名

标识符的命名

第一个字符必须是字母表中字母或下划线'_'。 复制代码

标识符的其他的部分有字母、数字和下划线组成。 复制代码

标识符对大小写敏感。 复制代码

1.4 对象

 python程序中用到的任何“东西”都成为“对象”。

1.5 逻辑行和物理行

物理行:就是程序员所写代码的所在行。

逻辑行:是指源代码经过预编译后,代码所在的那一行。

Python假定每个物理行都对应着一个逻辑行。例如:print( "Hello World" ) 就是一个物理行,Python希望每行只有一个语句,因为这样看起来更加易读。

如果你想要在一个物理行中使用多于一个逻辑行,那么你需要使用分号(; )来特别地标明这种用法。分号表示一个逻辑行/语句的结束。

例如:

count = 5 print ( "count" ) 复制代码

与下面的语句等同:

count = 5; print ( "count" ); 复制代码

当然也可以写成下面这种:

count = 5 ; print ( "count" ); 复制代码

甚至可以写成这样:

count = 5 ; print ( "count" ) 复制代码

我们使用\的换行

print \ ("Runsen")  复制代码

1.6 缩进

空白在python是非常重要的,行首的空白是最重要的,又称为缩进。行首的空白(空格和制表符)用来决定逻辑行的缩进层次,从而决定语句。

2、运算符与表达式

2.1 运算符与其用法

h>名称

运算符例子

2.2 运算符优先级

.运算符优先级(从低到高)

运算符描述

2.3 输出

python 控制台输出 使用print

print ("abc"  )  #打印abc并换行 print ("abc%s" % "d"  )  #打印abcd print ("abc%sef%s" % ("d", "g")  )  #打印abcdefg 复制代码

3、控制流

3.1 if 语句

i = 10 n = int(input("enter a number:"))  if n == i:    print( "equal") elif n < i:    print( "lower") else:    print ("higher") 复制代码

3.2 while语句

while True:    pass else:    pass #else语句可选,当while为False时,else语句被执行。 pass是空语句。 复制代码

for 循环 for..in

for i in range(0, 5):    print (i) else:    pass # 打印0到4 复制代码

注:当for循环结束后执行else语句; range(a, b)返回一个序列,从a开始到b为止,但不包括b,range默认步长为1,可以指定步长,range(0,10,2); 3.3 break语句

终止循环语句,如果从for或while中终止,任何对应循环的else将不执行。

3.4 continue语句

continue语句用来调过当前循环的剩余语句,然后继续下一轮循环。

下面就是 break 和 continue 主要的 区别:

break:跳出整个循环

continue:跳出本次循环,继续执行下一次循环 希望大家牢记。

4、函数

函数通过def定义。def关键字后跟函数的标识符名称,然后跟一对圆括号,括号之内可以包含一些变量名,该行以冒号结尾;接下来是一块语句,即函数体。

def sumOf(a, b): return a + b 复制代码

4.1  函数形参

函数中的参数名称为‘形参’,调用函数时传递的值为‘实参’

4.2 局部变量

在函数内定义的变量与函数外具有相同名称的其他变量没有任何关系,即变量名称对于函数来说是局部的。这称为变量的作用域。

global语句, 为定义在函数外的变量赋值时使用global语句。 def func(): global x    print( "x is ", x)    x = 1  x = 3 func() print(x) #3 #1  复制代码

4.3 默认参数

通过使用默认参数可以使函数的一些参数是‘可选的’。

def say(msg, times =  1):    print(msg * times)  say("Runsen") say("Runsen", 3) 复制代码

注意:只有在形参表末尾的那些参数可以有默认参数值,即不能在声明函数形参的时候,先声明有默认值的形参而后声明没有默认值的形参,只是因为赋给形参的值是根据位置而赋值的。

4.4 关键参数

如果某个函数有很多参数,而现在只想指定其中的部分,那么可以通过命名为这些参数赋值(称为‘关键参数’)。 优点:不必担心参数的顺序,使函数变的更加简单;假设其他参数都有默认值,可以只给我们想要的那些参数赋值。

def func(a, b=2, c=3): print ("a is %s, b is %s, c is %s") % (a, b, c)  func(1) #a is 1, b is 2, c is 3 func(1, 5) #a is 1, b is 5, c is 3 func(1, c = 10) #a is 1, b is 2, c is 10 func(c = 20, a = 30) #a is 30, b is 2, c is 20 复制代码

4.5 return 语句

 return语句用来从一个函数返回,即跳出函数。可从函数返回一个值。  没有返回值的return语句等价于return None。None表示没有任何东西的特殊类型。

4.5  文档字符串

__doc__  (文档字符串)

def func(): '''This is self-defined function    Do nothing    ''' pass  print(func.__doc__)  #This is self-defined function # #Do nothing 复制代码

5、模块

模块就是一个包含了所有你定义的函数和变量的文件,模块必须以.py为扩展名。模块可以从其他程序中‘输入’(import)以便利用它的功能。

在python程序中导入其他模块使用'import', 所导入的模块必须在sys.path所列的目录中,因为sys.path第一个字符串是空串''即当前目录,所以程序中可导入当前目录的模块。

5.1 字节编译的.pyc文件

导入模块比较费时,python做了优化,以便导入模块更快些。一种方法是创建字节编译的文件,这些文件以.pyc为扩展名。

pyc是一种二进制文件,是py文件经编译后产生的一种byte code,而且是跨平台的(平台无关)字节码,是有python虚拟机执行的,类似于

java或.net虚拟机的概念。pyc的内容,是跟python的版本相关的,不同版本编译后的pyc文件是不同的。

5.2  from .. import

如果想直接使用其他模块的变量或其他,而不加'模块名+.'前缀,可以使用from .. import。

例如想直接使用sys的argv,from sys import argv 或 from sys import *

5.3 模块的name 每个模块都有一个名称,py文件对应模块名默认为py文件名,也可在py文件中为name赋值;如果是name,说明这个模块被用户

(4)  dir()函数

dir(sys)返回sys模块的名称列表;如果不提供参数,即dir(),则返回当前模块中定义名称列表。

(5)  del

del -> 删除一个变量/名称,del之后,该变量就不能再使用。

6、数据结构

python有三种内建的数据结构:列表、元组和字典。

6.1 列表

   list是处理一组有序项目的数据结构,列表是可变的数据结构。列表的项目包含在方括号[]中,

eg: [1, 2, 3], 空列表[]。判断列表中是否包含某项可以使用in,

比如 l = [1, 2, 3]; print 1 in l; #True;

支持索引和切片操作;索引时若超出范围,则IndexError;

使用函数len()查看长度;使用del可以删除列表中的项,eg: del l[0] # 如果超出范围,则IndexError

     list函数如下:

append(value)  ---向列表尾添加项value l = [1, 2, 2] l.append(3) #[1, 2, 2, 3]  count(value)  ---返回列表中值为value的项的个数 l = [1, 2, 2] print( l.count(2)) # 2  extend(list2)  ---向列表尾添加列表list2 l = [1, 2, 2] l1 = [10, 20] l.extend(l1) print (l )  #[1, 2, 2, 10, 20]  index(value, [start, [stop]])  ---返回列表中第一个出现的值为value的索引,如果没有,则异常 ValueError  l = [1, 2, 2] a = 4 try:    print( l.index(a)) except ValueError, ve:    print( "there is no %d in list" % a     insert(i, value))  ---向列表i位置插入项vlaue,如果没有i,则添加到列表尾部  l = [1, 2, 2]  l.insert(1, 100) print l #[1, 100, 2, 2]  l.insert(100, 1000) print l #[1, 100, 2, 2, 1000]  pop([i])  ---返回i位置项,并从列表中删除;如果不提供参数,则删除最后一个项;如果提供,但是i超出索引范围,则异常IndexError  l = [0, 1, 2, 3, 4, 5]  print( l.pop()) # 5 print( l) #[0, 1, 2, 3, 4]  print( l.pop(1)) #1 print( l) #[0, 2, 3, 4] try:    l.pop(100) except IndexError, ie:    print( "index out of range")  remove(value)  ---删除列表中第一次出现的value,如果列表中没有vlaue,则异常ValueError  l = [1, 2, 3, 1, 2, 3]  l.remove(2) print (l )#[1, 3, 1, 2, 3] try:    l.remove(10) except ValueError, ve:    print ("there is no 10 in list")  reverse()  ---列表反转  l = [1, 2, 3] l.reverse() print (l) #[3, 2, 1]  sort(cmp=None, key=None, reverse=False)  ---列表排序  l5 = [10, 5, 20, 1, 30] l5.sort() print( l5) #[1, 5, 10, 20, 30]  l6 = ["bcd", "abc", "cde", "bbb"] l6.sort(cmp = lambda s1, s2: cmp(s1[0],s2[1])) print( l6) #['abc', 'bbb', 'bcd', 'cde']  l7 = ["bcd", "abc", "cde", "bbb", "faf"] l7.sort(key = lambda s: s[1]) print (l7) #['faf', 'abc', 'bbb', 'bcd', 'cde']

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 202,905评论 5 476
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,140评论 2 379
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 149,791评论 0 335
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,483评论 1 273
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,476评论 5 364
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,516评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,905评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,560评论 0 256
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,778评论 1 296
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,557评论 2 319
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,635评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,338评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,925评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,898评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,142评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,818评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,347评论 2 342