Python基本语法

基本语法

Python语法采用缩进形式,约定俗成采用四个缩进。

**#**表示注释。

**😗*后面表示是一个代码块。

此外,Python是大小写敏感的。

数据类型和变量

数据类型特点程序实例
整数以ox开头是十六进制,包括负数,同时可以通过_分割过多的零,也就是1000和10_00在Python中是等价的(没有大小限制)
浮点数可以表示复数,可以使用科学计数法,例如:1.2*10^9在Python中可以通过1.2e9来表示(没有大小限制,但是超过一定范围直接定义为无限大inf
字符串1.可以使用双引号 或者单引号 ,来确定一个字符串,引号本身通过转义字符来输出
2.\n表示换行,\t表示制表
3.**r’‘表示’‘内部不转义
4.
’’’…’’‘里面可以随便换行,每个…都接一行,并在’’'和结束)**处打印结果。
在这里插入图片描述
布尔型通过TrueFalse,表示布尔值,注意区分大小写。可以进行and、or、not运算
空值通过None表示

注:不管什么类型的变量都是数字字母下划线,不能以数字开头。Python是动态变量,不需要声明变量类型。

注:Python中有一种除法叫做地板除,表示取整除法(不是四舍五入,是只取运算结果的整数部分)。10//3=3

字符串和编码

类型长度表示范围特点在计算机中的使用
ASCII8位(1字节)只能表示256个常用字符
Unicode16位(2字节)所有语言都能表示在ASCII字符前面补0,就可以得到对应的Unicode字符在内存中使用
UTF-81-6个字节所有语言都能表示可变长度,如果英文字符多,可以节省空间在文件中保存
GB23122字节中国编的,用来表示中文

注:浏览网页时,服务器动态的把动态生成的Unicode转化成UTF-8网页,再传输给浏览器。

Python3是使用Unicode进行编码的,可以通过**ord()获取字符的整数表示,通过chr()**函数把编码转换为相应的字符。

如果想在网页上传输,或者保存到磁盘上,就需要把自定义的Python str类型的字符串编码成UTF-8形式,需要通过**encode()**函数进行编码。而Python通过b’'的形式来表示这是一个byte字符串,即ACSII类型或者UTF-8类型。如图所示。

在bytes中,无法表示位ACSII的字符通过**\x##**表示

在这里插入图片描述

同理,如果碰到了bytes格式的字符,可以通过**decode()**函数进行解码。

在这里插入图片描述

如果碰见无法解码的字符,decode()方法会报错。

可以传入errors=‘ignore’,来提示解码的时候忽略错误字符。

此外,可以使用**len()**函数来确定字符串的长度。
在这里插入图片描述
注:Python本身也是一个文本文件,为了防止出现乱码问题,应当保证使用UTF-8编码保存Python的源代码。

为了让Python解释器按照utf-8的格式对Python源代码进行读取,一般在源代码钱前面加上两句注释。

#!/usr/bin/env python3
#-*- coding: utf-8 -*-

格式化

占位符

Python中的格式化和C语言类似,都通过%来实现。在需要输入变量的地方,使用%来占位,然后在后面使用%跟一些变量,前面几个占位符,后面跟几个变量,一一对应的,

 print("%s考了%d分" %('zcc',18))

占位符格式如下:

类型表示方式特殊用法
字符串%s
整数%d%02d表示该字符如果不足两位,在前面补零
浮点数%f%.2f表示保留小数点后两位(四舍五入)
十六进制整数%x把10进制的数转成十六进制输出(例如,15会输出为f)

format函数

format函数是字符串的子函数,作用是把字符串中使用{0},{1}这样表示的占位符用format后面带的括号中的变量给替换掉。

例如:

'Hello,{0},My {1:03d} years old friend'.format('zcc', 22)

在这里插入图片描述

其中{0},{1:03d}是占位符,.format后面括号里的内容是替换占位符用的。

f-string方法

f’'包括的字符串中的{variable},其中的variable会被转换成对应的变量值。

例如:

r=1
s=r*r*3.14
print(f'if radius is {r},the area will be {s}')

在这里插入图片描述

list 和 tuple

list

list是一个有序的集合,可以随时添加或者修改其中的元素。使用[]来定义

len()函数获取集合中元素的个数。

使用索引来访问list中每个位置的元素(从0开始)这一点是和C语言一样的。

注:使用list[-1]可以直接获取最后一个元素

在这里插入图片描述

可以使用.append()方法在末尾增加元素

在这里插入图片描述

可以使用.insert(index,element)方法在指定位置插入

在这里插入图片描述

可以使用pop()来删除末尾的元素,使用pop(i)删除指定位置的元素。pop()方法类似于出栈,会在输出之后删除。

在这里插入图片描述

可以直接通过赋值的方式来替换某一个元素
在这里插入图片描述

此外,list还可以使用list作为集合内容,list的此元素还可以不一样

L = [1, 2, 'zcc']
print(L)
p = [1, 2, 3]
L.append(p)
print(L)
print(L[3][2])
print(p[2])

在这里插入图片描述

当list的元素为list时,则可以看作类似于C语言中的二维数组,可以使用类似二维数组的方式进行访问。

tuple

tuple表示的就是元素不变的list。

注1:tuple的元素不变,但是tuple元素的元素是可变的。若一个tuple中的元素是list,则list依然可变。

注2:只有一个元素时,需要在元素后加‘,’,否则tuple会将()理解为括号运算符

例如:在这里插入图片描述

条件判断

if…elif…else格式

条件判断的完整形式是:

if<条件判断1>:#满足条件1进行执行1
    <执行1>
elif<条件判断2>:#满足条件2进入执行2
    <执行2>
else:
    <执行3>#其他的所有情况进入执行3

其中,条件判断是一个可以计算出布尔值的表达式。可以使用数字来代替,如果x是非零数字,非空字符串,非空list,判定为True,其他情况判定为False

循环

for…in…循环

本循环对list中的元素进行操作

格式:

for element in list:
    <操作>

例如:

L=range(101)#range(n)表示生成一个从0到n-1的序列
sum=0
for x in L:
    sum+=x
print(sum)

输出:

5050

while循环

程序一直执行直到不满足while中的条件

格式:

while <条件1><执行1>

例如:

sum=0
i=0
while i<=100:
    sum+=i
    i=i+1
print(sum)

执行结果:

5050

break

不管是什么类型的循环都可以使用break来提前退出。

例1:

sum=0
i=0
while i<=100:
    sum+=i
    i=i+1
    if i>10:
        break
print('此时sum的值为%d' %sum)

执行结果1:

此时sum的值为55

例2

sum=0
i=0
for i in range(101):
    sum+=i
    i=i+1
    if i>10:
        break
print('此时sum的值为%d' %sum)

执行结果2

此时sum的值为55

continue

continue的作用是,结束本轮进入下一轮

例如

sum = 0
i = 0
for i in range(101):
    if i == 10:
        continue
    sum += i
    i = i + 1
print('此时sum的值为%d' %sum)

输出结果

此时sum的值为5040

dict和set

dict

dict 就相当于是其它语言中的map,就是键值对。这种方式取数据非常快,因为是先根据键从内存中找到值的地址,再找出来。

定义

两边使用{}定义,中间使用’’:来确定一个键值对,而取数的时候,使用和数组一样的[]。

>>> map={'zcc':387,'wht':389,'lls':421}#定义
>>> map['zcc']#取数
387

特殊用法

当key不存在时会报错,可以使用 in 来判断是否存在某个key

>>> 'zcc' in map
True

也可以通过get函数来判断。

>>> map.get('mtt',-1)#此处的-1是查找不到之后自定义的返回值,可以设定为任何值,如下面设置为-2
-1
>>> map.get('mtt',-2)#如果不设置任何值,返回的就是空值
-2

可以使用pop()来删除某个数:

>>> map.pop('wht')
389
>>> map
{'zcc': 387, 'lls': 421}

特点

  • dict占用内存大
  • dict查找速度与规模无关
  • mappingproxy是不可变的键值对,而dict是可变的。

即,dict是用空间换时间的方式。

set

定义

set就是集合,不重不漏,没有顺序。定义的时候需要一个list作为输入:

>>> set1=set([1,2,1,3,2])
>>> set1
{1, 2, 3}

方法

通过add方法可以加入元素

>>> set1.add(5)#add方法是在里面添加一个元素
>>> set1
{1, 2, 3, 5}

通过remove方法可以删除元素,删除元素时,是按值删除:

>>> set1.remove(5)
>>> set1
{1, 2, 3}

可以进行集合的运算,交(&)并(|)。

>>> set1=set([1,2,3,4])
>>> set2=set([2,3,4,5])
>>> set3=set1&set2
>>> set3
{2, 3, 4}
>>> set4=set1|set2
>>> set4
{1, 2, 3, 4, 5}

可变对象和不可变对象

对于可变对象,比如list,进行操作之后,内部的元素会发生变化。但是对于不可变对象比如str,内部的内容不会变化。这是因为,对于str,其本质是一个指向对象的变量,对其进行操作不过是复制了一个值进行操作,而对于list,它本身就是指向变量的地址,对其进行操作就是会改变原来的内容。

对于不变对象,调用自身方法不改变其内容,只会输出一个新的执行结果;而对于可变对象,执行其操作会改变内容。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值