Python基础
一、Python是什么
Python是一种高级、通用的编程语言,由Guido van Rossum于1991年开发。它被设计成易读、易理解、易于上手的语言,强调代码的可读性和简洁性。
Python具有动态类型系统和自动内存管理,可以运行在多个操作系统上。它支持面向对象编程、函数式编程、模块化编程以及其他多种编程范式。Python拥有强大的标准库和第三方库,使其具备广泛的应用领域,包括Web开发、数据科学、人工智能、机器学习、物联网等。
Python的语法简洁明了,使用空格缩进来表示代码块,而不是使用大括号。这种风格促使开发者编写更加可读性强的代码,并强迫他们遵循一致的代码风格。
Guido van Rossum是Python的创始人和主要作者,他于1989年开始发起Python的开发,并一直负责引领和管理Python项目直到2018年。他的贡献使得Python成为了世界上最受欢迎的编程语言之一。
除了Guido van Rossum,还有众多开源社区和贡献者为Python的发展作出了重要贡献。他们不断完善和开发Python的生态系统,为用户提供更多的库和工具,使Python成为一种强大而灵活的编程语言。
二、在centos7上的python
在 centos7 上默认自带的 python 版本为 2.7.X
python –version
1、怎么写第一个Python脚本
方式一 使用vi 或者vim
vim first.py #!/usr/bin/python # 声明类型,指明解释器命令路径 #-*- coding: utf-8 -*- # 指定字符格式为utf-8(可以打印中文),python3不用再指定了 print "hellow world" # python2的写法,python3执行会报错 print ("hello world") # python3的写法,python2也可以执行 print ("哈哈") # python2指定了utf-8字符,那么这里就可以使用中文
方式二 使用 python 命令(默认版本 ) 交互写
2、执行方式
方式一 python first.py
方式二 ./first.py
三、centos7上安装Python
1、去官网找包Python 源代码发布 |Python.org
2、上传到centos解压 tar-xf Python-3.11.5.tar
3、准备编译环境
yum -y install zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gcc make
4、编译
cd Python-3.11.5 ./configure --prefix=/usr/local/python3 --enable-optimizations #################################################################### 该消息是在配置Python时的一种建议,它表示如果您想进行一个稳定的优化版本构建(使用PGO等),则可以运行"./configure --enable-optimizations"命令。 "PGO"代表"Profile Guided Optimization",是一种优化技术,通过使用运行时的性能统计信息来指导编译器优化,以获得更好的执行性能。 但是,请注意这只是一种建议,并非必须操作。如果您只是需要一个普通的Python构建,您可以忽略该建议,继续使用之前的配置命令来配置Python。 ############################################################################ make && make install
5、设置全局变量
1. ln -s /usr/local/python3/bin/python3.11 /usr/local/bin/python3 2. ln -s /usr/local/python3/bin/pip3.11 /usr/local/bin/pip3
vim /etc/profile ##文末插入 export PYTHON_HOME=/usr/local/python3 export PATH=$PYTHON_HOME/bin:$PATH ##保存退出 source /etc/profile ### echo $PATH
查看版本
Python --version
四、基本的打印规则
Python 程序由多个逻辑行构成,一个逻辑行不一定为一个物理行 ( 人眼看到的行 )
显式行连接 : \
在物理行后跟反斜杠,
代表此行连接下一行代码
隐式行连接 : () [] {} 在括号里换行会自动行连接
字符串需要用引号引起来,单引双引都可以。
1、换行打印
2、不换行打印 end=” “
五、注释
1、单行注释#
2、多行注释””” “””
六、变量
1、什么是变量
生活中,我们去超市买较多的东西时,会用到购物车。购物车的作用就是存放购买的商品,并且购买的东西是可变的。购物车在这里就是类似变量的作用。
变量:在内存中开辟一块空间,存储规定范围内的值,值可以改变。通俗的说 变量就是给数据起个名字 ,通过这个
名字来访问和存储空间中的数据。
变量的特点
可以反复存储数据
可以反复取出数据
可以反复更改数据
变量的命名规则
变量名只能是字母、数字或下划线的任意组合
变量名的第一个字符不能是数字
变量名要有见名知义的效果 , 如 UserName,user_name
变量名区分大小写 以下关键字不能声明为变量名 ( 关键字是 python 内部使用或有特殊含义的字符 ) [‘False’, ‘None’, ‘True’, ‘and’,
‘as’, ‘assert’, ‘break’, ‘class’, ‘continue’, ‘def’, ‘del’, ‘elif’, ‘else’, ‘except’, ‘fifinally’, ‘for’, ‘from’, ‘global’, ‘if’,
‘import’, ‘in’, ‘is’, ‘lambda’, ‘nonlocal’, ‘not’, ‘or’, ‘pass’, ‘raise’, ‘return’, ‘try’, ‘while’, ‘with’, ‘yield’]
2、创建变量
在 python 中,每一个变量在使用前都必须 赋值 ,变量赋值后,变量就创建成功了。
变量名 = 值
3、交换变量
4、变量的数据类型是由 值决定的。
name="zhangsan" # str类型 age=25 # 25没有加引号,则为int类型;加了引号,则为str类型; height=1.8 # float类型 marry=True # bool类型(布尔值) print(type(name)) # 通过type()函数得知变量的类型 print(type(age)) print(type(height)) print(type(marry))
Python基本数据类型分类 1. 数字 int 整型(1, 2, -1, -2) float 浮点型(34.678) bool 布尔型(True/False) complex 复数(4+3J, 不应用于常规编程,这种仅了解一下就好 2. 字符串 str 单引号和双引号内表示的内容为字符串 “hello world" "12345" 3. 列表 list 使用中括号表示 [1, 2, 3, 4] 4. 元组 tuple 使用小括号表示 (1, 2, 3, 4) 5. 字典 dict 使用大括号表示,存放key-value键值对 {"a":1, "b":2, "c":3} 6. 集合 set 也使用大括号表示,但与字典有所不同 {1, 2, 3, 4}
转换函数 说明 int(xxx) 将xxx转换为整数 float(xxx) 将xxx转换为浮点型 str(xxx) 将xxx转换为字符串 list(xxx) 将xxx转换为列表 tuple(xxx) 将xxx转换为元组 dict(xxx) 将xxx转换为字典 set(xxx) 将xxx转换为集合 chr(xxx) 把整数[0-255]转成对应的ASCII码 ord(xxx) 把ASCII码转成对应的整数[0-255]
七、输出与输入
1、输入input
2、输出print
print("="*10) # 表示连续打印10个=符号 print("1-系统") print("2-数据库") print("3-quit") print("="*10) 或者 print("="*10) print('''1-系统 # 使用''' '''符号来换行 2-数据库 3-quit''') print("="*10)
八、运算符
优先级 算术 > 比较 > 逻辑 > 赋值
1、算数运算符
算术运算符 描述 实例 + 加法 1+2=3 - 减法 5-1=4 * 乘法 3*5=15 / 除法 10/2=5 // 整除 10//3=3 不能整除的只保留整数部分 ** 求幂 2**3=8 % 取余(取模) 10%3=1 得到除法的余数
2、赋值运算
赋值运算符 描述 实例 = 简单的赋值运算符,下面的全部为复合运算符 c =a + b 将a + b的运算结果赋值给c += 加法赋值运算符 a += b 等同于 a = a + b -= 减法赋值运算符 a -= b 等同于 a = a - b *= 乘法赋值运算符 a *= b 等同于 a = a * b /= 除法赋值运算符 a /= b 等同于 a = a / b //= 整除赋值运算符 a //= b 等同于 a = a // b **= 求幂赋值运算符 a ** = b 等同于 a = a ** b %= 取余(取模)赋值运算符 a %= b 等同于 a = a % b
3、比较运算
比较运算符 描述 实例 == 等于(注意与=赋值运算符区分开) print(1==1) 返回True != 不等于 print(2!=1) 返回True 不等于(同 != ) print(21) 返回True > 大于 print(2>1) 返回True < 小于 print(2<1) 返回False >= 大于等于 print(2>=1) 返回True <= 小于等于 print(2<=1) 返回False
4、逻辑运算
逻辑运算符 逻辑表达式 描述 and x and y x与y都为True,则返回True;x与y任一个或两个都为False,则返回False or x or y x与y任一个条件为True,则返回True not not x x为True,返回False; x为False,返回True
5、成员运算
1. 成员运算符 描述 2. in x 在 y 序列中 , 如果 x 在 y 序列中返回 True; 反之,返回False 3. not in x 不在 y 序列中 , 如果 x 不在 y 序列中返回 True; 反之,返回False
6、身份运算
is is 是判断两个标识符是不是引用 自一个对象 x is y, 类似 id(x) == id(y) , 如果是同一个对象则返回 True, 否则返回 False is not is not 是判断两个标识符是不是 引用自不同对象 x is not y ,类似 id(a) != id(b)。如果不是同一个对象则返回 结果 True,否则返回 False。
九、if判断语句
1、python单分支判断语句:
1. if 条件: # 条件结束要加:号(不是;号) 2. 执行动作一 # 这里一定要缩进(tab键或四个空格),否则报错 3. # 没有fi结束符了,就是看缩进
2、python双分支判断语句:
1. if 条件: 2. 执行动作一 3. else: # else后面也要加:执行动作二
3、python多分支判断语句:
if 条件一: 执行动作一 elif 条件二: # elif 条件后面都要记得加: 执行动作二 elif 条件三: 执行动作三 else: 执行动作四
比如判断该数字是不是字母
#!/usr/bin/python #-*- coding: utf-8 -*- a = raw_input("请输入任意字母:") if a >= 'a' and a = 'A' and a <= 'Z': print("你输入的字母是: %s" % a) else: print("输入不是字母")
1. print("输入不是字母")
9×9乘法表
#!/usr/bin/python #-*- coding: utf-8 -*- for i in range(1, 10): for j in range(1, i + 1): print(f"{j}x{i}={j * i}", end=" ") print()
查询成绩
#!/usr/bin/python3 #-*- coding: utf-8 -*- i=input("请输入你的成绩:") i=int(i) if i > 100: print("有效的成绩的应该在0~100") elif 90 <= i <=100: print("优秀") elif 80 <= i <90: print("良好") elif 60 <= i <80: print("及格") else: print("不及格")
1. print("不及格")
十、while 循环的基本格式
1、只要满足while指定的条件,就循环
while 循环的基本格式 while 条件: 条件满足时候:执行动作一 条件满足时候:执行动作二 。。。。。。。。 continue 跳出本次循环,直接执行下一次循环 break 退出循环,执行循环外的代码 exit() 退出python程序,可以指定返回值
示列
a=input("你想学习还是玩游戏?:") b=str(a) while True: if a=="玩游戏": print("玩个毛,快去学习") break if a=="学习": print("注意劳逸结合,该放松一下了") break else: print("请在学习和游戏中选择,请你遵守规定!你别无选择!") a=input("重新输入")
猜大小
import random num = random.randint(1, 100) count = 0 while True: a = int(input("系统随机生成了1个1~100之间的整数,你觉得是几:")) count += 1 if a > num: print("笨蛋,猜大了,好好想一下") elif a < num: print("服了你了,猜小了") else: print(f"恭喜,猜对了,正确的数字为: {num},你猜了 {count} 次") break
十一、字符串-str
python 数据类型 :
1. 数字 int float bool
2. 字符串 str
3. 列表 list
4. 元组 tuple
5. 字典 dict
6. 集合 set
1、字符串的下标
字符串,列表,元组都属于序列 ,所以都会有下标。
2、字符串的切片,倒序
字符串,列表,元组都属于序列 ,所以都可以切片
>>> print(str1) ###字符串 abcd >>> print(str1 [0:3]) ###从第0到3,但是不包含3 abc >>> print(str1 [:]) ###全取 abcd >>> print(str1 [0:]) ###第一个到最后一个 abcd >>> print(str1 [::-1]) ###全取倒序 dcba
3、字符串的常见操作
现有字符串str1=(“hello word”)
统计字符串的长度print(len(str1))
print(str1.startswith(“hello”))判断字符串是否以hello开头
print(str1.endswith(“word”))判断字符串是否以word结尾
删除空格 print(” hello “.strip())
>>> print(" hello ".strip()) ####删除hello两边的空格 hello >>> print(" hello ".rstrip()) ####删除hello右边的空格 hello >>> print(" hello ".lstrip()) ####删除hello左边的空格 hello
统计某个字符出现的次数 print(str1.count(“l”))
十二、列表
1、创建列表
>>> list1=["苹果","香蕉","草莓","橘子"] ###创建列表 >>> print(list1) ['苹果', '香蕉', '草莓', '橘子'] >>> list1.append("西瓜") ###添加内容 >>> print(list1) ['苹果', '香蕉', '草莓', '橘子', '西瓜'] >>> list1[3]="大橘子" ###修改 >>> print(list1) ['苹果', '香蕉', '草莓', '大橘子', '西瓜'] >>> list1.remove("大橘子") ###移除 >>> print(list1) ['苹果', '香蕉', '草莓', '西瓜'] >>> list1.clear() ###清空 >>> print(list1) []
2、合并
十三、元组-tuple
元组就相当于是 只读的列表 ; 因为只读 , 所以没有 append,remove, 修改等操作方法 .
它只有两个操作方法 :count,index
元组 , 字符串 , 列表都属于序列 . 所以元组也可以切片
tuple1=(1,2,3,4,5,1,7) print(type(tuple1)) print(tuple1.index(3)) # 打印3这个元素在元组里的下标 print(tuple1.count(1)) # 统计1这个元素在元组里共出现几次 print(tuple1[2:5]) # 切片 tuple1[5]=6 # 修改元组会报错
十四、字典-dict
字典 : 是一种 key:value( 键值对 ) 类型的数据,它是无序的(没有像列表那样的索引 , 下标 ). 它是通过 key 来找 value 底层
就是 hash 表 , 查找速度快 ; 如果 key 相等 , 会自动去重 ( 去掉重复值 ) 。
字符串 , 列表 , 元组属于序列 , 所以有下标
dict1 = { 'stu01':"zhangsan", 'stu02':"lisi", 'stu03':"wangwu", 'stu04':"maliu", } print(type(dict1)) print(len(dict1)) print(dict1) # 增 dict1["stu05"]="tianqi" # 类似修改,如果key值不存在,则就增加 print(dict1) # 改 dict1["stu04"]="马六" # 类似增加,如果key值存在,则就修改 print(dict1) # 字典的增加与修改的写法是一样的,区别就在于key是否已经存在 # 查 print(dict1["stu01"]) # 如果key值不存在,会返回keyerror错误 print(dict1.get("stu01")) # 这种取值方法如果key值不存在,会返回none,不会返回错误 # 删 dict1.pop("stu05") # 删除这条;也可以del dict1["stu05"]来删除 dict1.popitem() # 删除显示的最后一条 dict1.clear() # 清空字典 print(dict1) # del dict1 # 删除整个字典
十五、os模块
os模块是Python中的一个内置模块,用于与操作系统进行交互。它提供了许多方法,可以执行各种操作,如文件和目录的操作、进程管理、环境变量的获取等。
os模块在centos中是自带的需要加载模块,使用该模块可以完成centos7的命令操作:创建删除文件、yum安装、查看IP………………..
>>> import os ###加载os模块 >>> >>> os.system("uptime|awk '{print $10}'") ####查看系统过去15分钟的负载 0.05 0 >>> os.system("ifconfig|awk 'NR==2{print $2}'") ###查看IP 192.168.115.153 0 >>>
发表评论