Python基础梳理

2019-01-29  本文已影响0人  IcedS

自己的学习总结,关于python。

总结的基本逻辑是:元素——集合——语句——函数——集——文件操作——随机数生成


首先是Python中最基本的元素,是数字和字符串。

数字的运算有加(+),减(-),乘(*),除(//),取整(/),取余(%)

字符串有比较多的运算。

第一,统计字符串的长度:len();

第二,取字符串中的某一位a[0](#0代表了第一位的下角标,第二位的下角标为1,以此类推);

第三,统计字符串中某一个字符有多少个a. count('?')(#?代表了某一字符);

第四,将字符变成大写:a. upper();将字符变成小写:a. lower();

第五,分割字符串:a. spilt('?'),若不填,则按照空格分割。

数字与字符串紧密联系,可以相互转换:将字符转换为数字int(),将数字转换为字符str()。除此之外还能判断字符的类型:判断是否为全数字a. isdigit,判断是否为全字母a. isalpha。


接下来,是Python的三种基本集合:列表,元组和字典。三者的区别更多体现在格式与某些功能是否能够运行。

列表相当于一个大集合,里面放入元素,元素可以是数字或者字符串。列表的格式是方括号,例如a = [1,2,3,'sdf']。列表支持如下运算:

第一,计算列表长度:len(a)。

第二,取列表中的某一位:a[0](#0表示第一位的下角标,1是第二位的下角标,以此类推)。第三,统计某个元素出现的的次数:a. count('?')(#?代表了某一字符)。

第四,合并列表:c = a + b,即将a,b中的元素合并并存入c中。

第五,扩展列表:a. extend(b),即将b中的元素存入a中,不产生新的列表。

第六,追加值:a. append('abc'),即将字符串'abc'存入列表a中。

第七,删除列表数据,有两种方法,一种是a. pop(0)即根据下角标删除某个元素,另一种是a. remove(1)即删除某个给定的值(#此处1不是下角标而是某个具体的元素)

列表除了基本操作以外,还有一个重点是列表生成式。列表生成可以直接存入数据,例如s = [1,2,3,4,5];也可以用list(range(1,100))的方法简便输入。而更为通用的方法,应该式列表生成式[变量表达式 for 变量 in 集合 判断条件 ]。例如:a = [i for i in range(1,100) if 1%2 == 1]即可以生成一个包含1到100奇数的列表。另一个例子:给定两个字符串a,b,提出他们的公共元素,并存放到列表中:c = [i for i in a if i in b]

元组与列表类似,不同之处是元组不可更改,因此无法运行列表支持有的一些操作。元组的格式是括号,例如a = (1,2,3)。

第一,取元组中的某一位:a[0](#0表示第一位的下角标,1是第二位的下角标,以此类推)。第二,统计某个元素出现的次数:a. count('?'),

第三,检测某个元素下角标:a. index('?')。

第四,删除元组:del(a),因为元组不能更改,所以只能整个删除,也不支持追加等操作

字典的格式是{1:1,2:2,3:3........}。字典有一下的基础操作:

第一,添加数据:a['abc'] = [123],前者为键,键具有唯一性,不能更改,通常使用数字和字符串,也可以是元组,后者是值,值可以是任何数据。

第二,计算字典长度:len(a)。

第三,获取某个键值有两种方法,一种是a['abc'],有值打印,没值报错,第二种是a. get('abc'),有值打印,无值不报错。

第四,在不知道字典内容的情况下输出字典数据:a. items()(#提出字典所有内容);a. keys()(#提出所有键);a. values()(提出所有值)。

第五,清空字典:a. clear()。

第六,删除字典的键值对:del(a['abc'])或者 a. pop('abc')。

与列表相同,字典也有字典生成式,语法是语:{ for 变量 in 集合 判断集合}。例如,给定字符串s = 'abcdefghijklmn',输出 下标:值 的字典集合print({s. index(i):i for i in s})


有了集合,便有了切片,切片即从集合中去出想要的元素。假定列表a = [1,2,3,4,5,6,7],则切片的格式为a[起始数字:结尾数字],左闭右开,下角标可为负数,但左右两边对应法人元素 不能为降序。

对应表

说完了集合,更重要的应该就是语句和函数了。常见的语句有条件语句if,循环语句for,条件循环while

If语句其实比较简单,与c++中的语句规则相似。If可以与elif和else连用。其中还有一些连接词:Not 表示反向判断值,and 表示同时判断,or表示 多条件通过一个即可。

For循环语句也与c++中的循环语句相似,语法是:for 变量名 in 集合:......其中可以嵌套If等其他语句,例如:用for循环读取range(10,100)操作的值

res = []

for i in range (10,100)

    if i%3 ==1

        res. append(i)

print (res)

While条件循环语句与条件语句的区别是:while重点是条件循环,一开始进入循环的时候,就要对条件进行判断,for循环条件是明确的集合,循环次数是明确的。其中break表示结束本次循环,continue表示跳过本次循环。

函数就是把一系列操作集合为一个固定的函数,在接下来的编写中可以方便使用,语法是:

def 函数名(参数1,参数二,......)

    操作1

    操作2

    操作3

    ......

    return


类Class就是将多个函数集合起来,对某物进行定义,它的基础语法是:

class 类名(object):

    属性1

    ....

    操作1

    ....

可以用class对事物进行定义,例如:

class Brid(object):

    weight = 100

    height = 100

    def cry(self):

        print ('emmmmmmmmm')

    def talk(self):

        print('身高:' + str(self. height), '体重' + stir(self. weight))

接下来将类初始化成对象:bird = Bird() ,并且调用对象的属性和方法bird. weight;bird. height;bird. cry();bird. talk()

还可以在类中进行初始化传参,这样就不只定义一样事物,而是对一类事物进行初始化,例如:

class Phone(object):

    def__init__(self, title, weight, cpu):

        self. title = title

        self. weight = weight

        self. cpu = cpu

    def call(self):

        print('品牌:', self. title, '整机重量:', self. weight, '核心数:', self. cpu)

    def test_game(self. game):

        if self. cpu > game:

            print(self. title, '高帧数运行')

        elif self. cpu == game:

            print(self. title, '流畅运行')

        else:

            print(self. title, '低帧数运行')

接下来只要输入不同手机的属性,就可以得出不同的结果,例如输入xm = Phone('小米6', 10, 4),xm. call(),则可得到结果#品牌:小米6 整机重量:10 核心数:4;xm. test_game(3)可得到结果 #小米6 高帧数运行


Python还可以对文件进行操作,具体的语法是open('文件名','模式')。

模式对应操作

对文件的操作包括:

第一,写入操作。例如f = open('t. txt', 'w') ,再输入f. write('hello world') ,这时字符被存放在了缓冲区,需要再进行f. flush()操作,最后关闭文件f. close() ,则无法再写入。

第二,追加操作。f = open('t. txt', 'a')打开文件,f. write('nice to meet you')将字符存入缓冲区,最后f. flush(),即可在文件中显示字符。

第三,读取操作。f = open('t. txt', 'r'),读取模式打开文件,f. read()操作即可阅读文件,f. close()关闭文件。此外f. readline() 可以只读一行,反复操作可按照顺序读取直至最后一行

#总结:读取文件用r,r+,写入文件用a,a+,新建文件用w,w+,其他模式虽可以进行相应操作,但可能存在覆盖等可能。


最后是生成随机数操作。因为实在不知道能按照逻辑顺序放在哪儿了,所以便放在了最后。生成随机数的关键是random.操作,分一下几个板块:

第一,获取随机数。此时并没有一个已知集合,只是随机在某个范围内随机。获取random. andint(1,9)即可以获取范围内的随机整数;random. uniform(1.1,9.8)即可以获取范围内的随机小数。

第二,随机取值。此时已知一个列表a = [1,2,3,4,5,'a,''b'],要从a中随机取一个值:random. choice(a);random. randrange(start, end)即 random. choice(range(start, end))

第三,将字符打乱顺序打乱顺序。例如s = list('abcdefg'),则进行random. shuffle(s)操作

第四,随机选择指定长度的数据。语法是random. sample(集合,长度值),此时集合数据的个数必须大于等于传入的长度值。


以上是全部,还有很多小的基础知识点不一一列出了。

此篇错误应该很多,仅是个人学习总结所写,接受指正,不接受批评。

上一篇下一篇

猜你喜欢

热点阅读