Python基础语法(三)

这次首先把之前缺的一点小知识点,类似于常用的常识,先写一下。这些东西一般不会有专门的讲解,就在这次都说了吧。以后也会有类似这样的临时补充,可能会比较突兀,但是也有新鲜感。嘿嘿,开始吧!

基础常识内容补充

1.注释

注释就是在你的代码中对你的代码内容予以说明,让自己或者别人易于理解的一种标注,注释不会对程序的运行产生任何影响。或者可以说,程序运行时,是无视注释的存在的。所以注释里几乎写任何符号或者字符都可以。这里说的是几乎,不是绝对奥。
(1)单行注释
单行注释用井号(#)来标注。这里说一个无关紧要的东西,在PyCharm中,你写了#后再敲一个空格然后写你想写的注释,不会在这一行下多一个波浪线,不敲的话就会有,虽然没啥影响,但是我是强迫症,看着就是不好看,所以加了个空格。

print('I wanna print a line of annotation')
# 打印:我想打印一行注释

>>I wanna print a line of annotation

这里就可以看出来了,就是注释是给人看的,机器忽视它。
(2)多行注释
多行注释用一对儿三引号来标注(有人也说用三个双引号),为什么会用到多行注释呢?这东西到底咋用,为啥?

三引号中可以写任何内容,容许有换行操作(这是三引号常用的主要原因),但是不要写三引号。因为三引号是成对儿存在的,如果你在三引号里头再写一个三引号,第一个和你写的这个匹配成一对儿了,然后第三个单着,很不爽,编译器看不过去,就给你报个Error了。所以该怎么写,你懂得的。

在第一节里我打印过一个皮卡丘,当时就用的三引号把这个皮卡丘的字符串用三引号括了起来然后打印的。我们重新换一个:

print('''
    the first line
    the second line
    the third line
    the fourth line
    the fifth line
    the sixth line
''')

>>
>>    the first line
>>    the second line
>>    the third line
>>    the fourth line
>>    the fifth line
>>    the sixth line
>>

2.常量与变量

(1)常量

常量,就是其在内存的存储的字节数大小是一个固定值,且不会发生变化。字节是一个内存单位,我们叫它byte。
顺便说一下:字节是二进制数据的单位。一个字节通常8位长。但是,一些老型号计算机结构使用不同的长度。为了避免混乱,在大多数国际文献中,使用词代替byte。在多数的计算机系统中,一个字节是一个8位长的数据单位,大多数的计算机用一个字节表示一个字符、数字或其他字符。一个字节也可以表示一系列二进制位。在一些计算机系统中,4 个字节代表一个字,这是计算机在执行指令时能够有效处理数据的单位。一些语言描述需要2个字节表示一个字符,这叫做双字节字符集。一些处理器能够处理双字节或单字节指令。字节通常简写为“B”,而位通常简写为小写“b”,计算机存储器的大小通常用字节来表示。

大概知道是什么意思就行,比如说一个数字5,它就是一个数字5,就是一个常量,没有其他意思了。5,在这里,在这里叫做整型常量。因为是一个整数,并且是常量,故名。对应的,也有小数,不过在这里,叫浮点型常量,因为是浮点数了,比如5.5, 2.21…等。

这些是数值常量,此外,还有字符(串)常量,比如一个字母(字符),一个单词(字符串),一句话(字符串),一个标点(字符),一个空格(字符),一个回车符(字符串)等等,但是要注意的你要说明是字符(串),就必须用单引号或者双引号括起来。如果里面还有换行,注意,你就可以用三引号来括起来了。
这个咱们直接上例子,并用上次说的type()函数来测:

num1 = 1
num2 = 2.1
str1 = 'a'
str2 = "hello"
str3 = '''
        my name is J.GMson
'''
print(num1, num2, str1, str2, str3)
print(type(num1), type(num2), type(str1), type(str2), type(str3))

结果如下所示:

1 2.1 a hello 
        my name is J.GMson

<class 'int'> <class 'float'> <class 'str'> <class 'str'> <class 'str'>

这样就看的很明白了,整型int,浮点型float,字符(串)型str
具体怎么写也都很清楚了。在这时候,你也知道三引号除了可以当注释符用,还可以把一个字符串括起来了。

(2)变量

打个比方来说,变量就像是一个空盒子,你给它赋值什么,这个盒子里就装什么,注意,一次只能装一个,不要抬杠,只能装一个。变量当然也是有名字的,取名的规则就是变量名由数字、字母或下划线组成(有三者之一或者都有,都可以),并且以字母或者下划线开头,比如name, __name, name1, _name1,等等,写法很多,这个是在这个行业里边儿的一个通用的编译的一个操作规范。但是!!!在Python里边儿,用中文作为变量名也是可以的,知道就行了,但是尽量不要用,不然显得太没水平,而且英语还差。总结就是下面这个:

  1. 第一个字符必须是字母表中字母或下划线 _ 。
  2. 标识符的其他的部分由字母、数字和下划线组成。
  3. 标识符对大小写敏感。
    话不多说,上例子:
var1 = 123
var2 = 124
print(var1, var2)
>>123 124
var1 = 123
var1 = 234
print(var1)
>>234

看到了吧?前面的var1和var2就不说了,都能明白;后面的var1和var1我分别赋值不同,后来打印的值,就是最后赋值给的这个234了。这里也充分体现了变量就是一个只能放一件东西的盒子,你要是硬给里面继续塞,那么之前的就会被挤出去。去哪儿,消失!

3.行与缩进

Python对缩进特别敏感特别敏感,只要缩进有误,就会报错。但是,Python最具特色的就是使用缩进来表示代码块,不需要使用大括号 {} 。注意:缩进的空格数是可变的,但是同一个代码块的语句必须包含相同的缩进空格数。

4.数据类型

在前面其实我们已经用过type()这个函数来了解过关于数据类型的部分内容了。在这里也可以联系前面的变量与常量,做个对比与归类学习。现在具体说一下数据类型的知识。
(1)数字(Number)类型
python中数字有四种类型:整数、布尔型、浮点数和复数。

  • int (整数), 如 1, 只有一种整数类型 int,表示为长整型。
  • bool (布尔), 只有两个,分别是True和False
  • float (浮点数), 如 1.2、3E-2
  • complex (复数), 如 1 + 2j、 1.1 + 2.2j

(2)字符串(String)
字符串已经接触过很多次了,总结如下:

  • python中单引号和双引号使用完全相同

  • 使用三引号(’’'或""")可以指定一个多行字符串

  • 转义符 ‘\’
    转移字符小结

  • 反斜杠可以用来转义,使用r可以让反斜杠不发生转义。 如 r"this is a line with \n" 则\n会显示,并不是换行。
    这个r在之后的文件存储常常会用到,比如我们看看一个文件路径:D:\Matlab R2017b Win64\Matlab R2017b Win64\help\install\csh。如果不加r或者别的方法,这里的反斜杠\会被当做转义字符,后面跟的字符没有特殊的含义,就会报错。比如\n是换行符,但是像\q这是什么,编译器不知道,就会报错了,以后可以具体讲。

  • 按字面意义级联字符串,如"this " "is " "string"会被自动转换为this is string。

  • 字符串可以用 + 运算符连接在一起,用 * 运算符重复。

  • Python 中的字符串有两种索引方式,从左往右以 0 开始,从右往左以 -1 开始。
    比如有一句话有十个字,你要对这10个字检索,就要指定检索的位置,哪里开始,哪里结束。如何检索就是上面说的了。

  • Python中的字符串不能改变。这也就是前面说的常量。

  • Python算术运算符,如下图:
    算术运算符

  • Python 没有单独的字符类型,一个字符就是长度为 1 的字符串。

下面以例子说明对字符串的截取“切片”操作。

string = '这是一个有十二个字的字符串'

print(string[:])
# 如果不指定怎么切片,就会全部打印
>>这是一个有十二个字的字符串
print(string[1:])
# 左边的切片是从0开始数的,也就是第一个字是第0个,第二个是1个,右侧不指定就会全部打印
>>是一个有十二个字的字符串
print(string[:3])
# 同理,左侧不指定,会从左侧第0个开始打印,打印到第右侧减一个
>> 这是一
print(string[-7:-1])
# 从最右侧的字符开始计数,第一个数是-1,依次是-2,-3,-4,...
>>二个字的字符

(3)数据类型的强制类型转换
类型转换
通过上图来看,里面的input(‘你多大了呀?’)是等待用户输入的,运程序后,你输入一个15,然后这时候input()函数接收你输入的20并存储为字符类型的’15’。后面的比较运算符必须是同等类型的数据才能比较,但是20是整型,而你的15是字符类型的,所以无法比较,会出错。因此就必须把15转成整型的才能比较。转换的方法就是int(要转换的数据),具体再看例子:

num = input('请输入一个数字:')
print('你输入的数字的目前的数据类型是:', type(num))
print(type(int(num)))

终端的结果如下:

请输入一个数字:15
你输入的数字的目前的数据类型是: <class 'str'>
<class 'int'>

转换方法总结如下:
数据类型转换
(4)布尔类型(bool)
前面已经提过,只有两个值,就是True和False
(5)元组(tuple)
元组就是一堆圆括号,里面放着数据,数量若干。

a = ('a', 'b', 'c')
print(type(a))
>> <class 'tuple'>

(6)列表(list)
列表是一个中括号,里面放着数据,数据类型任意。

lis = ['a', 23, ('a', 'b'), [True], 5.6]
print(type(lis))
>> <class 'list'>

可以看到<class ‘list’>,说明类型是列表。我们看这个列表里都放了什么。第一个元素是一个字符a,第二是整型数字23,第三个是一个元组,元组里又有两个字符a和b,第四个是一个列表,列表里放着布尔类型的数据True,第五个是一个浮点型数据5.6
从这里也可以看到列表任意的数据类型都能放。

但是要注意(知识点):

  • 列表里的数据元素是有序的,和刚才说的检索字符串的切片类似,列表的第一个元素是第0个,也就是说列表的元素是从0开始数的;列表也可以进行切片操作,规则不变。
  • 列表里面有多少个元素,列表的长度就是多少。
    有一个专门计算长度的函数len(),我们用它来计算列表长度:
lis = ['a', 23, ('a', 'b'), [True], 56]
print(lis[0], lis[1], lis[3])
>> a 23 [True]
print(lis[1:3])  
>> [23, ('a', 'b')]
列表名[1:n],可以截取第2个到第n-1个元素。这里的2是因为是从0开始数的。
print(len(lis))
>> 5
  • 列表的其他操做如下:
    列表内容的增加:列表名.append()
lis = ['a', 23, ('a', 'b'), [True], 56]
lis.append('ahahah')
print(lis)
>> ['a', 23, ('a', 'b'), [True], 56, 'ahahah']

列表内容的删除:del 列表名[元素的偏移量]

lis = ['a', 23, ('a', 'b'), [True], 56]
del lis[1]  #删除第一个元素23
print(lis)
>> ['a', ('a', 'b'), [True], 56]

(7)字典
不要惊奇,这不是你平时翻的厚厚的字典,这是键值对类型的一种数据。用大括号括起来,里面有冒号,冒号的左侧是键名,冒号右侧是这个键对应的值。字典里面可以放任意个键值对,键对应的值可以是任意数据类型,就像前面的列表一样。看例子:

lis = ['a', 23, ('a', 'b'), [True], 56]
# 一个列表
dic = {1: 2, 'key': 'value', 'list': lis}
#一个字典
print(dic)
>> {1: 2, 'key': 'value', 'list': ['a', 23, ('a', 'b'), [True], 56]}
print(type(dic))
>> <class 'dict'>
print(len(dic))
>> 3

来具体说一下。字典的第一个是一个键值对,键是数字1,值是数字2;第二个是一个键值对,键是一个字符串,值也是一个字符串;第三个也是一个键值对,键是一个字符串,值是一个列表。
这里反复说键值对就是希望记住字典里的数据都书键值对类型的,这种对应关系类型的键值对型数据应用特别广泛。

  • 字典的长度也是里面键值对的个数,与具体的键值是什么无关。
  • 字典的检索方式是 字典名[键],比如:
dic = {1: 2, 'key': 'value'}
print(dic['key'])
>> value
  • 字典的其他操作:
    字典
    字典和列表可以相互嵌套,我就在提一下,看下图:
    相互嵌套
    从图中也可以看到看到字典和列表相互嵌套时,如何检索。

这次的内容就到这里啦,下次见!

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值