Python自学历程

Python 基础知识

前言

1989年的圣诞节期间,Guido van Rossum为了在阿姆斯特朗打发时间,决心开发一个新的脚本解释型语言,一刹那间,Python问世。

Python编译环境的安装

你可以去www.python.org/downloads/下载python的编译环境,当然也可以使用Jet Brain系列的Pycharm
python下载完成运行界面:打开运行,输入python:
在这里插入图片描述

pycharm运行界面:
在这里插入图片描述

开始

所有代码将在pycharm中运行

“伟大往往始于渺小”

按照惯例,每一门语言都是从“hello world”开始的,python也不例外,但她的简洁会使你惊讶:

print("hello world!")

python不需要写include来包含头文件就可以实现简单的运行。
python的注释可以使用“#”,来注释整行:
在这里插入图片描述
运行
在这里插入图片描述

数和四则运算

数:整型、浮点型
四则运算:加减乘除

在这里插入图片描述
在这里,我做了三个简单的赋值,分别是将3赋给a,将4.0赋给b,将5赋给c,第10行的\n是转义字符,它的含义与c语言相同,换行
运行
在这里插入图片描述
内建函数

可以看到,整型与浮点型的运算结果会自行加上小数点,即使运算结果是整数,在整型与整型的运算中,运算结果是直接显示的。

在python中有很多的内建函数,例如id():

print(id(123))

运行
在这里插入图片描述
id()是用来求某一变量在内存中的地址的,显然123的地址是1766157312

且id(123.0)和id(123.0)的结果是不同的,因为它们不是同一个变量。

**type()**函数可以用来求得类型:
在这里插入图片描述
运行
在这里插入图片描述

这里需要强调一下除法
在python2.7中,整数除以整数是自动省略小数部分的。

在python中,四则运算的规则与生活中的数学是一样的。

取余运算
这个也很简单,与其他语言相同,使用符号%

print(5%2)

显然结果是1:
在这里插入图片描述

常用数学函数

在Python中,简单的加减乘除可以直接实现,还有其他数学上常用的函数,如开平方,求绝对值,三角函数等,都包含在了math模块中。

python的模块概念类似于C/C++中的头文件

比如,调用模块math,可以使用math模块中的各种方法:
在这里插入图片描述

指数运算

在python中,有两种计算次方的方法,比如计算 x y x^y xy
1、调用math模块中的pow(x,y)方法
在这里插入图片描述
运行结果:
在这里插入图片描述

2、直接输出 x ** y
在这里插入图片描述
运行结果:
在这里插入图片描述
可以发现,使用第二种方法得到的值以整数形式表示。

开根

调用math模块中的sqrt方法来计算某个数值的根,比如 x \sqrt{x} x
在这里插入图片描述
运行结果:
在这里插入图片描述

取余

在math模块中包含了第二种取余的方法fmod:
在这里插入图片描述
将前面提到的使用%符号的方法与fmod取余进行对比,运行结果:
在这里插入图片描述
使用%符号的取余运算得到的结果是整型,而fmod方法得到的结果是浮点型

绝对值

在math模块中调用fabs方法求绝对值:
在这里插入图片描述
运行结果:
在这里插入图片描述
可以看到,不论是整型正数和负数还是浮点型正数和负数,均以浮点型表示。

向下取整

在math模块中专门提供了向下取整的方法floor
在这里插入图片描述
运行结果:
在这里插入图片描述

π

在math模块中,包含了圆周率π的变量
在这里插入图片描述
运行结果:
在这里插入图片描述

运算优先级

python的运算优先级从低到高:

名称描述
lambdalambda表达式
or逻辑或
and逻辑与
not逻辑非
in,not in成员测试
is,is not同一性测试
<,<=,>,>=,!=,==比较
|按位或
^按位异或
&按位与
<<,>>左移,右移
+,-加,减
*,/,%乘,除,取余
+x,-x正负号
~按位取反
**指数
x.attribute属性参考
x.[index]下标
x[index1:index2]寻址段
f(arguments…)函数调用
(experession,…)绑定元组或元组显示
[experession,…]列表显示
{key:value}字典显示
‘experession’字符串转换

与生活中相同,带括号的往往是最优先的

字符串

在python中,字符串可以用 ’ '或者" "括起来
在这里插入图片描述
运行结果:
在这里插入图片描述
可以看到,单引号和双引号括起来的字符串,表示出来是完全相同的。

当要输出一个本身就带有单引号的语句时,使用双引号来包含或者使用转义字符
比如输出what’s your name?
在这里插入图片描述
运行结果:
在这里插入图片描述
两种方法输出结果完全相同。

字符串的拼接

在python中,可以灵活的拼接多个字符串,比如将wel和come拼接起来组成welcome:
在这里插入图片描述
运行结果:
在这里插入图片描述
字符串可以相加,但不能相减,比如
“python”-“interesting” = 报错

可以使用str()来将其他的类型转换为字符型,比如x = str(3),那么变量x的类型就是字符型,即:x = ‘3’;
也可以使用repr()方法来进行转换
当把数字转换为字符之后,就可以进行字符串的拼接了:
在这里插入图片描述
运行结果:
在这里插入图片描述
两种方法的运行结果完全相同。
str()和repr()的区别在于:str与int,float一样,是一种数据类型,而repr是一个函数。

Python转义字符表
字符描述
(在行尾时)续行符
\反斜杠符号
\ ’单引号
\ "双引号
\ a响铃
\ b退格
\ e转义
\ 000
\ n换行
\ v纵向制表符
\ t横向制表符
\ r回车
\ f换页
\ oyy八进制数
\ xyy十六进制数
python的输入和输出

python中的输入函数为input(),输出语句为print(),举个例子:
在这里插入图片描述
在这里插入图片描述
input()可以输入提示语句来提示用户接下来需要输入什么信息。

字符串的索引和切片
索引

在python中,字符串可以通过索引来提取其中的一个或多个字符,
索引默认是从0开始的,取出string1字符串中索引为0和索引为6的字符并输出:
在这里插入图片描述
运行结果:
在这里插入图片描述
同样地,可以通过使用index()方法来求得已知字符的索引值:
在这里插入图片描述
运行结果:
在这里插入图片描述

切片

在python中,可以通过分割字符串来截取其中的一部分,这个操作就叫切片,
比如string1[x:y],求得的是索引 x 到索引 y-1 对应的字符串
在这里插入图片描述
运行结果:
在这里插入图片描述
在python中,
可以使用len()方法来计算某字符串或者其他序列的长度:
在这里插入图片描述
运行结果:
在这里插入图片描述
使用in来判断元素是否存在于序列中
在这里插入图片描述
运行结果:
在这里插入图片描述
可以通过max()和min()来求得序列中最大和最小的元素
在这里插入图片描述
运行结果:
在这里插入图片描述
可以通过ord()来返回一个字符的ASCII码值:
在这里插入图片描述
运行结果:
在这里插入图片描述
python中字符串的格式化输出:
在这里插入图片描述
运行结果:
在这里插入图片描述
当然,类似于%s这样的占位符还有很多,见下表:

占位符描述
%s字符串,使用str()显示
%r字符串,使用repr()显示
%c单个字符
%b二进制整数
%d十进制整数
%i十进制整数
%o八进制整数
%x十六进制整数
%e指数,基底写为e
%E指数,基底写为E
%f浮点数
%F浮点数

还有另外一种格式化输出的方式:
在这里插入图片描述
运行结果:
在这里插入图片描述
在{}中填写索引值,在format()中依次输入对应的信息。

在python中可以使用split()方法来实现:根据某字符或字符串进行切割一个字符串,被分割的字符串默认以列表的形式显示。
例如:
定义字符串string1 = “a1 a2 a3”,以一个空格为分割符,使用split方法将其分割
定义字符串string2 = "192.168.1.1"以“.”为分割符,使用split方法将其分割
在这里插入图片描述
运行结果:
在这里插入图片描述

strip(),lstrip()和rstrip()
strip可以去掉字符串两端的空格
lstrip可以去掉字符串左端的空格
rstrip可以去掉字符串右端的空格
定义一个字符串string1 = " 12345 ",在左边打出两个空格,在右边打出一个空格,这样使用lstrip和rstrip后用len方法计算长度就可以区别开来:
在这里插入图片描述
运行结果:
在这里插入图片描述
python中的大小写转换

upper() – 转换为大写,lower() – 转换为小写,capitalize() – 首字母大写,title() – 首字母全为大写,其余为小写(例如:I Like Apple),isupper() – 检测是否全为大写,islower() – 检测是否全为小写,istitle() – 是否首字母为大写其余为小写
在这里插入图片描述运行结果:
在这里插入图片描述
值得一提的是,你可以转换方法和检测方法一起使用:
如上图最后一个print,string1首先调用title()方法进行转换,再调用istitle()方法进行检测,那么检测结果不用说,肯定为真。

使用join拼接字符串
join做的事情和split正好相反,它可以把一个列表中的所有元素通过一个字符或符号连起来,当然,这个字符由我们来定:
在这里插入图片描述
运行结果:
在这里插入图片描述
我使用了“+”来连接number列表中所有的元素。

列表

列表是python中最重要的数据类型之一,它类似于java中的数组,同样地,列表元素的索引也是从0开始的,在python中,列表元素的定义更灵活,我可以将各种类型的鸡蛋放在同一个篮子里:
在这里插入图片描述
运行结果:
在这里插入图片描述
如何证明每个元素的类型不同?可以编写一个简单的检测程序:
在这里插入图片描述
运行结果:
在这里插入图片描述
可以看到,我使用了type()方法对list1中的每个元素进行了检测,结果与我看到的相同,第一个,第三个和第四个均为字符型,第二个为整型。
使用bool()来判断一个列表是否为空
在这里插入图片描述
运行结果:
在这里插入图片描述
list1中有元素,bool()的返回值为true,list2中无元素,bool()的返回值为false

列表的索引和切片

列表的索引和切片的规则其实与之前字符串的差不多,可以说是基本一致。
list1[x:y],其中x的值是必须小于y的,即使使用的是负数也要遵循此原则:
在这里插入图片描述
运行结果:
在这里插入图片描述
正数的切片或许会更容易理解一些,图中list1[1:3],切片是取前不取后的,所以真正截取的元素是索引为1的到索引为3-1的;同样地,负数切片,list1[-3:-1],截取的元素则是倒着数的索引为3-1的到索引为1的;其实[1,2,3,4,5]的[1:3]与[5,4,3,2,1]的[-3:-1]是相同的,右边第一个的索引值为-1

列表反转
在这里插入图片描述
运行结果:
在这里插入图片描述
这次我并没有做切片,而是多写一个:-1,这个写法可以将列表倒置。
这个小技巧对于字符串同样适用:
在这里插入图片描述
运行结果:
在这里插入图片描述
你会发现python求逆序是很简单的。
还有一种实现逆序的方法:reversed() ,这个方法可以将一个字符串逆序排列然后存入一个列表中:
在这里插入图片描述
运行结果:
在这里插入图片描述
使用len()来求得一个列表的长度
在这里插入图片描述
运行结果:
在这里插入图片描述
在python中,可以使用+对多个列表进行相加:
在这里插入图片描述
运行结果:
在这里插入图片描述
也可以使用extend()来合并两个列表:
在这里插入图片描述
运行结果:
在这里插入图片描述
可以发现,extend是会改变列表的元素,注意一点,extend括号中所填的只能是字符型变量,且它会把一个完整的字符串拆成多个单一字符再进行合并。
在python中,使用append()来添加元素:
在这里插入图片描述
运行结果:
在这里插入图片描述
在这里有一个有趣的现象,当append括号里也是一个列表,那么这个列表会成为被添加列表的一个元素,这么说会有点晕,例如:
在这里插入图片描述
运行结果:
在这里插入图片描述
可以发现,append之后的list1,输出结果是一个列表套一个列表,为了检验这个小列表的确只是一个元素,我使用了len():
在这里插入图片描述
运行结果:
在这里插入图片描述
没错,list2被当做一个元素添加进了list1

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值