Python基础知识

数据的输入
输入

​ Python使用input()函数用于输入数据,该函数返回字符串类型

	input(prompt=None,/)

x,y = input(‘输入x,y的值’) {在输入一个参数后回车输入下一个参数}

数据类型的转换

int() 截取数字整数部分,或者是将字符串转换为一个整数,如果不给定参数则返回0

​ 需要注意的是,int()函数不接受带小数的数字字符串,会报ValueError的错误 例子int( ‘45.8’)

​ 进制转化: int(x,base=10) base有限范围0 2-36 eg. int(‘1001001’,2) 将二进制数变为十进制。

float(x=0,/) 将一个数字或者字符串转化为浮点数。

eval(source,globals=None)

​ 将source当做一个python表达式进行解析和计算,返回计算结果。

​ 参数说明:source是一个字符串,这个字符串能表示成Python表达式,或者是能够通过编译的代码;globals是可选的参数,默认 为None,如果设置属性不为None的话,就必须是dictionary对象;locals也是可选的参数,默认为None,如果设置属性不为None 的话,可以是任何map对象。(我对于eval函数的理解是,去除引号,成为去除后的数据类型。)

数据的输出

print(value,...,sep='',end='\n',file=sys.std.out,flush=False)

​ value: 表示需要输出的对象,一次可以输出一个或者多个对象(其中…表示任意多个对象),当输出多个对象时,对象之间要用逗 号(,)分隔;

​ sep:表示输出时对象之间的间隔符,默认用一个空格分隔;

​ end:表示输出以何字符结尾,默认值是换行符;

​ file:表示输出位置,可将输出到文件,file指定的对象要有“写”的方法,默认值是sys.stdout(标准输出);

​ flush:将缓存里面的内容是否强制刷新输出,默认值是False。

合法的标识符

​ 在Python中,所有标识符可以包括英文、数字以及下画线,但要符合以下规则:

  • ​ 标识符开头必须是字母或下画线;

  • ​ 标识符不能以数字开头;

  • ​ 标识符是区分大小写的;

  • ​ 标识符中不能出现分隔符、标点符号或者运算符;

  • ​ 标识符不能使用关键字;

  • ​ 最好不要使用内置模块名、类型名、函数名、已经导入的模块名及其成员名作为标识符。

​ eg. A、ABC、aBc、a1b2、ab_123、__(连续两个下画线)、_123 等,都是合法的标识符。6a2b、abc-123、hello world(中间用了空 格)、for(关键字)等则是非法的标识符。

['False', 'None', 'True', 'and', 'as', 'assert', 'async', 'await', 'break', 'class', 'continue', 'def', 'del', 'elif', 'else', 'except', 'finally', 'for', 'from', 'global', 'if', 'import', 'in', 'is', 'lambda', 'nonlocal', 'not', 'or', 'pass', 'raise', 'return', 'try', 'while', 'with', 'yield']
None

​ 这里提一下关键字None。None是一个特殊的Python对象,和False不同,不是0,也不是空字符串、空列表等。None有自己的数据类型NoneType,None和任何其他数据类型进行是否相等比较永远返回False。可以将None赋值给任何变量,但是不能创建其他NoneType对象。

下画线标识符

​ 以下画线开头的标识符是有特殊意义的。

​ 以单下画线开头(_xxx)的标识符代表不能直接访问的类属性,需通过类提供的接口进行访问,不能用“from xxx import *”导入;

​ 以双下画线开头(__xxx)的标识符代表类的私有成员;

​ 以双下画线开头和结尾(_ _ xxx _ )的标识符代表Python中特殊方法专用的标识,如 _ _ init _ _代表类的构造函数。(Markdown语法特殊)

数据类型

数值型(int float complex) 字符串(str) 布尔(bool) 列表(list) 元组(tuple) 字典(dict)

复数类型 实部加虚部 2+3j

值得一提的是,Python支持任意大的数字,仅受内存大小的限制。

另外,为了提高可读性,在数值中可以使用下画线。

>>> 1_23_456_7890
1234567890
>>> 0x_12_ab_8ff
19577087
>>> 1_23.5_67
123.567

1. 算术运算符

​ 在Python中,算术运算符有:+(加)、-(减)、*(乘)、/(真除法)、//(求整商)、%(取模)、**(幂)。

2. 关系运算符

​ 在Python中,关系运算符有:<(小于)、<=(小于等于)、>(大于)、>=(大于等于)、==(等于)、!=(不等于)。

​ 关系运算符根据表达式值的真假返回布尔值。

3. 测试运算符

​ 在Python中,测试运算符有:in、not in、is、is not。

​ 测试运算符也是根据表达式值的真假返回布尔值。

4. 逻辑运算符

​ 在Python中,逻辑运算符有:and(与)、or(或)、not(非)。通过逻辑运算符可以将任意表达式连接在一起。

*运算符可以用于列表、元组或字符串与整数的相乘,用于将这些序列重复整数所指定的次数。它不适用于字典和集合与整数的相乘。

>>> [1,3,5]*2
[1, 3, 5, 1, 3, 5]
>>> {1801:'Lily'}*2
Traceback (most recent call last):
  File "<pyshell#22>", line 1, in <module>
    {1801:'Lily'}*2
TypeError: unsupported operand type(s) for *: 'dict' and 'int'

利用关系运算符比较大小首先要保证操作数之间是可比较大小的;另外关系运算符可以连用。

>>> 5<6<8
True
>>> 5<6==8
False
>>> 5<6>3
True
>>> 
>>> 3>5
False
>>> 'a'>'A'
True
>>> 'b'<'0'
False
>>> 'abcae'<'abcAb'
False
>>> 'abc'=='abc'
True
>>> 'a'<'我'
True

在Python3中,所有的字符串都是Unicode字符码,可以用ord()获取字符的Unicode,利用chr()函数,把编码换为相应字符串

>>> ord('a')
97
>>> chr(97)  #得到对应的字符
'a'
>>> ord('我')
25105
>>> chr(25105)
'我'

在ASCII编码中:

数字的ASCII编码<大写字母的ASCII编码<小写字母的ASCII编码

而在数字当中,数字0比数字9要小,并按0到9顺序递增;在大写字母当中,字母A比字母Z要小,并按A到Z顺序递增;在小写字母当中,字母a比字母z要小,并按a到z顺序递增。

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

循环控制
while 条件表达式:
	循环体
    
    
for 变量 in 序列或迭代器等可迭代对象:
	循环体
    
while 条件表达式:
		循环体
	elseelse语句块

range

Python 3开始,函数range返回可迭代对象。以遍历range函数返回的可迭代对象

range(start,stop[,step])

产生一个从start开始(包括start),到stop结束(不包括stop),两个整数对象之间间隔step的可迭代对象。

参数说明:

start:可迭代对象的开始值为start,默认是从 0 开始。例如range(6)等价于range(0, 6);

end:可迭代对象到end结束,但不包括end。例如:range(0, 6)产生包含0, 1, 2, 3, 4,5的可迭代对象,但没有6;

step:步长,表示所产生的可迭代对象元素之间的间隔,默认为1。例如:range(0, 6)等价于range(0, 6, 1)。步长也可以是负数,这时开始值大于结束值。

常用数据结构

​ 有序列 (列表,元组,字符串) 映射 (字典) 集合(set)

有序列中把大量数据按次序排列而形成的集合体称为序列。Python中的字符串、列表和元组数据类型都是序列。

在Python中,所有序列类型都可以进行某些特定的操作。这些操作包括:索引(indexing)(有顺序就能索引)、分片(slicing)、加(adding)、乘(multiplying)以及检查某个元素是否属于序列的成员。除此之外,Python还有计算序列长度、找出最大元素和最小元素的内建函数。

list

  • 列表是Python中最基本的数据结构,是最常用的Python数据类型。
  • 列表将由若干数据作为元素的序列放置在一对方括号中,
  • 元素之间以逗号分隔。
  • Python列表元素可以由任意类型的数据构成。
  • 同一列表中各元素的类型可以各不相同。
  • 列表中的元素允许重复。
  • 此外,Python列表是可以修改的,修改方式包括向列表添加元素、从列表删除元素以及对列表的某个元素进行修改。
#二维列表
>>> computer=[['IBM','Apple','Lenovo'],['America','America','China']]
>>> computer[0][-1]
'Lenovo'
>>> computer[1][2]
'China'

del命令

使用del命令可以从列表中删除元素,也可以删除整个列表。

>>> vehicle = ['train', 'bus', 'car', 'ship']
>>> del vehicle[3]
>>> vehicle  #删除了'ship'
['train', 'bus', 'car']
>>> del vehicle[3] #超出索引范围
Traceback (most recent call last):
  File "<pyshell#50>", line 1, in <module>
    del vehicle[3]
IndexError: list assignment index out of range
>>> del vehicle    #删除列表vehicle
>>> vehicle        #列表vehicle不存在了
Traceback (most recent call last):
  File "<pyshell#82>", line 1, in <module>
    vehicle
NameError: name 'vehicle' is not defined
列表运算

列表相加

通过列表相加的方法生成新列表

>>> vehicle1 = ['train', 'bus', 'car', 'ship']
>>> vehicle2 = ['subway', 'bicycle']
>>> vehicle1 + vehicle2
['train', 'bus', 'car', 'ship', 'subway', 'bicycle']
>>> vehicle1          # vehicle1没有改变
['train', 'bus', 'car', 'ship']
>>> vehicle2
['subway', 'bicycle']
>>> vehicle=vehicle1 + vehicle2 	# 生成新列表赋值给变量vehicle
>>> vehicle
['train', 'bus', 'car', 'ship', 'subway', 'bicycle']
>>> vehicle+=['bike'] #复合赋值语句
>>> vehicle
['train', 'bus', 'car', 'ship', 'subway', 'bicycle', 'bike']

列表相乘

用数字n乘以一个列表,会生成一个新列表。在新列表中原来列表的元素将被重复n次。

>>> vehicle1 = ['train', 'bus']
>>> vehicle1*2
['train', 'bus', 'train', 'bus']
>>> vehicle1		#原列表保持不变
['train', 'bus']
>>> vehicle=vehicle1*2         #赋值语句
>>> vehicle
['train', 'bus', 'train', 'bus']
>>> vehicle*=2                       #复合赋值语句
>>> vehicle
['train', 'bus', 'train', 'bus', 'train', 'bus', 'train', 'bus']
列表中的方法
index(value[,start=0[,stop]])

index()方法用于从列表中找出与value值匹配的第一个元素索引位置。

如果没有指定参数start的值,则从索引为0的位置开始查找,否则从索引为strat的位置开始查找。

如果没有指定结束索引位置stop的值,可以查找到列表最后元素,否则在位于[start, stop)内的索引区间查找。如果找不到匹配项,就会引发异常。

>>> vehicle = ['train', 'bus', 'car', 'subway', 'ship', 'bicycle', 'car']
>>> vehicle.index('car')    #整个列表范围内'car'第1次出现的索引位置是2
2
>>> vehicle.index('plane')  #整个列表范围内没有'plane'
Traceback (most recent call last):
  File "<pyshell#1>", line 1, in <module>
    vehicle.index('plane')
ValueError: 'plane' is not in list
>>> vehicle.index('car',3) #在从索引为3开始,'car'第1次出现的索引位置是6
6
>>> vehicle.index('car',3,6)    #在从3开始到6(不包含6)的索引范围内没有'car'
Traceback (most recent call last):
  File "<pyshell#83>", line 1, in <module>
    vehicle.index('car',3,6)
ValueError: 'car' is not in list
count()

count()方法,用于统计某个元素在列表中出现的次数。

>>> vehicle = ['train', 'bus', 'car', 'subway', 'ship', 'bicycle', 'car']
>>> vehicle.count('car')
2
>>> vehicle.count('bus')
1
>>> vehicle.count('bike')
0

append()

append()  del() remove() pop() clear()
>>> vehicle = ['train', 'bus', 'car', 'ship']
>>> vehicle.append ('plane')   #追加一个元素'plane'
>>> vehicle
['train', 'bus', 'car', 'ship', 'plane']
>>> vehicle.append(8)          #追加一个元素8
>>> vehicle
['train', 'bus', 'car', 'ship', 'plane', 8]

extend() 只能是一个列表!

extend()方法,在列表的末尾一次性追加另一个列表中的多个值,可以用新列表扩展原有的列表。

>>> vehicle = ['train', 'bus', 'car', 'ship']
>>> vehicle.extend(['plane']) 
>>> vehicle
['train', 'bus', 'car', 'ship', 'plane']
>>> vehicle.extend([8])
>>> vehicle
['train', 'bus', 'car', 'ship', 'plane', 8]
>>> vehicle.extend([8,9])
>>> vehicle
['train', 'bus', 'car', 'ship', 'plane', 8, 8, 9]
>>> vehicle.extend(10,11)
Traceback (most recent call last):
  File "<pyshell#22>", line 1, in <module>
    vehicle.extend(10,11)
TypeError: extend() takes exactly one argument (2 given)

insert()

insert()方法,将一个元素插入到列表中的指定位置。

列表的insert方法有两个参数,

  1. 第一个参数是索引点,即插入的位置,

  2. 第二个参数是插入的元素。

    >>> vehicle = ['train', 'bus', 'car', 'ship']
    >>> vehicle.insert(3,'plane')
    
    >>> vehicle
    ['train', 'bus', 'car', 'plane', 'ship']
    >>> vehicle.insert(0,'plane')
    >>> vehicle
    ['plane', 'train', 'bus', 'car', 'plane', 'ship']
    >>> vehicle.insert(-2,'bike')
    >>> vehicle
    ['plane', 'train', 'bus', 'car', 'bike', 'plane', 'ship']
    

remove()

remove()方法,用于移除列表中与某值匹配的第一个元素。如果找不到匹配项,就会引发异常。

>>> vehicle = ['train', 'bus', 'car', 'ship', 'subway', 'ship', 'bicycle']
>>> vehicle.remove('ship')
>>> vehicle
['train', 'bus', 'car', 'subway', 'ship', 'bicycle']
>>> vehicle.remove('ship')
>>> vehicle
['train', 'bus', 'car', 'subway', 'bicycle']
>>> vehicle.remove('ship')
Traceback (most recent call last):
  File "<pyshell#47>", line 1, in <module>
    vehicle.remove('ship')
ValueError: list.remove(x): x not in list

pop()

pop()方法用于移除列表中的一个元素(默认为最后一个元素),并且返回该元素的值。pop()方法可以指定索引位置,当不在索引范围内或者从空列表中使用此方法均会触发异常。

>>> vehicle.pop()
'ship'
>>> vehicle
['train', 'bus', 'car']
>>> vehicle.pop(1)
'bus'
>>> vehicle
['train', 'car']
>>> vehicle.pop(2)    #索引超过范围
Traceback (most recent call last):
  File "<pyshell#68>", line 1, in <module>
    vehicle.pop(2)
IndexError: pop index out of range
>>> vehicle.pop(0)
'train'
>>> vehicle
['car']
>>> vehicle.pop(-1)
'car'
>>> vehicle
[]
>>> vehicle.pop()    # vehicle为空列表
Traceback (most recent call last):
  File "<pyshell#73>", line 1, in <module>
    vehicle.pop()
IndexError: pop from empty list

clear()

clear()方法用于删除列表中所有元素,但保留列表对象。

>>> vehicle = ['train', 'bus', 'car', 'ship']
>>> vehicle.clear()
>>> vehicle             # 列表vehicle元素全部删除变成空列表
[]

请注意与del命令的区别,del命令删除整个列表时,列表对象不再保留。

reverse()

reverse()方法,用于将列表中的元素位置反向存放。列表中可以有不同类型的元素,reverse()方法只是将位置反转。

>>> vehicle = ['train', 'bus', 'car', 'subway', 'ship', 'bicycle']
>>> vehicle.reverse()
>>> vehice
['bicycle', 'ship', 'subway', 'car', 'bus', 'train']
>>> nv=[12,'bus',99,'train']
>>> nv.reverse()
>>> nv
['train', 99, 'bus', 12]

sort()

sort()方法,用于将列表中的元素进行排序。默认按升序排列。使用reverse参数来指明列表是否降序排列,参数是简单的布尔值True或False,若其值等于True表示降序排序,默认为False。如果列表中包含的是字符串,按字母串排序规则排序。可以使用key参数。

>>> numbers=[12,34,3.14,99,-10]
>>> numbers.sort()
>>> numbers
[-10, 3.14, 12, 34, 99]
>>> numbers.sort(reverse=True)
>>> numbers
[99, 34, 12, 3.14, -10]
>>> numbers.sort(key=str)    #按转换为字符串后的大小升序排列
>>> numbers
[-10, 12, 3.14, 34, 99]
>>> vehicle = ['train', 'bus', 'car', 'subway', 'ship', 'bicycle']
>>> vehicle.sort()
>>> vehicle
['bicycle', 'bus', 'car', 'ship', 'subway', 'train']
>>> vehicle.sort(key=len)    #按字符串的长度升序排列
>>> vehicle
['bus', 'car', 'ship', 'train', 'subway', 'bicycle']
>>> vehicle.sort(reverse=True)
>>> vehicle
['train', 'subway', 'ship', 'car', 'bus', 'bicycle']
>>> vehicle.sort(key=len,reverse=True)
>>> vehicle
['bicycle', 'subway', 'train', 'ship', 'car', 'bus']
列表函数

len()函数

len()函数,用于返回列表中所包含元素的个数。

>>> vehicle = ['train', 'bus', 'car', 'subway', 'ship', 'bicycle']
>>> len(vehicle)
6

min() max()

reversed()

>>> vehicle = ['train', 'bus', 'car', 'subway', 'ship', 'bicycle']
>>> reversed(vehicle)
<list_reverseiterator object at 0x0000000002F370B8>
>>> list(reversed(vehicle))
['bicycle', 'ship', 'subway', 'car', 'bus', 'train']
>>> nv=[12,'bus',99,'train']
>>> reversed(nv)
<list_reverseiterator object at 0x0000000002F370B8>
>>> list(reversed(nv))
['train', 99, 'bus', 12]

sorted()函数

sorted()函数,对列表进行排序并返回新列表。例如:

>>> numbers=[12,34,3.14,99,-10]
>>> n1=sorted(numbers) #新列表
>>> n1
[-10, 3.14, 12, 34, 99]
>>> numbers             #原列表未发生次序改变
[12, 34, 3.14, 99, -10]
>>> n2=sorted(numbers,reverse=True)
>>> n2
[99, 34, 12, 3.14, -10]
 numbers.sort(reverse=True)
>>> numbers
[99, 34, 12, 3.14, -10]
>>> n3=sorted(numbers,key=str)
>>> n3
[-10, 12, 3.14, 34, 99]

or object at 0x0000000002F370B8>

list(reversed(vehicle))
[‘bicycle’, ‘ship’, ‘subway’, ‘car’, ‘bus’, ‘train’]

nv=[12,‘bus’,99,‘train’]
reversed(nv)
<list_reverseiterator object at 0x0000000002F370B8>

list(reversed(nv))
[‘train’, 99, ‘bus’, 12]




sorted()函数

sorted()函数,对列表进行排序并返回新列表。例如:

```python
>>> numbers=[12,34,3.14,99,-10]
>>> n1=sorted(numbers) #新列表
>>> n1
[-10, 3.14, 12, 34, 99]
>>> numbers             #原列表未发生次序改变
[12, 34, 3.14, 99, -10]
>>> n2=sorted(numbers,reverse=True)
>>> n2
[99, 34, 12, 3.14, -10]
 numbers.sort(reverse=True)
>>> numbers
[99, 34, 12, 3.14, -10]
>>> n3=sorted(numbers,key=str)
>>> n3
[-10, 12, 3.14, 34, 99]
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

琦琦今天加油了吗?

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值