Python基础知识梳理,码住就是记住!

126 阅读7分钟

1、 Python 简介

Python 是一个高层次的结合了解释性、编译性、互动性和面向对象的脚本语言。其语法简单明了,结构紧凑,适用于从小型脚本到大型项目的开发。

2、 为什么要学 Python?

  • 易读性: Python 代码的清晰度是其核心优势,大大提高代码的可维护性。
  • 多用途: 无论是 Web 开发、数据分析、人工智能还是网络编程,Python 都能胜任。
  • 强大的生态: 有数以万计的库和框架可供选择,提供所有主要的商业数据库的接口。

3、 Python 的基础语法

3.1 数据类型

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

(1)数字(Number)

整数(int): 10、-10

浮点数(float):13.14、-13.14

复数(complex):4+3j

布尔(bool):True、False

(2)字符串(String)

描述文本:"Hello, World!"

(3)列表(List)

有序的可变序列:["apple", "banana", "cherry"]

(4)元组(Tuple)

有序的不可变序列:("red", "green", "blue")

(5)字典(Dictionary)

无序Key-Value集合:{"name": "John", "age": 30}

3.2 数学运算

运算符功能示例结果
+加法1+12
-减法2-11
*乘法2*48
/除法10/33.3333333333....
//整除10//33
%求余10%31
**次方2**38

3.3 比较运算

运算符功能示例结果
==等于1==2False
!=不等于1!=2True
>大于1>1False
>=大于等于1>=1True
<小于1<1False
<=小于等于1<=1True

3.4 条件运算

运算符功能示例结果
and与:两边条件都为True时,结果也返回True1==2 and 2==2False
or或:两边条件只要有一个是True,结果就返回True1==2 or 2==2True
not取反not 1==2True

4、 Python语句

4.1 if 条件语句

if 判断条件1:
    执行语句1……
elif 判断条件2:
    执行语句2……
else:
    执行语句3……

4.2 While 循环语句

count = 0
while (count < 3):
    print 'The count is:', count
    count = count + 1
print "Good bye!"

执行结果:
The count is: 0
The count is: 1
The count is: 2
Good bye!

4.3 for 循环语句

for letter in 'Python':
    print("当前字母: %s" % letter)
    
fruits = ['banana', 'apple', 'mango']
for fruit in fruits:
    print ('当前水果: %s'% fruit)

print ("Good bye!")

执行结果:
当前字母: P
当前字母: y
当前字母: t
当前字母: h
当前字母: o
当前字母: n
当前水果: banana
当前水果: apple
当前水果: mango
Good bye!

4.4 pass 语句

pass 是空语句,是为了保持程序结构的完整性。

pass 不做任何事情,一般用做占位语句。

5、日期和时间

import time # 引入time模块
ticks = time.time()
print "当前时间戳为:", ticks

执行结果:
当前时间戳为: 1459994552.51

5.1 时间元祖(struct_time元组)

序号属性字段
0tm_year4位数年2008
1tm_mon1 到 12
2tm_mday1到31
3tm_hour小时0到23
4tm_min分钟0到59
5tm_sec0到61 (60或61 是闰秒)
6tm_wday一周的第几日0到6 (0是周一)
7tm_yday一年的第几日1到366 (儒略历)
8tm_isdst夏令时-1, 0, 1, -1是决定是否为夏令时的旗帜

5.2 获取当前时间

time.localtime()

import time

localtime = time.localtime(time.time())
print "本地时间为 :", localtime

执行结果:
本地时间为 : 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)

5.3 获取格式化的时间

time.asctime()

import time

localtime = time.asctime(time.localtime(time.time()))
print "本地时间为 :", localtime

执行结果:
本地时间为 : Thu Apr  7 10:05:21 2016

5.4 格式化日期

time.strftime()

time.mktime()

import time

# 格式化成2016-03-20 11:45:39形式
print time.strftime("%Y-%m-%d %H:%M:%S", time.localtime())

# 格式化成Sat Mar 28 22:24:24 2016形式
print time.strftime("%a %b %d %H:%M:%S %Y", time.localtime())

# 将格式字符串转换为时间戳 a = "Sat Mar 28 22:24:24 2016" 
print time.mktime(time.strptime(a,"%a %b %d %H:%M:%S %Y"))

执行结果:
2016-04-07 10:25:09
Thu Apr 07 10:25:09 2016
1459175064.0

6、函数

  • 函数代码块以 def 关键词开头,后接函数标识符名称和圆括号 ()
  • 任何传入参数和自变量必须放在圆括号中间。圆括号之间可以用于定义参数。
  • 函数的第一行语句可以选择性地使用文档字符串—用于存放函数说明。
  • 函数内容以冒号起始,并且缩进。
  • return [表达式]  结束函数,选择性地返回一个值给调用方。不带表达式的return相当于返回 None。
# 定义函数
def printme( str ):
   "打印任何传入的字符串"
   print str
   return
 
# 调用函数
printme("我要调用用户自定义函数!")
printme("再次调用同一函数")

7、模块

7.1 import 语句

模块定义好后,我们可以使用 import 语句来引入模块,语法如下:

import module1[, module2[,... moduleN]]

一个模块只会被导入一次,不管你执行了多少次import。这样可以防止导入模块被一遍又一遍地执行。

7.2 from…import 语句

Python 的 from 语句让你从模块中导入一个指定的部分到当前命名空间中。语法如下:

from modname import name1[, name2[, ... nameN]]

例如,要导入模块 fib 的 fibonacci 函数,使用如下语句:

from fib import fibonacci

这个声明不会把整个 fib 模块导入到当前的命名空间中,它只会将 fib 里的 fibonacci 单个引入到执行这个声明的模块的全局符号表。

7.3 from…import* 语句

把一个模块的所有内容全都导入到当前的命名空间也是可行的,只需使用如下声明:

from modname import *

这提供了一个简单的方法来导入一个模块中的所有项目。然而这种声明不该被过多地使用。

例如我们想一次性引入 math 模块中所有的东西,语句如下:

from math import *

8、 File 方法

8.1 open() 方法

Python open() 方法用于打开一个文件,并返回文件对象,在对文件进行处理过程都需要使用到这个函数,如果该文件无法被打开,会抛出 OSError。

注意: 使用 open() 方法一定要保证关闭文件对象,即调用 close() 方法。

open() 函数常用形式是接收两个参数:文件名(file)和模式(mode)。

open(file, mode='r')

# 的语法格式为:
open(file, mode='r', buffering=-1, encoding=None, errors=None, newline=None, closefd=True, opener=None)

参数说明:

  • file: 必需,文件路径(相对或者绝对路径)。
  • mode: 可选,文件打开模式
  • buffering: 设置缓冲
  • encoding: 一般使用utf8
  • errors: 报错级别
  • newline: 区分换行符
  • closefd: 传入的file参数类型
  • opener: 设置自定义开启器,开启器的返回值必须是一个打开的文件描述符。

8.2 file 对象

序号方法描述
1file.close()关闭文件。关闭后文件不能再进行读写操作。
2file.flush()刷新文件内部缓冲,直接把内部缓冲区的数据立刻写入文件, 而不是被动的等待输出缓冲区写入。
3file.fileno()返回一个整型的文件描述符(file descriptor FD 整型), 可以用在如os模块的read方法等一些底层操作上。
4file.isatty()如果文件连接到一个终端设备返回 True,否则返回 False。
5file.next()返回文件下一行。
6file.read([size])从文件读取指定的字节数,如果未给定或为负则读取所有。
7file.readline([size])读取整行,包括 "\n" 字符。
8file.readlines([sizeint])读取所有行并返回列表,若给定sizeint>0,则是设置一次读多少字节,这是为了减轻读取压力。
9file.seek(offset[, whence])设置文件当前位置。
10file.tell()返回文件当前位置。
11file.truncate([size])截取文件,截取的字节通过size指定,默认为当前文件位置
12file.write(str)将字符串写入文件,返回的是写入的字符长度。
13file.writelines(sequence)向文件写入一个序列字符串列表,如果需要换行则要自己加入每行的换行符。