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
>>> 

发表评论