python

2023-09-20 19:09:10

一、认识python

(一)python起源

python的创始人为Guido von Rossum(吉多·范·罗苏姆),俗称”龟叔“,荷兰人。1989年圣诞节期间,在阿姆斯特丹,Guido为了打发圣诞节的无趣,决心开发一个新的脚本解释程序,做为ABC 语言的一种继承。之所以选中 Python(大蟒蛇的意思)作为该编程语言的名字,是因为他是一个叫Monty Python的喜剧团体的爱好者。ABC是由Guido参加设计的一种教学语言。是专门为非专业程序员设计的。但是ABC语言并没有成功,究其原因,Guido认为是其非开放(封闭,不开源)造成的。Guido决心在Python中避免这一错误。同时他还想实现在ABC 中闪现过但未曾实现的东西。就这样,Python在Guido手中诞生了。

(二)python的优缺点

python优点:

1.简单,易学,易懂,开发效率高:Python容易上手,语法较简单。在linux上和写shell一样,拿着vi都可以写,直接就可以运行。

2. 免费、开源:我们运维用的大部分软件都是开源啊,亲!

3. 可移植性,跨平台:Python已经被移植在许多不同的平台上,Python程序无需修改就可以在 Linux,Windows,mac等平台上运行。

4. 可扩展性:如果你需要你的一段关键代码运行得更快或者希望某些算法不公开,你可以把你的部分程序用C或C++编写,然后在你的Python程序中使用它们(讲完编译型语言和解释型语言区别就容易理解了)。

5. 丰富的库: 想产生个随机数? 调库啊。想操作os? 调库啊。想操作mysql? 调库啊调库君......Python的库太丰富宠大了,它可以帮助你处理及应对各种场景应用。

6. 规范的代码:Python采用强制缩进的方式使得代码具有极佳的可读性

python缺点:

1. 执行效率慢 : 这是解释型语言(下面的解释器会讲解说明)所通有的,同时这个缺点也被计算机越来越强性能所弥补。有些场景慢个几微秒几毫秒,一般也感觉不到。

2. 代码不能加密: 这也是解释型语言的通有毛病,当然也有一些方法可以混淆代码。解决方法: 参考优点的第4条。

(三)Python应用场景

1. 操作系统管理、服务器运维的自动化脚本

一般说来,Python编写的系统管理脚本在可读性、性能、代码重用度、扩展性几方面都优于普通的shell脚本。

2. Web开发

Python经常被用于Web开发。比如,通过mod_wsgi模块,Apache可以运行用Python编写的Web程序。Python定义了WSGI标准应用接口来协调Http服务器与基于Python的Web程序之间的通信。一些Web框架,如:Django,TurboGears,web2py,Zope等,可以让程序员轻松地开发和管理复杂的Web程序。

3. 服务器软件(网络软件)

Python对于各种网络协议的支持很完善,因此经常被用于编写服务器软件、网络爬虫。第三方库Twisted支持异步网络编程和多数标准的网络协议(包含客户端和服务器),并且提供了多种工具,被广泛用于编写高性能的服务器软件。

4. 游戏

很多游戏使用C++编写图形显示等高性能模块,而使用Python或者Lua编写游戏的逻辑、服务器。相较于Python,Lua的功能更简单、体积更小;而Python则支持更多的特性和数据类型。

5. 科学计算

NumPy,SciPy,Matplotlib可以让Python程序员编写科学计算程序。

6. 其它领域

无人驾驶,人工智能等。

二、python的应用

(一)变量
变量:在内存中开辟一块空间,存储规定范围内的值,值可以改变。通俗的说 变量就是给数据起个名字 ,通过这个名字来访问和存储空间中的数据。

变量的特点:

可以反复存储数据
可以反复取出数据
可以反复更改数据

变量的命名规则:

变量名只能是字母、数字或下划线的任意组合
变量名的第一个字符不能是数字
变量名要有见名知义的效果 , 如 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']

变量的数据类型是由 值决定的。

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+2=3
- 减法 5-1=4
* 乘法 3*5=15
/ 除法 10/2=5
// 整除 10//3=3 不能整除的只保留整数部分
** 求幂 2**3=8
% 取余(取模) 10%3=1 得到除法的余数

赋值运算

赋值运算符 描述 实例
= 简单的赋值运算符,下面的全部为复合运算符 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

比较运算

比较运算符 描述 实例
== 等于(注意与=赋值运算符区分开) 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

逻辑运算

逻辑运算符 逻辑表达式 描述
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

成员运算

成员运算符 描述
in x 在 y 序列中 , 如果 x 在 y 序列中返回 True; 反之,返回False
not in x 不在 y 序列中 , 如果 x 不在 y 序列中返回 True; 反之,返回False

身份运算

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判断语句

python单分支判断语句:

if 条件:     # 条件结束要加:号(不是;号)
执行动作一   # 这里一定要缩进(tab键或四个空格),否则报错
            # 没有fi结束符了,就是看缩进

python双分支判断语句:

if 条件:
执行动作一
else:     # else后面也要加:执行动作二

python多分支判断语句:

if 条件一:
执行动作一
elif 条件二: # elif 条件后面都要记得加:
执行动作二
elif 条件三:
执行动作三
else:
执行动作四

(四)脚本应用

九九乘法表

for i in range(1, 10):
    for j in range(1, i+1):
        product = i * j
        print(f"{j} * {i} = {product}", 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("不及格")

更多推荐

一、Java面试题基础第十天

一、Java面试题基础第十天1.什么是反射?Java是一门静态语言,它通过编译以后才能执行的编程语言,但是可以通过反射使Java成为一个准动态语言,Java在运行过程中动态获取获取对象的属性,调用它的方法,就叫做反射2.反射有哪些应用场景呢?1.jdbc连接数据库的时候加载驱动时Class.forName()2.Jav

Webpack 热更新原理

什么是热更新模块热替换(hotmodulereplacement或HMR)是webpack提供的最有用的功能之一。它允许在运行时更新所有类型的模块,而无需完全刷新一般的刷新我们分两种:一种是页面刷新,不保留页面状态,就是简单粗暴,直接window.location.reload()。另一种是基于WDS(Webpack-

【C++从0到王者】第三十三站:AVL树

文章目录前言一、AVL树的概念二、AVL树的实现1.AVL树的结点定义2.AVL树的插入之插入部分3.AVL树的插入之平衡因子的改变4.AVL树的插入之左旋5.AVL树的左旋抽象图6.AVL树的右旋抽象图7.AVL树的双旋8.AVL树的右左双旋9.AVL树的右左双旋的本质10.AVL树的左右双旋11.AVL树的验证12

opencv 图像的缩放(放大,缩小),翻转,旋转

文章目录opencv图像的缩放(放大,缩小),翻转,旋转1、图像的缩放,旋转过程中为什么需要插值:2、常见的插值算法包括:3、图像的缩放,翻转,旋转:(1)图像的缩放cv2::resize(),用于改变图像大小的函数,它可以用于图像的放大、缩小操作:函数原型:示例:将一个图像缩小为原来的一半(2)图像的翻转cv2::f

javaee之黑马乐优商城5

分析一下spu与sku的数据结构再来说一下什么是spustandardproductunit标准产品单元:SPU级别的规格参数通常是与整个产品类型或产品系列相关的通用参数。比如华为手机下面的p系列、荣耀系列,都可以标识为spu级别规格参数skustockkeepingunit库存保管单位:SKU级别的规格参数是具体到每

Git基础操作

前言本文会向您介绍如何安装git,以及快速地上手add,commit,push,版本回退操作基础配置关于windous上的安装git官网已经介绍的很清楚了,您可以直接点入链接windows安装如果你的平台是centos,以centos7.6为例:⾸先,你可以试着输⼊git,看看系统有没有安装Git:-bash:git:

java面向对象(七)

文章目录一、单例设计模式是什么?1.概念2.如何实现1.饿汉式2.懒汉式3.区分饿汉式和懒汉式二、main()方法的使用1.使用说明三、类的成员之四:代码块(或初始化块)1.概念2.静态代码块3.非静态代码块四、final关键字五、多态性的补充六、类变量和实例变量的内存解析七、static声明的属性被所有对象所共享提示

virtualbox配置ubuntu1804虚拟机相关流程

virtualbox配置ubuntu1804虚拟机相关流程相关版本能解决的问题安装流程1:新建虚拟机安装流程2:配置虚拟机安装流程3:安装虚拟机系统安装流程4:设置ubuntu相关版本virtualbox使用VirtualBox官网下载的6.1.34r150636版。ubuntu使用清华大学开源软件镜像站下载的1804

计算机毕业设计 基于SSM+Vue的农业信息管理系统的设计与实现 Java实战项目 附源码+文档+视频讲解

博主介绍:✌从事软件开发10年之余,专注于Java技术领域、Python人工智能及数据挖掘、小程序项目开发和Android项目开发等。CSDN、掘金、华为云、InfoQ、阿里云等平台优质作者✌🍅文末获取源码联系🍅👇🏻精彩专栏推荐订阅👇🏻不然下次找不到哟————————————————计算机毕业设计题目《10

重构技战术(一)——通用型重构技巧

书接上回,重构从现在开始一文中我们讨论了重构的含义、意义以及时机,并说明了测试的重要性。从本文开始将介绍重构具体的技巧,首先登场的是一些通用型技巧。1提炼函数提炼函数应该是最常见的重构技巧。我们都不希望把一大堆东西塞在一个函数里,使得一个函数做了一大堆事,这样无论是阅读还是修改都会很累(我曾经在字节跳动就见过一个600

Spring Cloud Gateway快速入门(二)——断言工厂

文章目录前言1.什么是Gateway断言工厂2.为什么要使用断言2.1.调试和开发:2.2.防御性编程:2.3.文档和可读性:2.4.测试:3.常用的Gateway断言工厂3.1Path断言工厂3.2Method断言工厂3.3Header断言工厂3.4时间断言工厂4.自定义Gateway断言工厂5.使用Gateway断

热文推荐