变量和数据类型

变量和数据类型在编程语言里倒是没有多少不同,python这门编程语言也是,上学期刚学过C语言,所以学起其他语言会省力一点。
变量来源于数学,是计算机语言中能储存计算结果或能表示值抽象概念。变量可以通过变量名访问。在指令式语言中,变量通常是可变的。
数据类型(几种比较常用的)
1.整型(用int来表示):python里的整型可以表示二进制、八进制、十进制、十六进制。
2.浮点型:跟C里的一样,表示小数。
3.字符串型:在python这里字符串用单引号或者双引号串起来都可以,不像C,只能用双引号。
*4.布尔型:布尔值只有True、False两种值,python里,可以直接使用这两个布尔值,(不过大小写要注意)
*5.复数型:跟数学上的复数表示一样,两者不一样的地方是虚部的i换成了j
上面几种,有两个我用“*”标注起来了,这两种是我之前学C的时候没有遇到的,所以我就做了个标记。
下面做个实例,用用这几个数据类型。
在Python中可以使用type函数对变量的类型进行检查。使用type()检查变量的类型
在这里插入图片描述
str是字符串类型
complex是复数类型
bool布尔类型
还可以使用Python中内置的函数对变量类型进行转换。

  • int():将一个数值或字符串转换成整数,可以指定进制。
  • float():将一个字符串转换成浮点数。
  • str():将指定的对象转换成字符串形式,可以指定编码。
  • chr():将整数转换成该编码对应的字符串(一个字符)。
  • ord():将字符串(一个字符)转换成对应的编码(整数)。

    进制转换

    进制转换也是困扰我好长时间的问题,因为没有经常使用,所以记了忘,忘了再记,害~今天我把它记下来,再记一遍!!
dec = int(input('10进制数为:'))
print("转换为二进制为:", bin(dec))
print("转换为八进制为:", oct(dec))
print("转换为十六进制为:", hex(dec))

a = '101010'
print("二进制字符串转换成十进制数为:",int(a, 2))
b = '36'
print("八进制字符串转换成十进制数为:",int(b, 8))
c = 'FFF'
print("十六进制字符串转换成十进制数为:",int(c, 16))
#运行结果:
10进制数为:10
转换为二进制为: 0b1010
转换为八进制为: 0o12
转换为十六进制为: 0xa
二进制字符串转换成十进制数为: 42
八进制字符串转换成十进制数为: 30
十六进制字符串转换成十进制数为: 4095

算术运算

运算符 涵义
+-*/
==>=<=!= 等于大于等于小于等于不等于
**//<<>> 指数整除左移右移
andor
这些都是最常用的运算符,在实际开发中,如果搞不清楚运算符的优先级,可以使用括号来确保运算的执行顺序。
简单的加减乘除就不用说了,跟C的样子没什么区别。
这次我决定换个方式学习python,就是学习小甲鱼的方法——边写实例边学习新知识,就是实战中学习。小甲鱼python! 下面看看效果。
字符串合并
>>> yourfriend = '康康'
>>> myfriend = '开心'
>>> ourfriend = yourfriend + myfriend
>>> print(ourfriend)
康康开心

简单的字符串合并在python中就可以这样实现,感觉比C简单多了。继续……
转义字符
转义字符是\。比如:你想打印let's go这个'怎么办呢???直接打印恐怕是不行!!,先试试:在这里插入图片描述
看,报错了。果然不行,这个时候用到了转义字符
在这里插入图片描述
看下对比!!!很明显转义字符起作用了。
长字符串
如果遇到长的字符串怎么打印呢,?比如:歌词吧!:
这一天 我终于与你相见
你露出了已久不见的笑脸
你的小酒窝 让我浮想联翩
我真的好久都没这种感觉
你像 花儿一样很美
美的让人沉醉
让我忘了我是谁
你的美像一个刺猬
句句刺我心扉
让我带着你微笑回味
这个就应该用到三重引号什么是三重引号,看例子
在这里插入图片描述
嘿嘿!!这样多好。。
e记法
在数据中有时候会出现非常大的数,像:1500000000000.0000000000025之类的数,我们记起来非常麻烦,所以就有了e记法。看样例:

>>> 150000000000000000000
150000000000000000000
>>> 1.5e11
150000000000.0
>>> 0.0000000000025
2.5e-12

e记法比较省事,规律搞明白用处非常多!!
布尔类型的小规律
都知道布尔类型只有True和False,其实布尔类型可以说是特殊的整型,True代表1、False代表0。具体看下示例:
在这里插入图片描述
很明显,是可以的,而图中报错的地方相信都明白——零不能做除数。不过,这个就当是了解一下,在计算中这么做不合适。!!!
数据类型间的转换
1.将字符串类型转换为整型

>>> a = '520'
>>> b = int(a)
>>> print(b)
520

2.浮点型转换为整型

>>> a = 5.99
>>> c = int(a)
>>> print(c)
5

这里需要注意的是,python在这儿做的是截断处理,就是将小数点后面的数全部截掉!!而不是数学中的四舍五入。
3.字符串转换成浮点型

>>> a = '520'
>>> d = float(a)
>>> print(d)
520.0

这个不用多做解释,都理解。
整数也一样

>>> a = 520
>>> e = float(a)
>>> print(e)
520.0

很简单的。。。
4.其他类型转换成字符串类型

>>> a = 520
>>> b = str(a)
>>> b
'520'
>>> a = 5.99
>>> c =str(a)
>>> c
'5.99'

他就会自动在数字上加单引号
查看数据类型
上一篇文章我写到了一种,type()函数。可以查看一下,现在还有一种方法,就是使用isinstance()函数。话不多说看示例:

>>> isinstance(250,int)
True
>>> isinstance(520.1314,float)
True
>>> isinstance('lixinjie',str)
True
>>> isinstance(True,bool)
True
>>> isinstance(520,float)
False

如果是相应的数据类型就会回复True,不是就回复False
算数运算
关于算数运算,我上篇博客也只是写到算数运算符而已,这次写下怎么使用。还是老规矩,直接上实例:

>>> a = b = c =d = 10
>>> a += 1
>>> b -= 3
>>> c *= 10
>>> d /= 8
>>> a
11
>>> b
7
>>> c
100
>>> d
1.25
>>> 10 // 8
1
>>> 3.0 // 2
1.0
>>> 5 % 2
1
>>> 3 ** 2
9
>>> 3 ** 5
243

如果混合运算的话,害,记住一句亘古不变的话(说个高级点的词汇装下X,哈哈哈):先乘除,后加减!
哎,对了,我还借了(我们都是IT学习爱好者,这不能说偷知道吗,,,,)小甲鱼一张图片。
在这里插入图片描述
哈哈哈,过瘾,感觉这样学真不错。
逻辑操作符
andornot
老规矩,看示例:

>>> 1 > 2 and 3 < 4
False
>>> 1 > 2 or 3 < 4
True
>>> not True
False
>>> not False
True

哈哈哈,,例子真的比语言易懂!!!
反正我这么学感觉挺好,哈哈哈,希望对你们有一点点的帮助哈,一起学习,一起进步。
溜了溜了!!!!

分支和循环

if语句

在C语言里,学过if语句,Python中的if语句和C语言的差不多,老规矩,直接上示例:如果编写百分制学生成绩评分,分为‘A’、‘B’、‘C’、‘D’几个等级,那么可以怎么写呢??????

# 第一种:
score = int(input('请输入一个学生的分数:'))
if 100 >= score >= 90:
    print('A')
if 90 > score >= 80:
    print('B')
if 80 > score >= 60:
    print('C')
if 60 > score >= 0:
    print('D')
if score < 0 or score > 100:
    print('输入错误')

这样看起来有点低级,不过这很像C语言中的if,很容易理解,不过有更简便的,看第二种:

# 第二种:
score = int(input('请输入一个学生的分数:'))
if 100 >= score >= 90:
    print('A')
else:
    if 90 > score >= 80:
        print('B')
    else:
        if 80 > score >= 60:
            print('C')
        else:
            if 60 > score >= 0:
                print('D')
            else:
                print('输入错误')

这个看起来就有点不一样了,害,你品,你细品,当然,他们俩都不是今天的主角,主角是它:

# 第三种,它是今天的靓仔:
score = int(input('请输入一个学生的分数:'))
if 100 >= score >= 90:
    print('A')
elif 90 > score >= 80:
    print('B')
elif 80 > score >= 60:
    print('C')
elif 60 > score >= 0:
     print('D')
else:
     print('输入错误')

在Python中,比较常用的就是if ···elif···else这个也是Python跟C语言不同的地方,这里还体现出来Python的一个特点:简洁!!!仔细对比这三个代码,觉得那种适合自己就用哪种,毕竟编程语言没有最好的,只有最适合的。

断言

断言呢,一个小知识点,什么是断言???assert这个关键字我们称之为“断言”,当这个关键字后面跟的条件为假时,程序自动崩溃并抛出AssertionError的异常,举个例子:assert 3 > 4,看下结果:
在这里插入图片描述
我刚看到这个东西的时候第一时间想的是,这有什么用啊,让系统崩溃?????写程序不就是为了让它能够好好的运行吗??为什么还要设置让它自动崩溃的步骤呢????当时就一个字——!!
原因:一般都是拿它插在程序里,当做检查点。当需要确保一个程序的一个条件一定为真才能让程序正常工作的话,assert就很有用了。哦。。。原来还能这么用啊,真是学到了,还是想的方面太狭窄,没有往其他方面扩展。

循环

循环是很重要的,在任何一种编程语言当中,它都极其重要,它可以减少程序员写代码的时间,遇到使代码更加简洁。

for循环

for循环的结构:

for 目标 in 表达式
    循环体

老规矩,先看个示例:
在这里插入图片描述
这里我拿money做个例子,实不相瞒,我就是喜欢money,嘿嘿!!!
这里可能会有人对那个end=有点不理解,看着有点懵B,咳咳,因为我就是这样的人……至于他是什么呢,我再举个例子就明白了:
在这里插入图片描述
看看看看,对比一下,哪里不一样啦????它换行了,有了那个end,就不会换行了,如果没有end在Python里,它是默认换行的。
再看一个做下比较:
在这里插入图片描述
这个[ ]嘛,就跟C语言中的数组类似,这里知道就行,后面再说。
len 是长度,这个也到后面再提。
这个代码的意思是对于member里的每一项,都使用列表打印出来,并且显示出来这个字符串的长度。
range()
语法:range([start],stop,[step=1])
这个BIF有三个参数,其中带中括号的参数是可选的
step=1,表示这第三个参数默认值是1
range这个BIF的作用是生成一个从start参数值开始到stop参数值结束的一个数字序列。老规矩,上示例:

>>> range(5)
range(0, 5)
# 列出来康康:
>>> list(range(5))
[0, 1, 2, 3, 4]

range(),跟for经常连在一块用,
在这里插入图片描述
看看这几个示例就清楚了,!!!

while循环

while循环其实,没什么,因为它跟C语言很像,几乎没什么不同,也没什么可说的。

while  条件
     循环体
关键词

break
这个不会陌生,它在循环里的作用是跳出循环,这个应该不需要解释。
continue
这个的意思就是,如果符合条件的话,它以下的语句就不执行了。
看个代码,

for i in range(10):
if i%2 !=0:
	print(i)
	continue
i += 2
print(i)

这是个数字小游戏,不妨先看看,在脑袋里过一遍这个代码,想想会输出什么,下面有答案:
在这里插入图片描述
看看答案,跟想的一样不一样,不一样的话就再好好看下代码,多看几遍;一样的话就证明已经理解了。

列表

Python里面没有数组一说,而代替数组作用的有个新名字,叫做列表
数组要求你放在数组里的数据类型必须一致,整型就放整型,字符串就放字符串,不能混合放置。
列表也可以理解为是一个强大的数组,但不能说是数组,Python没有数组,有的只是列表。列表可以放各种不同的数据,功能比较强大。
首先,先创建一个普通的列表,老规矩:

# 简单列表:
>>> member = ['中国加油','武汉加油','白衣天使加油']
>>> member
['中国加油', '武汉加油', '白衣天使加油']
>>> member = [1,2,3,4,5]
>>> member
[1, 2, 3, 4, 5]

列表可以起C语言中数组的作用。可以放字符串,也可以放数字。当然,也可以放其他的……
再创建一个混合列表:

#混合列表;
>>> mix = [1,'zxcv0221',3.1415926,[4,5,6]]
>>> mix
[1, 'zxcv0221', 3.1415926, [4, 5, 6]]

这个列表就很强,可以放整型数字,还可以放浮点型、字符串,也看到了,还可以在里面再放一个列表。
还可以创建一个空列表

>>> empty = []
>>> empty
[]

这个就是个空列表。
那么,如何向列表中添加元素呢?????Python当然它的办法,
第一种方法:
这个时候用到一个函数,名字叫做append()具体怎么用呢??说再多也不如直接看例子来的好,嘿嘿(为我懒得打字找个理由)!!!

>>> member
[1, 2, 3, 4, 5]
>>> member.append('添加项1')
>>> member
[1, 2, 3, 4, 5, '添加项1']

加上了,哈哈哈。那我再来试试,这次我添加两个,嘿嘿
在这里插入图片描述
哎???一次只能添加一个??好吧,这个函数看来能力有限,没关系,还有第二种,要相信大佬人总会想各种方法偷懒,嘿嘿,当然会有更简便的方法;
extend函数,这个是可以添加多个的它的使用方法跟append有点稍微不同;
看下示例:
在这里插入图片描述
成功啦,,,看出来了吗????这个函数在列表里添加元素要加中括号,这个是在列表里添加列表元素。。。。这样不就好起来了嘛。
那么看了这两个例子,有没有发现一个问题,我添加进列表的元素都是排在后面的,这是默认的,但是我想把它排在第一位,现在就再添加一个元素,这次我要让它排老大。

>>> member.insert(0,'我要排第一!')
>>> member
['我要排第一!', 1, 2, 3, 4, 5, '添加项1', '添加项2', '添加项3']

哈哈哈,排第一了,insert()函数,可以自己选择插入位置,这个函数有两个参数,第一个参数定位置。当然这里我用0,应该没有异议,哈哈哈,毕竟我们学编程的眼里的第“一”位是0
那么现在我就不想让它在第一个,我要想办法给他换到其他位置,怎么做,
老规矩;
在这里插入图片描述
你想排第一?,哈哈哈我就不让你排第一,倒数第一去吧。。。
上面的换位方法和其他编程语言类似,找个空的值,先将一个值存在这个空值里,再换位。
删除元素
也是三种方法:
1.remove()删除一个元素,删除谁呢?emmmmm 那就删了那个想排第一的吧,嘿嘿!

>>> member.remove('我要排第一!')
>>> member
['添加项3', 1, 2, 3, 4, 5, '添加项1', '添加项2']
#好,已经删除了

注意:如果同一列表中有两个相同的元素,那么使用此函数,默认删除从左到右数第一个元素。
2.del语句
del就是delete的缩写,用法看下面

>>> del member[0]
>>> member
[1, 2, 3, 4, 5, '添加项1', '添加项2']

这里我又把第0位的那个删除了。可以自定义想要删除的元素参数。
3.pop()
pop()函数是有一个参数的,如果不添加参数,默认删除最后一个元素。

>>> member.pop()
'添加项2'
>>> member
[1, 2, 3, 4, 5, '添加项1']

看第二行代码,删除之前,它会显示将要删除的那个元素。Python还是很人性化的。。
当然也可以想删哪个删哪个。

>>> member.pop(5)
'添加项1'
>>> member
[1, 2, 3, 4, 5]

现在这个列表已经被删的就剩数字元素了。
列表分片
这个不好描述,老规矩:

>>> member
[1, 2, 3, 4, 5]
>>> member[1:3]
[2, 3]
>>> member[:4]
[1, 2, 3, 4]
>>> member[1:]
[2, 3, 4, 5]
>>> member[:]
[1, 2, 3, 4, 5]

先看第一个,member[1:3]分出来member的第一位,到第三位,但是这个中括号是左闭右开,数学中的术语,就是左边是可以取到,而右边不能取到。注意:这里说的第一位是2,毕竟0才是第一个嘛
第二个,前面那个参数没有设置,那就默认全都有了,第三个跟第二个类似。
第四个,左右两边都没有参数,相当于一个列表的拷贝,讲原来的列表拷贝一份。

与列表连用的函数

与列表连用的函数有很多,可以输入dir list就可以查看
在这里插入图片描述
这里就不一一举例了,因为我也就会几种而已
在这里插入图片描述

list.reverse()#将列表中的元素从大到小排列
list.sort()#讲列表中的元素从小到大排列
list.count()#参数有一个,计算该参数在上面出现的次数
list.index()#参数三个,(信息,开始位置,结束位置)找出想找到的信息所在的位置

下面还有一些列表的比较好玩的用法

>>> list1 = [123]
>>> list2 = [456]
>>> list1 > list2
False             #从这里可以看出来列表也可以比较大小
>>> list1 = [123,456]
>>> list2 = [234,256]
>>> list1 > list2
False        #列表有多个元素比较大小时,只比较第一个元素的大小来确定列表大小
>>> list3 = list1 + list2
>>> list3           #可以相加
[123, 456, 234, 256]
>>> list4 = list3
>>> list4         #虽说是复制但真正用时这两个列表的变化是关联的
[123, 456, 234, 256]
>>> list3 * 3                #打印多次可以这么用
[123, 456, 234, 256, 123, 456, 234, 256, 123, 456, 234, 256]

等于跟拷贝是两个概念,不一样的。等于是指对于这个列表,只是多了一个指向它的标签;而拷贝则是在新的空间复制了一份,占用了额外的内存。两者不同!!!