开头提示:本文档仅为本人自学时整理,如果能帮到更多初学者也是极好的,不喜勿喷,有错的地方也请指正
一、Python起源
1989年圣诞节期间,荷兰人吉多·范罗苏姆(Guido van Rossum)开发的一款脚本解释程序,Python的名字取自英国20世纪70年代首播的电视喜剧《蒙提.派森的飞行马戏团》(Monty Python's Flying Circus)。
Python已经超越了我们的C++和C,在2020-2021年使用排名已经仅此于java
二、Python语言特点
- 简单易学
- 面向对象
- 解释性语言:可以直接从源代码运行程序,在计算机内部Python解释器会把源代码转换成为中间字节码形式,然后再把它解释为计算机使用的机器语言并执行,即不需要编译成二进制代码
- 免费开源
- 可移植性
- 胶水语言:可以用来连接其他语言编写的软件组件和模块,标准的Python语言是用C编译,所以Python可以借助C的接口去调用驱动所有已知的软件
- 丰富的库:Python有很多的标准库可以调用
- 规范的代码:Python采用强制缩进的方式
- 支持函数式编程:可以写一些函数表达式
- 动态类型:在变量申明时不需要指定数据类型,它不会检查数据类型
三、Python语言应用前景
- 桌面应用开发
- Web应用开发
- 自动化运维
- 自动化测试
- 科学计算
- 数据可视化
- 网络爬虫
- 人工智能
四、环境搭建
python环境:可以去官网下载
编译工具:可采用Pycharm
初学python,这个配置简单易上手,无特殊操作
五、标识符
-
- 区分大小写:Myname与myname是两个不同的标识符。
- 首字符,可以是下划线()或字母,但不能是数字。
- 除首字符外其他字符,可以是下划线()、字母和数字。
- 关键字不能作为标识符。
- 不要使用Python内置函数作为自己的标识符。
关键字查看:
方法一:shell查看:
help("keywords")
方法二: 引入keyword函数,调用kwlist方法(shell中,不需要print打印,pycharm中需要print去打印输出)
import keyword
keyword.kwlist
这里我们再介绍一个用法,iskeyword('') 用来判断是否为关键字
import keyword
keyword.iskeyword('break')
六、变量的定义和使用
Python里头没有常量,不像java可以用final来定义一个常量。
#变量名 = value
number = 1024
name = "张三"
pai = 3.14
bools = True
print (type(bools))#变量类型
print(id(name))#变量在内存中的地址
基本数据类型
整数
x = 234534
print(bin(x))#二进制转换bin(),二进制数用0b来定义
print(hex(x))#16进制转换hex(),十六进制用0x来定义
print(oct(x))#八进制转换oct(),八进制用0o来定义
a = 0b1010101
print(int(a))
这里引入一个 eval() 函数用来执行一个字符串表达式,并返回表达式的值。
print(eval('0b1010+0b1011'))#返回21
浮点数
a = 0.1
b = 0.2
c = 0.3
print(a+b)
print(b+c)
print(a+c)
我们会发现0.1+0.2不等于0.3,这是因为十进制转换成二进制进行计算后,又转换回十进制输出,出现了一个不确定尾数,我们在这里通常引入一个round()函数,会自动四舍五入
a=0.1
b=0.2
print(round(a+b,1))
复数
实部+虚部(j或J表示虚部)
a = 3.14+2.34j
b = 3.1+5j
print(a+b)
字符串类型
字符串定义有三种引号的使用方式
单引号、双引号、三引号
这里我们提一下注释:
Python的注释分为两种:单行注释和多行注释
单行注释:我们使用#
多行注释:三对 " ",或者三对' '
""" A
B
C
"""
''' a
b
c
'''
回到我们的字符串
str1 = 'For man is man and master of his fate'
str2 = "All things in their being are good for something."
str3 ="""
partA
partB
"""
字符串中还会用到一个转义字符,转义字符的类型很多,这里我们介绍几种
# 续行符:\
print('a' \ 'b')
# 换行符:\n
print('hello world\n')
# \t 水平制表符
print("姓名 \t 性别 \t 年龄")
print("Mark \t boy \t 12")
print("Jerry \t girl \t 4")
print("他说:\"hello\" ") #如果要在双引号内部打印出双引号或者单引号,需要加\进行转义
print("他说:\'hello\' ")
print("\\") #同理,打印\也需要多加一个\进行转义
print(r"\\")#前面加r ,取消转义
布尔类型
False True
a = Fasle
b = true
数字类型互相转换
隐式类型转换
布尔 转 整数
布尔、整数 转 浮点
a = 1 + True
print(a) #2
a = 1.0+1
print(a) #2.0
a = True +1.2
print(a) #2.2
显式类型转换
#complex(real,imag)创建一个复数,(实部,虚部数字)
complex(1,2)
#ord(x)将一个字符x转换为它对应的整数值
#hex(x)将一个整数x转换为一个十六进制字符串
#oct(x)将一个整数x转换为一个八进制字符串
a = 1
b = 1.2
c = True
#int(x)将x转换成整数类型
print(int(b))
print(type(int(b)))
#float(x)将x转换成浮点数类型
print(float(c))
print(type(float(c)))
#str(x)将x转换为表达式字符串
print(str(c))
print(type(str(c)))
#bool(x)将x转换为bool类型
print(bool(a))
print(type(bool(a)))
#chr(x)将整数x转换为一个字符
print(chr(90))
#repr(x)将x转换为表达式字符串
a = 'a+b'
print(repr(a))
#在shell中比较明显
#eval(x)计算在字符串中的Python表达式,并返回一个对象
a = 1
d ='a+b'
print(eval(d))
字符串格式化:format()方法和占位符
name = '张三'
age = 14
print('{0}今年{1}岁'.format(name,age)) #张三今年14岁
print("{n}今年{m}岁".format(n=name, m=age)) #张三今年14岁
name = '张三'
age = 14
print('{0}今年{1}岁'.format(name,age))
print("{n}今年{m}岁".format(n=name, m=age))
```
```Python
name = '张三'
age = 14
print('{0}今年{1}岁'.format(name,age))
print("{n}今年{m}岁".format(n=name, m=age))
#字符串格式化控制符
'''
s :字符串格式化
d :十进制整数
f,F :十进制浮点数
g,G :十进制整数或浮点数
e,E :科学计算法表示浮点数
o :八进制整数,符号是小写英文字母o
x,X :十六进制整数,x是小写表示,X是大写表示
'''
money = 123.56
print("{0:s}今天的收入{1:.1f}".format(name,money))
points = 12433.544363
#print("{0}的超市积分{1:d}".format(name,points)) 报错
print("{0}的超市积分{1:f}".format(name,points)) #例子说明:此处points必须满足控制符f的条件
print("{0}的超市积分{1:g}".format(name,points))
print("{0}的超市积分{1:G}".format(name,points))
print("{0}的超市积分{1:e}".format(name,points))
print("{0}的超市积分{1:E}".format(name,points))
字符串查找 find() ,rfind()
str = "this is an example for string"
print(len(str))
print(str[2])
print(str.find('a'))
print(str.rfind('a'))