目录
[1、去官网找包Python 源代码发布 |Python.org编辑](#1、去官网找包Python 源代码发布 |Python.org编辑)
[2、上传到centos解压 tar-xf Python-3.11.5.tar](#2、上传到centos解压 tar-xf Python-3.11.5.tar)
[1、换行打印 \n](#1、换行打印 \n)
[2、不换行打印 end=" "](#2、不换行打印 end=" ")
[2、多行注释""" """](#2、多行注释""" """)
[4、变量的数据类型是由 值决定的。](#4、变量的数据类型是由 值决定的。)
[十、while 循环的基本格式](#十、while 循环的基本格式)
一、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、设置全局变量
ln -s /usr/local/python3/bin/python3.11 /usr/local/bin/python3
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、换行打印 \n
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(2<>1) 返回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、成员运算
成员运算符 描述
in x 在 y 序列中 , 如果 x 在 y 序列中返回 True; 反之,返回False
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****单分支判断语句:
if 条件: # 条件结束要加:号(不是;号)
执行动作一 # 这里一定要缩进(tab键或四个空格),否则报错
# 没有fi结束符了,就是看缩进
2、python****双分支判断语句:
if 条件:
执行动作一
else: # else后面也要加:执行动作二
3、python****多分支判断语句:
if 条件一:
执行动作一
elif 条件二: # elif 条件后面都要记得加:
执行动作二
elif 条件三:
执行动作三
else:
执行动作四
比如判断该数字是不是字母
#!/usr/bin/python
#-*- coding: utf-8 -*-
a = raw_input("请输入任意字母:")
if a >= 'a' and a <= 'z' or a >= 'A' and a <= 'Z':
print("你输入的字母是: %s" % a)
else:
print("输入不是字母")
9x9乘法表
#!/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="\t")
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("不及格")
十、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 数据类型 :
- 数字 int float bool
- 字符串 str
- 列表 list
- 元组 tuple
- 字典 dict
- 集合 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
>>>