当前位置:   article > 正文

Python基础快速入门_python 快速入门

python 快速入门

一、中文编码问题

带大家过一遍菜鸟学python的基础内容

 二、Python基础语法

1、Python 中的标识符是区分大小写的。

以下划线开头的标识符是有特殊意义的。以单下划线开头 _foo 的代表不能直接访问的类属性,需通过类提供的接口进行访问,不能用 from xxx import * 而导入。

以双下划线开头的 __foo 代表类的私有成员,以双下划线开头和结尾的 __foo__ 代表 Python 里特殊方法专用的标识,如 __init__() 代表类的构造函数。

Python 可以同一行显示多条语句,方法是用分号 ; 分开,如:

  1. >>> print ('hello');print ('runoob');
  2. hello
  3. runoob

 单引号,双引号表示字符串,三引号可以用于多行注释,单个注释使用:# 

  

标准数据类型

在内存中存储的数据可以有多种类型。

例如,一个人的年龄可以用数字来存储,他的名字可以用字符来存储。

Python 定义了一些标准类型,用于存储各种类型的数据。

Python有五个标准的数据类型:

  • Numbers(数字)
  • String(字符串)
  • List(列表)
  • Tuple(元组)
  • Dictionary(字典)

数字类型:

  • 长整型也可以使用小写 l,但是还是建议您使用大写 L,避免与数字 1 混淆。Python使用 L 来显示长整型。
  • Python 还支持复数,复数由实数部分和虚数部分构成,可以用 a + bj,或者 complex(a,b) 表示, 复数的实部 a 和虚部 b 都是浮点型。

Python字符串

字符串或串(String)是由数字、字母、下划线组成的一串字符。

  1. print str # 输出完整字符串
  2. print str[0] # 输出字符串中的第一个字符
  3. print str[2:5] # 输出字符串中第三个至第六个之间的字符串
  4. print str[2:] # 输出从第三个字符开始的字符串
  5. print str + "TEST" # 输出连接的字符串
  6. print str+str(lst) # 输出与其他类型数据拼接后的字符串

Python列表

List(列表) 是 Python 中使用最频繁的数据类型。

列表可以完成大多数集合类的数据结构实现。它支持字符,数字,字符串甚至可以包含列表(即嵌套)。

列表用 [ ] 标识,是 python 最通用的复合数据类型。

列表中值的切割也可以用到变量 [头下标:尾下标] ,就可以截取相应的列表,从左到右索引默认 0 开始,从右到左索引默认 -1 开始,下标可以为空表示取到头或尾。

  1. #!/usr/bin/python
  2. # -*- coding: UTF-8 -*-
  3. list = [ 'runoob', 786 , 2.23, 'john', 70.2 ]
  4. tinylist = [123, 'john']
  5. print list # 输出完整列表
  6. print list[0] # 输出列表的第一个元素
  7. print list[1:3] # 输出第二个至第三个元素
  8. print list[2:] # 输出从第三个开始至列表末尾的所有元素
  9. print tinylist * 2 # 输出列表两次
  10. print list + tinylist # 打印组合的列表
  1. ['runoob', 786, 2.23, 'john', 70.2]
  2. runoob
  3. [786, 2.23]
  4. [2.23, 'john', 70.2]
  5. [123, 'john', 123, 'john']
  6. ['runoob', 786, 2.23, 'john', 70.2, 123, 'john']

Python 元组

元组是另一个数据类型,类似于 List(列表)。

元组用 () 标识。内部元素用逗号隔开。但是元组不能二次赋值,相当于只读列表。

  1. #!/usr/bin/python
  2. # -*- coding: UTF-8 -*-
  3. tuple = ( 'runoob', 786 , 2.23, 'john', 70.2 )
  4. tinytuple = (123, 'john')
  5. print tuple # 输出完整元组
  6. print tuple[0] # 输出元组的第一个元素
  7. print tuple[1:3] # 输出第二个至第四个(不包含)的元素
  8. print tuple[2:] # 输出从第三个开始至列表末尾的所有元素
  9. print tinytuple * 2 # 输出元组两次
  10. print tuple + tinytuple # 打印组合的元组

以下对元组的操作是无效的,因为元组不允许更新,而列表是允许更新的:

  1. #!/usr/bin/python
  2. # -*- coding: UTF-8 -*-
  3. tuple = ( 'runoob', 786 , 2.23, 'john', 70.2 )
  4. list = [ 'runoob', 786 , 2.23, 'john', 70.2 ]
  5. tuple[2] = 1000 # 元组中是非法应用
  6. list[2] = 1000 # 列表中是合法应用
  7. 元组是不允许更新的,所以以上代码执行错误,结果如下:
  8. Traceback (most recent call last):
  9. File "test.py", line 6, in <module>
  10. tuple[2] = 1000 # 元组中是非法应用
  11. TypeError: 'tuple' object does not support item assignment

Python 字典

字典(dictionary)是除列表以外python之中最灵活的内置数据结构类型。列表是有序的对象集合,字典是无序的对象集合。

两者之间的区别在于:字典当中的元素是通过键来存取的,而不是通过偏移存取。

字典用"{ }"标识。字典由索引(key)和它对应的值value组成。

  1. #!/usr/bin/python
  2. # -*- coding: UTF-8 -*-
  3. dict = {}
  4. dict['one'] = "This is one"
  5. dict[2] = "This is two"
  6. tinydict = {'name': 'runoob','code':6734, 'dept': 'sales'}
  7. print dict['one'] # 输出键为'one' 的值
  8. print dict[2] # 输出键为 2 的值
  9. print tinydict # 输出完整的字典
  10. print tinydict.keys() # 输出所有键
  11. print tinydict.values() # 输出所有值

输出结果: 

  1. This is one
  2. This is two
  3. {'dept': 'sales', 'code': 6734, 'name': 'runoob'}
  4. ['dept', 'code', 'name']
  5. ['sales', 6734, 'runoob']

Python数据类型转换

有时候,我们需要对数据内置的类型进行转换,数据类型的转换,你只需要将数据类型作为函数名即可。

以下几个内置的函数可以执行数据类型之间的转换。这些函数返回一个新的对象,表示转换的值。

Python算术运算符

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

 相当于:&&        ||        !

 

  1. # 例2:elif用法
  2. num = 5
  3. if num == 3: # 判断num的值
  4. print 'boss'
  5. elif num == 2:
  6. print 'user'
  7. elif num == 1:
  8. print 'worker'
  9. elif num < 0: # 值小于零时输出
  10. print 'error'
  11. else:
  12. print 'roadman' # 条件均不成立时输出

Python for 循环语句

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

语法:

for循环的语法格式如下:

  1. for iterating_var in sequence:
  2. statements(s)
  1. for letter in 'Python': # 第一个实例
  2. print("当前字母: %s" % letter)
  3. fruits = ['banana', 'apple', 'mango']
  4. for fruit in fruits: # 第二个实例
  5. print ('当前水果: %s'% fruit)

 

通过序列索引迭代

另外一种执行循环的遍历方式是通过索引,如下实例:

  1. fruits = ['banana', 'apple', 'mango']
  2. for index in range(len(fruits)):
  3. print ('当前水果 : %s' % fruits[index])

总和小案例:

  1. #!/usr/bin/python
  2. # -*- coding: UTF-8 -*-
  3. for num in range(10,20): # 迭代 10 到 20 之间的数字
  4. for i in range(2,num): # 根据因子迭代
  5. if num%i == 0: # 确定第一个因子
  6. j=num/i # 计算第二个因子
  7. print ('%d 等于 %d * %d' % (num,i,j))
  8. break # 跳出当前循环
  9. else: # 循环的 else 部分
  10. print ('%d 是一个质数' % num)

Python 支持四种不同的数值类型:

  • 整型(Int) - 通常被称为是整型或整数,是正或负整数,不带小数点。
  • 长整型(long integers) - 无限大小的整数,整数最后是一个大写或小写的L。
  • 浮点型(floating point real values) - 浮点型由整数部分与小数部分组成,浮点型也可以使用科学计数法表示(2.5e2 = 2.5 x 102 = 250)
  • 复数(complex numbers) - 复数由实数部分和虚数部分构成,可以用a + bj,或者complex(a,b)表示, 复数的实部a和虚部b都是浮点型。

Python math 模块、cmath 模块

Python 中数学运算常用的函数基本都在 math 模块、cmath 模块中。

Python math 模块提供了许多对浮点数的数学运算函数。

Python cmath 模块包含了一些用于复数运算的函数。

cmath 模块的函数跟 math 模块函数基本一致,区别是 cmath 模块运算的是复数,math 模块运算的是数学运算。

要使用 math 或 cmath 函数必须先导入:import math

查看 math 查看包中的内容:

  1. >>> import math
  2. >>> dir(math)
  3. ['__doc__', '__file__', '__loader__', '__name__', '__package__', '__spec__', 'acos', 'acosh', 'asin', 'asinh', 'atan', 'atan2', 'atanh', 'ceil', 'copysign', 'cos', 'cosh', 'degrees', 'e', 'erf', 'erfc', 'exp', 'expm1', 'fabs', 'factorial', 'floor', 'fmod', 'frexp', 'fsum', 'gamma', 'gcd', 'hypot', 'inf', 'isclose', 'isfinite', 'isinf', 'isnan', 'ldexp', 'lgamma', 'log', 'log10', 'log1p', 'log2', 'modf', 'nan', 'pi', 'pow', 'radians', 'sin', 'sinh', 'sqrt', 'tan', 'tanh', 'tau', 'trunc']
  4. >>>

 官方预告

Python 字符串

字符串是 Python 中最常用的数据类型。我们可以使用引号 ( ' 或 " ) 来创建字符串。

创建字符串很简单,只要为变量分配一个值即可。例如:

  1. var1 = 'Hello World!'
  2. var2 = "Python Runoob"

 

Python 字符串拼接

我们可以对字符串进行截取并与其他字符串进行拼接,如下实例:

Python 三引号

Python 中三引号可以将复杂的字符串进行赋值。

Python 三引号允许一个字符串跨多行,字符串中可以包含换行符、制表符以及其他特殊字符。

三引号的语法是一对连续的单引号或者双引号(通常都是成对的用)。

三引号让程序员从引号和特殊字符串的泥潭里面解脱出来,自始至终保持一小块字符串的格式是所谓的WYSIWYG(所见即所得)格式的。

一个典型的用例是,当你需要一块HTML或者SQL时,这时当用三引号标记,使用传统的转义字符体系将十分费神。

  1. errHTML = '''
  2. <HTML><HEAD><TITLE>
  3. Friends CGI Demo</TITLE></HEAD>
  4. <BODY><H3>ERROR</H3>
  5. <B>%s</B><P>
  6. <FORM><INPUT TYPE=button VALUE=Back
  7. ONCLICK="window.history.back()"></FORM>
  8. </BODY></HTML>
  9. '''
  10. cursor.execute('''
  11. CREATE TABLE users (
  12. login VARCHAR(8),
  13. uid INTEGER,
  14. prid INTEGER)
  15. ''')

Python 的字符串内建函数

提供了很多方便处理字符串的接口:

这些方法实现了 string 模块的大部分方法,如下表所示列出了目前字符串内建支持的方法,所有的方法都包含了对 Unicode 的支持,有一些甚至是专门用于 Unicode 的。

Python 列表(List)

序列都可以进行的操作包括索引,切片,加,乘,检查成员。

此外,Python已经内置确定序列的长度以及确定最大和最小的元素的方法。

列表是最常用的Python数据类型,它可以作为一个方括号内的逗号分隔值出现。

列表的数据项不需要具有相同的类型

创建一个列表,只要把逗号分隔的不同的数据项使用方括号括起来即可。如下所示:

  1. list1 = ['physics', 'chemistry', 1997, 2000]
  2. list2 = [1, 2, 3, 4, 5 ]
  3. list3 = ["a", "b", "c", "d"]

 

Python 元组

Python 的元组与列表类似,不同之处在于元组的元素不能修改。

元组使用小括号,列表使用方括号。

元组创建很简单,只需要在括号中添加元素,并使用逗号隔开即可。

如下实例:

  1. tup1 = ('physics', 'chemistry', 1997, 2000)
  2. tup2 = (1, 2, 3, 4, 5 )
  3. tup3 = "a", "b", "c", "d"

Python 字典(Dictionary)

字典是另一种可变容器模型,且可存储任意类型对象。

字典的每个键值 key:value 对用冒号 : 分割,每个键值对之间用逗号 , 分割,整个字典包括在花括号 {} 中 ,格式如下所示:

d = {key1 : value1, key2 : value2 }

注意:dict 作为 Python 的关键字和内置函数,变量名不建议命名为 dict

键一般是唯一的,如果重复最后的一个键值对会替换前面的,值不需要唯一。

  1. >>> tinydict = {'a'1'b'2'b''3'}
  2. >>> tinydict['b']
  3. '3'
  4. >>> tinydict
  5. {'a'1'b''3'}

值可以取任何数据类型,但键必须是不可变的,如字符串,数字或元组。

一个简单的字典实例:

  1. tinydict = {'Alice': '2341', 'Beth': '9102', 'Cecil': '3258'}
  2. tinydict1 = { 'abc': 456 }
  3. tinydict2 = { 'abc': 123, 98.6: 37 }

 

Python字典包含了以下内置方法:

 

Python 日期和时间

Python 程序能用很多方式处理日期和时间,转换日期格式是一个常见的功能

Python 提供了一个 time 和 calendar 模块可以用于格式化日期和时间。

时间间隔是以秒为单位的浮点小数。

每个时间戳都以自从1970年1月1日午夜(历元)经过了多长时间来表示。

获取当前时间

从返回浮点数的时间戳方式向时间元组转换,只要将浮点数传递给如localtime之类的函数。

  1. #!/usr/bin/python
  2. # -*- coding: UTF-8 -*-
  3. import time
  4. localtime = time.localtime(time.time())
  5. print "本地时间为 :", localtime
  6. 以上实例输出结果:
  7. 本地时间为 : time.struct_time(tm_year=2016, tm_mon=4, tm_mday=7, tm_hour=10, tm_min=3, tm_sec=27, tm_wday=3, tm_yday=98, tm_isdst=0)

Time 模块

Time 模块包含了以下内置函数,既有时间处理的,也有转换时间格式的:

日历(Calendar)模块

此模块的函数都是日历相关的,例如打印某月的字符月历。

星期一是默认的每周第一天,星期天是默认的最后一天。更改设置需调用calendar.setfirstweekday()函数。模块包含了以下内置函数:

Python 函数

函数是组织好的,可重复使用的,用来实现单一,或相关联功能的代码段。

函数能提高应用的模块性,和代码的重复利用率。你已经知道Python提供了许多内建函数,比如print()。但你也可以自己创建函数,这被叫做用户自定义函数。

参数传递

在 python 中,类型属于对象,变量是没有类型的:

  1. a=[1,2,3]
  2. a="Runoob"

以上代码中,[1,2,3] 是 List 类型,"Runoob" 是 String 类型,而变量 a 是没有类型,她仅仅是一个对象的引用(一个指针),可以是 List 类型对象,也可以指向 String 类型对象。

可更改(mutable)与不可更改(immutable)对象

在 python 中,strings, tuples, 和 numbers 是不可更改的对象,而 list,dict 等则是可以修改的对象。

  • 不可变类型:变量赋值 a=5 后再赋值 a=10,这里实际是新生成一个 int 值对象 10,再让 a 指向它,而 5 被丢弃,不是改变a的值,相当于新生成了a。

  • 可变类型:变量赋值 la=[1,2,3,4] 后再赋值 la[2]=5 则是将 list la 的第三个元素值更改,本身la没有动,只是其内部的一部分值被修改了。

python 函数的参数传递:

  • 不可变类型:类似 c++ 的值传递,如 整数、字符串、元组。如fun(a),传递的只是a的值,没有影响a对象本身。比如在 fun(a)内部修改 a 的值,只是修改另一个复制的对象,不会影响 a 本身。

  • 可变类型:类似 c++ 的引用传递,如 列表,字典。如 fun(la),则是将 la 真正的传过去,修改后fun外部的la也会受影响

python 中一切都是对象,严格意义我们不能说值传递还是引用传递,我们应该说传不可变对象和传可变对象。

传可变对象实例

  1. #!/usr/bin/python
  2. # -*- coding: UTF-8 -*-
  3. # 可写函数说明
  4. def changeme( mylist ):
  5. "修改传入的列表"
  6. mylist.append([1,2,3,4])
  7. print "函数内取值: ", mylist
  8. return
  9. # 调用changeme函数
  10. mylist = [10,20,30]
  11. changeme( mylist )
  12. print "函数外取值: ", mylist

实例中传入函数的和在末尾添加新内容的对象用的是同一个引用,故输出结果如下:

函数内取值:  [10, 20, 30, [1, 2, 3, 4]]
函数外取值:  [10, 20, 30, [1, 2, 3, 4]]

参数

以下是调用函数时可使用的正式参数类型:

  • 必备参数
  • 关键字参数
  • 默认参数
  • 不定长参数

关键字参数

关键字参数和函数调用关系紧密,函数调用使用关键字参数来确定传入的参数值。

使用关键字参数允许函数调用时参数的顺序与声明时不一致,因为 Python 解释器能够用参数名匹配参数值。

  1. #!/usr/bin/python
  2. # -*- coding: UTF-8 -*-
  3. #可写函数说明
  4. def printinfo( name, age ):
  5. "打印任何传入的字符串"
  6. print "Name: ", name
  7. print "Age ", age
  8. return
  9. #调用printinfo函数
  10. printinfo( age=50, name="miki" )

以上实例输出结果:

Name:  miki
Age  50

默认参数

调用函数时,默认参数的值如果没有传入,则被认为是默认值。下例会打印默认的age,如果age没有被传入:

  1. #!/usr/bin/python
  2. # -*- coding: UTF-8 -*-
  3. #可写函数说明
  4. def printinfo( name, age = 35 ):
  5. "打印任何传入的字符串"
  6. print "Name: ", name
  7. print "Age ", age
  8. return
  9. #调用printinfo函数
  10. printinfo( age=50, name="miki" )
  11. printinfo( name="miki" )

以上实例输出结果:

Name:  miki
Age  50
Name:  miki
Age  35

不定长参数

你可能需要一个函数能处理比当初声明时更多的参数。这些参数叫做不定长参数,和上述2种参数不同,声明时不会命名。基本语法如下:

  1. def functionname([formal_args,] *var_args_tuple ):
  2. "函数_文档字符串"
  3. function_suite
  4. return [expression]

加了星号(*)的变量名会存放所有未命名的变量参数。不定长参数实例如下:

  1. #!/usr/bin/python
  2. # -*- coding: UTF-8 -*-
  3. # 可写函数说明
  4. def printinfo( arg1, *vartuple ):
  5. "打印任何传入的参数"
  6. print "输出: "
  7. print arg1
  8. for var in vartuple:
  9. print var
  10. return
  11. # 调用printinfo 函数
  12. printinfo( 10 )
  13. printinfo( 70, 60, 50 )

以上实例输出结果:

输出:
10
输出:
70
60
50

匿名函数

python 使用 lambda 来创建匿名函数。

  • lambda只是一个表达式,函数体比def简单很多。
  • lambda的主体是一个表达式,而不是一个代码块。仅仅能在lambda表达式中封装有限的逻辑进去。
  • lambda函数拥有自己的命名空间,且不能访问自有参数列表之外或全局命名空间里的参数。
  • 虽然lambda函数看起来只能写一行,却不等同于C或C++的内联函数,后者的目的是调用小函数时不占用栈内存从而增加运行效率。
  1. #!/usr/bin/python
  2. # -*- coding: UTF-8 -*-
  3. # 可写函数说明
  4. sum = lambda arg1, arg2: arg1 + arg2
  5. # 调用sum函数
  6. print "相加后的值为 : ", sum( 10, 20 )
  7. print "相加后的值为 : ", sum( 20, 20 )

以上实例输出结果:

相加后的值为 :  30
相加后的值为 :  40
声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:【wpsshop博客】
推荐阅读
相关标签
  

闽ICP备14008679号