Python基础知识
Python是一种可以撰写跨平台应用程序的解释型、面向对象的高级程序设计语言。Python的设计哲学强调代码的可读性和简洁的语法,尤其是使用空格缩进划分代码块,而非使用大括号或者关键词。
一、python命名规则
数据处理最基本的对象就是变量和常数,变量的值可改变,常数则是固定不变的数据。变量命名规则如下:
- 第一个字符必须是英文字母、下划线(“_”)或中文,其余字符可以搭配其他的大小写英文字母、数字、下划线或中文。
- 不能使用Python内置的关键字
- 变量名称必须区分大小写字母。
1.1 赋值
1.赋值(支持多个变量具有相同的值)如:a=b=1
2.想要在同一行中给多个变量赋值时,可以使用“,”来分割变量
例如:a, b, c = 80, 60, 20
3.Python也允许用户以“;”来分割表达式,以便连续声明不同的程序语句
例如:a = 10; b = 20
4.print指令也支持格式化功能,主要是由%字符与后面的格式化字符串来控制输出格式,语法如下:print(“项目”%(参数行))
name="张三"; score=100
print("%s的语文成绩是%d"%(name,score)) #输出:张三的语文成绩是100
1.2 转义字符的输出
print()函数除了输出一般的字符串或字符外,也可以在字符前加上反斜杠“\”来通知编译程序将后面的字符当成一个特殊字符,形成转义字符。例如’\n’是表示换行功能的“转义字符”
转义字符 | 含义 |
---|---|
\t | 水平制表字符 |
\n | 换行符 |
\" | 显示双引号 |
\’ | 显示单引号 |
\\ | 显示反斜杠 |
1.3 input()输入函数
a = input("输出一个数")
print(a)
#运行结果runfile('C:/Users/ypzhao/untitled0.py', wdir='C:/Users/ypzhao')
输出一个数12
12
1.4 运算符与表达式
1.算术运算符:加减乘除
2.符合赋值运算符:由赋值运算符“=”与其他运算符结合而成,也就是“=”右方的源操作数必须有一个和左方接受赋值数值的操作数相同,例如:
x += 1 | #即x=x+1 |
---|---|
x -= 2 | #即x=x-2 |
x *= 6 | #即x=x*6 |
x /= 2 | #即x=x/2 |
x **=2 | #即x=x**2 |
x //= 2 | #即x=x//2 |
x %= 2 | #即x=x%2 |
3.关系运算符:
用来比较两个数值之间的关系,如果该关系运算结果成立,就返回真值(True);若不成立,则返回假值(False)
运算符 | 说明 |
---|---|
!= a不等于b | 返回True |
== a等于b | 返回True |
4.逻辑运算符
主要有3个运算符:not、and、or,它们的功能分别说明如下:
#程序文件Pz1_5.py
print (3>2) and (2>1) #输出True
a = 13
value = (a % 4 ==0) and (a % 3 == 0)
print(value) #输出False
#运行结果:
runfile('C:/Users/ypzhao/untitled0.py', wdir='C:/Users/ypzhao')
True
False
二、流程控制
Python语言包含if、for、while3种流程控制结构。
2.1 if语句:
a, b = eval(input("请输入a,b两个数:")) #把字符串转化为数值
if a>=b:
print("最大数为:",a)
else:
print("最大数为:",b)
'''
运行结果:
请输入a,b两个数:1,2
最大数为: 2
'''
2.2 for 循环
Python提供了range()函数来搭配使用,主要功能是建立整数序列,语法如下:
range([初始值],终值,[步长]),不包括终值,这里[ ]表示可选项。初始值的默认值为0,步长的默认值为1。
如:
print(list(range(1,10,2)))
#运行结果为:[1, 3, 5, 7, 9]
print(list(range(10)))
#运行结果:[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
2.3 while循环
while语句的一般格式为:
while 条件表达式:
语句块1
else:
语句块2
三、复合数据类型
列表、元组和字符串是有顺序的数据元素的集合体,称为序列。
3.1 列表
“列表是一种序列”指的是可以通过索引(或下标)的方式实现列表元素的获取
1、Python中的索引都是用英文状态下的方括号表示,对于位置索引来说,都是从0开始。索引含有正向索引、负向索引和切片索引
2、切片索引:print(a[start: end: step])
若三者参数中没有标出,即为无限索引:可以用[::step]表示。第一个冒号是指从列表的第一个元素开始获取;第二个冒号是指到最后一个元素结束(包含最后一个元素值)。
a = list(range(10))
#正向索引
print(a[0])
# 负向索引
print(a[-1])
# 切片索引
print(a[1:9:2])
print(a[::])
print(a[::2])
print(a[:2:])
'''
运行结果
0
9
[1, 3, 5, 7]
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
[0, 2, 4, 6, 8]
[0, 1]
'''
3、列表元素的增加
可使用Python提供的三种方法,即append、extend和insert,
(1)append
append是列表所特有的方法,每次往列表的尾部增加一个元素
(2)extend
extend方法可以往列表的尾部添加多个元素
(3)insert
insert方法可以在列表的指定位置插入新值,该方法需要传递两个参数:第一个参数是索引(或下标),表示插入的位置;第二个参数是具体插入的值,既可以是一个常量,也可以是一个列表,如果是列表,就是以嵌套列表的形式插入。
4、列表元素的删除
列表元素的删除有三种方法,分别是pop、remove和clear。
(1)pop()
pop可以完成列表元素两种方式的删除,pop()删除列表的末尾元素,pop(a)删除列表索引a位置的元素。
(2)remove()
remove方法删除指定的元素。如果列表中有多个与要删除元素相同的元素,则删除从左边数的第一个元素。如果要删除的元素在列表中不存在,则报错。
(3)clear()
清空列表
a = list(range(4))
a.append(12)
print(a)
a.extend([1,2,3])
print(a)
a.insert(0, 11)
print(a)
a.insert(0,[20,21,22])
print(a)
a.pop()
print(a)
a.remove(1)
print(a)
a.clear()
print(a)
'''运行结果
[0, 1, 2, 3, 12]
[0, 1, 2, 3, 12, 1, 2, 3]
[11, 0, 1, 2, 3, 12, 1, 2, 3]
[[20, 21, 22], 11, 0, 1, 2, 3, 12, 1, 2, 3]
[[20, 21, 22], 11, 0, 1, 2, 3, 12, 1, 2]
[[20, 21, 22], 11, 0, 2, 3, 12, 1, 2]
[]
'''
3.2 tuple元组、dict字典和set集合
1、元组不可变,不可被修改
a =(1,2,3)与a=1,2,3表征的一样
3.3 字典
创建一个空字典dict = { }
dict={'姓名':'张三','年龄':18, '子女':{'子':'张四','女':'王二'} } #构造字典
print(dict)
print(dict['年龄'])
dict['户籍']='贵州' #新增元素
print(dict)
dict.pop('子女') #删除元素
print(dict)
'''
{'姓名': '张三', '年龄': 18, '子女': {'子': '张四', '女': '王二'}}
18
{'姓名': '张三', '年龄': 18, '子女': {'子': '张四', '女': '王二'}, '户籍': '贵州'}
{'姓名': '张三', '年龄': 18, '户籍': '贵州'}
'''
3.4 set集合
无序,创建一个空集合 a = set()
#将字符串转换为集合
a=set('ypzhao')
print(a)
#去重
b=[1,2,2,2,3,5,6,6]
c=set(b)
print(list(c))
'''运行结果
{'z', 'h', 'y', 'o', 'p', 'a'}
[1, 2, 3, 5, 6]
'''
4、集合的交并补
5、string字符串的操作
(1)eval()函数
与字符串有关的一个重要函数是eval,该函数的作用是把字符串的内容作为对应的Python语句来执行,例如:
x='1+2'
eval(x) #输出:3
str = "ypzhaozhao"
# 字符串长度
print(len(str))
print((str.count('z')))
'''运行结果10,2'''
(2)find()函数
find()从字符串中查找子字符串,返回值为子字符串所在位置的最左端索引。如果没有找到则返回-1。扩展的rfind()方法表示从右向左查找。
例如,下面获取字符串“def”的位置,位于第3个位置(从0开始计数)。
str = "ypzhaozhao"
ind=str.find('zhaoz') #输出:2
(3)split()函数
该函数用于将字符串分割成序列,返回分割后的字符串列表。如果不提供分隔符,那么程序将会把所有空格作为分隔符。
例如:
str = "ypz ha o z hao"
ind=str.split()
print(ind)#输出['ypz', 'ha', 'o', 'z', 'hao']
(4)strip()函数去除字符串开头和结尾的空格
str = " ypz ha o z hao "
ind=str.strip()
print(ind)#运行结果:ypz ha o z hao
四、函数
1、自定义函数的语法如下:
def Name(formalParameters):
Body
(1)Name是函数名,可以是任何有效的Python标识符。
(2)formalParameters是形式参数(简称形参)列表,在调用该函数时通过给形参赋值来传递调用值,形参可以有多个、一个或零个参数组成,当有多个参数时各个参数由逗号分隔;圆括号是必不可少的,即使没有参数也不能没有它,括号外面的冒号也不能少。
def greet():
print("hello,world")
# 调用函数
greet()
#运行结果:hello,world
2、函数的嵌套调用:
def greet():
print("How are you?")
def name():
greet()
print("I am fine.")
name()
'''运行结果:How are you?
I am fine.'''
3、输入一个数,求n!
n=int(input("请输入n的值:"))
def fac(n):
if n<=1:
return 1
else:
return n*fac(n-1)
m=fac(n)
#调用函数
print("%d!=%5d"%(n,m))
五、模块导入
1、import 模块名 [as 别名]
eg:import pandas as pd
2、from 模块名 import 对象名 [as 别名]
3、from 模块名 import *
可以一次导入模块中通过_ all _变量指定的所有对象