这里写自定义目录标题
- 一、首先认识python
- 二、python应用场景
- 三、解释型语言与编译型语言
- 四、安装python-3.5.4-amd64
- 五、变量名的要求
- 六、python简单的语句验证
- 一、打开python交互式运行环境idle,在屏幕上打印python的第一个程序 “hello,world” 、 我喜欢去钓鱼
- 二、切换到非交互界面
- 三、" " " 三引号的作用
- 四、设置python中的变量
- 五、设置两个变量 边长为r 面积为area ,计算周长为40的正方形的面积,用print()将面积打印出来。
- 六、单引号声明字符串
- 七、双引号声明字符串
- 八、转义符(去掉了'的字符串边界的意义)
- 九、其他转义字符
- 十、 \ 换行符
- 十一、\t tab键 横向制表符
- 十二、\ 续行操作 (必须在每一行的最后写)
- 十三、元字符串 r (原样输出)
- 十四、类型转换
- 十五、x是英文字母,并使用 or 进行布尔值验证
- 十六、查看字符串是否包含内容
- 十七、判断某一年x是否是闰年的表达式
- 七、布尔值
- 八、运算
一、首先认识python
人生苦短,我用python ----- life is short ,you need python
python的哲学: 明确,优雅,简单
kiss keep it simple,keep it stupid
问题: 我都学了shell,为什么还要学python?
答: python更强大,功能更丰富,执行效率比shell高。还有就是顺应开发型运维的趋势,更高薪😃。
一、python起源
python的创始人为Guido von Rossum(吉多·范·罗苏姆),俗称”龟叔“,荷兰人。1989年圣诞节期间,在阿姆斯
特丹,Guido为了打发圣诞节的无趣,决心开发一个新的脚本解释程序,做为ABC 语言的一种继承。之所以选中
Python(大蟒蛇的意思)作为该编程语言的名字,是因为他是一个叫Monty Python的喜剧团体的爱好者。
ABC是由Guido参加设计的一种教学语言。是专门为非专业程序员设计的。但是ABC语言并没有成功,究其原因,
Guido 认为是其非开放(封闭,不开源)造成的。Guido决心在Python中避免这一错误。同时他还想实现在ABC 中闪现
过但未曾实现的东西。就这样,Python在Guido手中诞生了。
二、python的优缺点
python优点:
- 简单,易学,易懂,开发效率高:Python容易上手,语法较简单。在linux上和写shell一样,拿着vi都可以写,直接
就可以运行。 - 免费、开源:我们运维用的大部分软件都是开源啊,亲!
- 可移植性,跨平台:Python已经被移植在许多不同的平台上,Python程序无需修改就可以在
Linux,Windows,mac等平台上运行。 - 可扩展性:如果你需要你的一段关键代码运行得更快或者希望某些算法不公开,你可以把你的部分程序用C或
C++编写,然后在你的Python程序中使用它们(讲完编译型语言和解释型语言区别就容易理解了)。 - 丰富的库: 想产生个随机数? 调库啊。想操作os? 调库啊。想操作mysql? 调库啊调库君。。。。。。Python
的库太丰富宠大了,它可以帮助你处理及应对各种场景应用。 - 规范的代码:Python采用强制缩进的方式使得代码具有极佳的可读性。
python缺点:
- 执行效率慢 : 这是解释型语言(下面的解释器会讲解说明)所通有的,同时这个缺点也被计算机越来越强性能所
弥补。有些场景慢个几微秒几毫秒,一般也感觉不到。 - 代码不能加密: 这也是解释型语言的通有毛病,当然也有一些方法可以混淆代码。解决方法: 参考优点的第4
条。
二、python应用场景
- 操作系统管理、服务器运维的自动化脚本
一般说来,Python编写的系统管理脚本在可读性、性能、代码重用度、扩展性几方面都优于普通的shell脚本。 - Web开发
Python经常被用于Web开发。比如,通过mod_wsgi模块,Apache可以运行用Python编写的Web程序。Python定
义了WSGI标准应用接口来协调Http服务器与基于Python的Web程序之间的通信。一些Web框架,如
Django,TurboGears,web2py,Zope等,可以让程序员轻松地开发和管理复杂的Web程序。 - 服务器软件(网络软件)
Python对于各种网络协议的支持很完善,因此经常被用于编写服务器软件、网络爬虫。第三方库Twisted支持异步
网络编程和多数标准的网络协议(包含客户端和服务器),并且提供了多种工具,被广泛用于编写高性能的服务器软
件。 - 游戏
很多游戏使用C++编写图形显示等高性能模块,而使用Python或者Lua编写游戏的逻辑、服务器。相较于Python,
Lua的功能更简单、体积更小;而Python则支持更多的特性和数据类型。 - 科学计算
NumPy,SciPy,Matplotlib可以让Python程序员编写科学计算程序。 - 其它领域
无人驾驶,人工智能等。
三、解释型语言与编译型语言
计算机只能识别机器语言(如:01010101001这种), 程序员不能直接去写01这种代码,所以要程序员所编写的程序
语言翻译成机器语言。将其他语言翻译成机器语言的工具,称之为编译器。
如:中国人 —(翻译)----外国人
编译器翻译的方式有两种,一种是编译,一种是解释。区别如下:
正因为这样的区别,所以解释型语言开发效率高,但执行慢和无法加密代码。
四、安装python-3.5.4-amd64
首先是需要 64位的系统
1.学会在win7系统下安装python运行环境
打开 显示界面
五、变量名的要求
1.必须不能以数字开头
2.变量名中只能含有字母,数字和_,其他字符不可以
3.变量名不可以是系统的关键字
num1 = num2 = num3 = 290
查看打印唯一标识符
print(num1)
六、python简单的语句验证
一、打开python交互式运行环境idle,在屏幕上打印python的第一个程序 “hello,world” 、 我喜欢去钓鱼
print("hello world")
显示结果
证明输出内容,不分中英文,都可以正常执行
二、切换到非交互界面
点击左上角的File 里面选择 New File 进入非交互界面
三、" " " 三引号的作用
只有在python中,才有三引号!
三引号的第一个作用是注释
正常注释为 #
在非交互界面输入上图的内容 ,非交互界面 验证结果为F5
输入F5验证结果,会出现路径及文件选择,选择一个自己可以记住的路径,选择确定。可以查看结果为第一行的hello 第二行,第三行是注释的状态 不显示
" " " 的注释验证
"""
print("123456")
print("654321")
print("346152")
"""
验证结果
三引号的第二个作用是换行
可以选择两种方法
print("""我喜欢python编程语言
我不喜欢c语言编程
I love python program""")
print('''我喜欢python编程语言
我不喜欢c语言编程
I love python program''')
结果显示没变化
三引号第三个作用是声明字符串
strval3 = """FBI 美国联邦调查局 Warning 警告 FBI Warning..."""
print(type(strval3))
print(strval3)
验证
四、设置python中的变量
my_2wife = 438
print(my_2wife)
wife = '小老婆'
Wife = '大老婆'
print(wife)
print(Wife)
#给变量赋值
#普通变量赋值
mynum = 250
#输出值
print(mynum)
my_2wife 是一个变量,它被赋值为 438。然后使用 print(my_2wife) 打印出这个变量的值。
wife 和 Wife 都是变量,wife 被赋值为字符串 ‘小老婆’,Wife 被赋值为字符串 ‘大老婆’。然后分别使用 print(wife) 和 print(Wife) 打印出这两个变量的值。
mynum 是一个变量,它被赋值为 250。然后使用 print(mynum) 打印出这个变量的值。
这段代码演示了变量的赋值和打印输出的过程。
结果验证
五、type和int
aa=123.5
aa
123.5
type(aa)
<class 'float'>
int(aa)
123
type(aa)
五、设置两个变量 边长为r 面积为area ,计算周长为40的正方形的面积,用print()将面积打印出来。
r=40/4
area=(r*r)
print(area)
1、第一条语句计算了40除以4的结果,并将结果10.0赋值给变量r
2、第二条语句计算了半径r的平方,并将结果赋值给变量area
3、使用print()函数打印出变量area的值
4、结果输出为100,他计算了一个边长为10的一个正方形的面积,结果输出为100
显示结果验证
六、单引号声明字符串
strval = '两只小蜜蜂,飞在花丛中'
print(type(strval))
print(strval)
验证结果
这个语句使用 print() 函数打印出变量 strval 的值。它的目的是为了将 strval 的内容输出到屏幕上。
第二条命令的意义是 打印变量的类型
七、双引号声明字符串
strval2 = "两只老虎,两只老虎谈恋爱,两只都是公的,真变态啊,真变态"
print(type(strval2))
print(strval2)
验证结果
八、转义符(去掉了’的字符串边界的意义)
strval = '伟大领袖\'毛主席\'说过:一切不以结婚为目的的谈恋爱都是耍流氓!'
print(strval)
转义在例句中的意义是
’ 是一个转义序列,用于在字符串中插入一个单引号字符
验证
九、其他转义字符
\n 换行操作
可以打断,单行、或多行显示
strval = '辛苦遭逢起一经,\n干戈寥落四周星。\n山河破碎风飘絮,\n身世浮沉雨打萍。\n惶恐滩头说惶恐,\n零丁洋里叹零丁。\n人生自古谁无死,\n留取丹心照汗青。'
print(strval)
验证
另一种显示方法
strval = '辛苦遭逢起一经,干戈寥落四周星。\n山河破碎风飘絮,身世浮沉雨打萍。\n惶恐滩头说惶恐,零丁洋里叹零丁。\n人生自古谁无死,留取丹心照汗青。'
print(strval)
验证结果
英文换行则
print("hello\nworld")
表示字符串本身有一个换行符
显示结果
十、 \ 换行符
换行符的作用是,做python语言填写时,命令很长很长,把他分行,显示的更清晰,明了)
注意不能先把格式的反括号打出来,否则无法进行换行,会提示错误
这个错误通常是由于代码中的断行符后面有意外的字符而引起的。在Python中,行继续符(\)用于在一行代码太长时将其分解为多行。但是,如果行继续符后面跟着一个非法字符,比如一个无效的标点符号或缺失的引号,就会出现"SyntaxError: unexpected character after line continuation character"错误。要解决这个错误,你需要检查断行符后面的字符并确保它符合Python语法规则。
如果想让显示的两行内容中间有间隔则,输入的格式为
print("如果想让现实的内容中间 \
有间隔 \
则输入的格式为")
显示结果
如果不想有间隔则输入的格式为
print("如果不想有\
间隔则")
显示结果
十一、\t tab键 横向制表符
该命令的显示结果为 中间我一个tab的距离
作用:是在计算机中,横向制表符(制表符)通常由转义序列"\t"表示,它是一种特殊的控制字符。制表符的作用是在文本中创建垂直对齐的列或字段。当你在文本中插入制表符时,它会在当前位置插入足够的空格,使得下一个字符的位置处于下一个制表符停靠位置。这在表格、对齐文本或其他需要垂直对齐的场景中非常有用。制表符的具体宽度可以根据不同的应用或设置而有所不同。在代码中,制表符也常用于缩进代码块,提高代码的可读性。
填写的格式
print("hello\tworld")
验证的结果
十二、\ 续行操作 (必须在每一行的最后写)
填写格式
strval = '宋老师是一位肤白貌美,德\
艺双馨的好老师'
print(strval)
验证结果(成功的将后面的内容接到了前面)
十三、元字符串 r (原样输出)
禁止转义符操作
strval是一个变量,它的作用是存储一个字符串值。
strval=r"剩女最大的愿望就是\n赶紧嫁人"
print(strval)
显示结果应该没有变化,因为禁用转义符
查看结果
删除原字符串
strval="剩女最大的愿望就是\n赶紧嫁人"
print(strval)
验证结果,应为转义符后面内容在第二行显示
十四、类型转换
一、将浮点型转换成整数类型
x=123.45
y=int(x)
print("转换之后的结果是:",y)
验证
二、如果想使转换后的结果没变化
则去掉
y=int(x)
结果验证
三、字符串能不能转换成整数呢 ?如果字符串中都是数字的话,可以
输入
x=1234.5453555
y=int(x)
print(y)
验证结果
到这里可能会有疑问,都是取整,那上面两个的区别在哪里呢? 下面我来给解释一下
在上述代码中,第一个例子中使用了浮点数x,并通过int()函数将其转换为整数类型。转换后的结果为123。
第二个例子中,使用了字符串x=“1234”,并通过int()函数将其转换为整数类型。转换后的结果仍然是1234。
区别在于:
第一个例子中的浮点数x=123.45被转换为整数时,小数部分被截断,只保留整数部分。
第二个例子中的字符串x="1234"被转换为整数时,整个字符串中的字符被依次解析成数字来构成整数。由于字符串中只包含数字字符,所以能够成功转换为整数。
在类型转换中,int()函数用于将数字或字符串转换为整数类型。但要注意,如果字符串中包含无法解析为整数的字符,或者字符串为空,则会引发ValueError异常。例如,将字符串"x = ‘123abc’"转换为整数时,会抛出ValueError异常,因为字符串中包含了非数字字符。
总之,int()函数用于将数字或符合要求的字符串转换为整数类型,但对于非法的转换操作,会引发异常。
十五、x是英文字母,并使用 or 进行布尔值验证
x="z"
x<="z" and x>="a" or x<="Z" and x>="A"
x的范围小于z 大于z 或者小于Z 大于A
验证结果为 True
x="Z"
x<="z" and x>="a" or x<="Z" and x>="A"
验证结果为True
x=1
x<="z" and x>="a" or x<="Z" and x>="A"
因为1这个值,不在a-z A-Z的范围,所以显示结果为False
字母大小写比较的原理
ord
ord(“a”)是一个Python内置函数,用于返回给定字符的Unicode码点。在ASCII编码中,字母"a"的Unicode码点是97。
以此类推可以成功查看每个字母对应的相应数值
以下是示例代码
十六、查看字符串是否包含内容
var = 'i am is winner '
result = 'winner' in var
print(result)
目的是检查字符串变量var中是否包含子字符串'winner'。通过使用'in'运算符,可以检查指定的子字符串是否存在于给定的字符串中。如果存在,结果(result)将为True,否则为False。
var = 'i am is winner '
result = 'lowser' not in var
print(result)
这段代码检查字符串变量var中是否不包含子字符串'lowser'。通过使用'not in'运算符,可以判断指定的子字符串是否不存在于给定的字符串中。如果不存在,结果(result)将为True,否则为False。
列表成员运算
lists = ['赵美新','邓玉洁','徐影','李艳玲','万玲云']
result = '邓玉洁' in lists
print(result)
result = '邓玉杰' not in lists
print(result)
这段代码检查列表变量lists中是否包含指定的元素。使用in运算符可以判断给定的元素是否存在于列表中。如果存在,结果(result)将为True,否则为False。使用not in运算符可以判断给定的元素是否不存在于列表中。如果不存在,结果(result)将为True,否则为False。
结果显示 为 两个 True
十七、判断某一年x是否是闰年的表达式
闰年的口诀是 四年一闰,百年不闰 ,四百年又闰
所以判断某一年是否是闰年有两种情况,1.能被400整除 2.能被4整除,同时不能被100整除
def is_leap_year(year):
if year % 400 == 0:
return True
elif year % 4 == 0 and year % 100 != 0:
return True
else:
return False
# 在此处输入你想要判断的年份
year = 2024
if is_leap_year(year):
print(year, "是闰年")
else:
print(year, "不是闰年")
验证结果(这种方法需要在year后面输入数字,能被4整除则是闰年)
输入2023
显示不是闰年
第二种方法:如果想输入结果,实时显示变化
则输入
def is_leap_year(year):
if year % 400 == 0:
return True
elif year % 4 == 0 and year % 100 != 0:
return True
else:
return False
# 在此处输入你想要判断的年份
year = int(input())
if is_leap_year(year):
print(year, "是闰年")
else:
print(year, "不是闰年")
验证结果
是让输入数字,而不是直接验证显示结果
看输入 2024 和 2023的结果
七、布尔值
一、什么是布尔值
布尔值是一种数据类型,用于表示逻辑值,只有两个可能的取值:True(真)和False(假)。非0值转换为True,将0转换为False,在Python中,布尔值是内置的关键字,用于表示真假、开关状态等情况。
布尔值常用于条件判断、逻辑运算和控制流程等方面。例如,在if语句中,判断条件的结果必须是布尔值,根据布尔值的真假来决定执行哪个代码块。
关系运算符(比如==、!=、>、<、>=、<=)和逻辑运算符(比如and、or、not)通常用于比较或者组合布尔值。
二、简单的示例
x = 5
y = 10
is_greater = x > y # 判断x是否大于y,结果为False
print(is_greater) # 输出False
is_greater = x < y # 判断x是否大于y,结果为True
print(is_greater) # 输出True
is_equal = x == y # 判断x是否等于y,结果为False
print(is_equal) # 输出False
is_true = True # 布尔值True
print(is_true) # 输出True
is_False = False # 布尔值False
print(is_False) # 输出False
解释
is_true = True # 布尔值True
print(is_true) # 输出True
is_False = False # 布尔值False
print(is_False) # 输出False
验证结果
三、整数转换为布尔值
x=20
>>> y=bool(x)
>>> print(y)
验证结果
如果将内容输入为x 时,则显示内容为变量x的值
四、浮点数转换为布尔值
x=10.2
y=bool(x)
print(y)
验证
x=10.2 (将x的变量设置为10.2)
y=bool(x) (在代码中表示会将x转换为布尔型)
print(y) (将变量y输出到控制台,输出结果)
即将非0值转换为True,将0转换为False。
当x的值为20时,y的值为True。输出结果为True和20。
五、布尔值转换为整数
x=False
"x=False"表示将变量x的值设置为False。
y=int(x)
"y=int(x)"将x的值转换为整数类型,即False转换为0。因此,将变量y的值设置为0
print(y)
最后,"print(y)"将变量y的值输出到控制台,结果为0。
x=True
"x=True"表示将变量x的值设置为True。
y=int(x)
"y=int(x)"将x的值转换为整数类型,即True转换为1。因此,将变量y的值设置为1
print(y)
最后,"print(y)"将变量y的值输出到控制台,结果为1。
这串代码的意义为 输出两个结果0和1
验证
六、布尔值转换字符串类型
x=True
y=str(x)
print(y)
这段代码的意思是将布尔型变量x转换为字符串类型,并输出结果。
验证
八、运算
一、加
result=3+5
print(result)
8
二、减
result=5-3
print(result)
2
result=3-5
print(result)
-2
result=3-3
>>> print(result)
0
三、乘
*号代表乘而不是代表全部
result=3*5
print(result)
15
四、除
result=3/5
print(result)
0.6
result=5/3
print(result)
1.6666666666666667
五、取余运算
result = 7 % 10
print(result)
在这个代码中,"7 % 10"表示7除以10的余数。余数运算符(%)用于计算两个数相除后的余数。
在这段代码中,7除以10的余数是7,因为7无法整除10,所以余数为7。变量"result"被赋值为7,然后通过"print(result)"将其输出到控制台。因此,输出结果是7。
验证
六、取商运算
如果不能整除则显示整数,不会四舍五入
result = 7//2
print(result)
result = 9//3
print(result)
result = 10//4
print(result)
显示结果
因为 七除二 和 十除四 不能整除,所以只显示整数
七、幂运算
计算一个数的N次方
result = 4 ** 5
print(result)
在这段代码中,"4 ** 5"表示将4的5次方。双星号(**)用于计算一个数的幂。
显示结果
八、不确定尾数
注意:python语言的浮点数运算存在一个"不确定尾数"问题,即两个浮点数运算,运算结果可能会增加"不确定尾数"。
>>> 0.1+0.3
0.4
0.2+0.4
>0.6000000000000001
0.1+0.2
0.30000000000000004
0.2+0.3
0.5
能被二进制精确表示的不存在这个问题,不能被二进制精确表示的会出现这个问题
这种差异是由于浮点数的存储和计算精度引起的。在计算机中,浮点数的表示是基于二进制的,而不是十进制。由于二进制无法精确表示某些十进制数,因此在浮点数计算中可能出现舍入误差。
在第一个例子中,0.1 + 0.3的结果是0.4,因为这两个数可以精确地由二进制表示。
在第四个例子中,0.2 + 0.3的结果是0.5,因为这两个数也可以精确地由二进制表示。
而在第二个和第三个例子中,0.2、0.3和0.1这些数在二进制中无法精确表示,因此计算结果会有一个微小的舍入误差。
这种舍入误差是浮点数计算中的常见情况,需要在使用浮点数进行数值计算时予以考虑。如果需要更高的精度,可以使用Decimal模块进行精确的十进制计算。
如果想精确为小数,则乘10 在除10
2+4
6
6/10
0.6
这样不会显示不确定尾数的问题
九、比较运算
一、大于运算
result = 5 > 2
print(result)
验证
二、小于运算
result = 3 < 5
print(result)
验证
三、等于运算
result = (5 == 5)
print(result)
四、提示
如果 运算错误 则会提示 False
result = 5<2
>>> print(result)
False
因为5不小于2 所以报False
五、大于等于
result = 5>=8
>>> print(result)
False
因为5不大于等于8 所以提示 False
六、小于等于
result = 8<=8
>>> print(result)
True
因为8小于等于8 所以提示 True
七、不等于
result = 8!=8
>>> print(result)
False
因为8不等于8是错误的所以提示 False
result =7!=8
>>> print(result)
True
因为7不等于8所以提示True正确
注意:python中类型不同就是不等于
十、逻辑运算
一、逻辑与运算(有假则假)
与 的含义就是 and
var1=False
var2=False
result = var1 and var2
print(result)
验证 (一定是假 False)
var1=True
var2=False
result = var1 and var2
print(result)
验证(因为是有假则假,所以他验证也是假)
二、逻辑或运算 (有真则真)
var1 = False
var2 = False
result = var1 or var2
print(result)
验证(因为都是假,所以结果一定是假)
var1=True
var2=False
result = var1 or var2
print(result)
验证(因为有真则真,所以一定是真的)
三、逻辑非运算
var1 = True
result = not var1
print(result)
在这段代码中,var1被赋值为True,然后result被赋值为not var1。not运算符用于对布尔值取反,即True变为False,False变为True。
因此,not var1的结果是对True取反,最终结果为False。所以,当代码运行时,print(result)将输出False。
这是因为not运算符会将True转换为False,而将False转换为True。
显示结果为
如果var1=False 则结果为 True
var1 = False
result = not var1
print(result)
显示结果为