• Python基础知识


    Python历史

    一、历史

            Python之父,荷兰人Guido van Rossum(吉多·范罗苏姆)。他于1982年从阿姆斯特丹大学取得了数学和计算机硕士学位。1991年,Python的第一个解释器诞生了。之所以选中Python(大蟒蛇的意思)作为程序的名字,是因为他是一个叫Monty Python的喜剧团体的爱好者。

    二、应用领域

           Python 语言除了在自动化测试领域有出色的表现外,在系统编程,网络编程,web 开发,GUI开发,科学计算,游戏开发、网络应用、网站后台、 爬虫服务、系统工具、大数据、人工智能、自动化测试等多个领域应用非常广泛,而且具有非常良好的社区支持。也就是说学习和掌握python 编程,其实是为你打开了一道更广阔的大门。

    三、优点

    1.易于维护和学习,语法简单;

    2.提供了广泛的库,既可以开发小工具也可以开发企业级应用,功能强大;

    3.面向对象,免费开源。

    四、缺点

    1.解释性语言(先翻译成中间代码,再由解释器对中间代码进行解释运行),执行速度慢

    2.代码无法加密,直接运行代码,不是运行程序

    五、选择Python的理由

    1.测试人员的编程能力普遍不是很强,而Python作为一种脚本语言,不仅功能强大,而且语法优美,支持多种自动化测试工具,而且学习上手比较容易。

    2.Python的社区发展比较好,有着非常多的文档和支持库,另外Python也可以在Web开发、数据处理、科学计算等纵多领域有着非常好的应用前景。

    3.对于有一定编程基础的人员,使用Python作为自动化测试的语言可以非常顺畅的转换,几乎没有学习成本。

    第一行代码

    一、创建一个项目

    路径最好不要有中文

    项目名称最好不能有空格

    项目名称最好不能数字开头

    二、创建python文件

    文件名称最好不能有空格

    文件名称最好不能数字开头

    头文件设置

    三、打印输出

    name = "hello word"

    age = 18

    1.# 换行输出

    print(name)

    print(age)

    print('---------')

    2.# 不换行输出

    print(name, end=" " )

    print(age, end=" " )

    3.#格式化输出

    print(“我的名字叫{}”.format('小明')

    4.#打印输出换行

    print('\n')

    5.#打印输出空格

    print('\t)

    6."+"

    注:+号两边的数值类型必须一致

    name = "小明"

    print("我的名字是:" + name)

    7.”,”

    name = "码上开始"

    print("我的名字是:" , name)

    8.运算

    a=10

    b=20

    print(a*b)

    四、输入

    input(“请输入你的名字:

    输入值类型为字符串

    五、注释

    1.单行注释

    # 第一个注释

    print ("Hello, 码上开始!") # 第二个注释

    2.多行注释

    多行注释可以用多个 # 号,还有 ''' """

    # 第一个注释

    # 第二个注释

    '''

    第三注释

    第四注释

    '''

    """

    第五注释

    第六注释

    """

    六、变量与常量

    常量就是普通字符串

    变量就是定义之后还能发生改变,可以重新赋值的量;

    是与常量相对而言,pythona = 1 就算是声明一个变量 a, 然后重新赋值a = 10a的值就变成了10

    七、变量的类型

    1.数值类型:整数、浮点数、布尔数、复数

    2.非数值类型:字符串,字符串的表现是单双引号

    3.对象类型:列表、元组、字典

    八、运算符:

    1.算数运算符

    a=10b=20c=4

    1)加+

    print(a+b)

    结果:30

     2)减-

    print(b-a)

    结果:10

    3)乘 *

    print(a*b)

    结果:200

    4) 除/

    print(b/a)

    结果:2

    5)取余%

    print(a%c)

    结果:2

    6) 返回商的整数//

    print(a//c)

    结果:2

    7)幂 **

    print(a**c)

    结果:10000

    2.比较运算符

    1)等于==

    2)不等于!=

    3)小于<

    4)大于>

    5)大于等于>=

    6)小于等于<=

    3.赋值运算符

    1)赋值=

    a=10

    2)加法赋值

    a+=b 相当于a=a+b

    3)乘法赋值

    a*=b 相当于a=a*b

    4)减法、除法、幂等以此类推

    4.逻辑运算符

    1)且、与and

    x and y xy都为真才为真,才返回True,否则返回False

    print(10>2 and 20<5)

    返回False

    2)或or

    x or y xy只要有一个为真

    print(10>2 or 20<5)

    返回True

    3)不not

    print(not(10>2 and 20<5))

    返回True

    5.成员运算符

    1in

    如果在指定的序列中找到值返回 True,否则返回False

    2not in

    如果在指定的序列中没有找到值返回 True,否则返回 False

    6.身份运算符

    1is 是判断两个标识符是不是引用自一个对象

    2is not 是判断两个标识符是不是引用自不同对象

    7.运算符优先级

     

    九、标识符

    1.定义:Python 对各种 变量、方法、函数等命名时使用的字符序列称为标识符。

    2.命名规则

    1)由 26 个英文字母大小写,0-9 _ 组成。

    2)不能以数字开头。

    3)严格区分大小写。

    4)不能包含空格、@% 以及 $ 等特殊字符。

    5)不能以系统保留关键字作为标识符。

    十、关键字

    1.定义:关键字是预先保留的标识符,每个关键字都有特殊的含义。(在编译器中显示为深蓝色的特殊字符)

    2.包含:

    andorclassdefifelseelifforwhileTrueFalsetryexpectraiseFinallyasbreakcontinuefromglobalimportinisnotpassreturnwithassertNonedellambdanonlocalyield

    3.判断方法:

    keyword.iskeyword('and')

    如果是关键字,返回 True;否则,返回 False

    十二、传统的格式化输出%

    a.输出整数 %d

    举例:将45.123输出为整数

    print('%d'%45.123)

    结果:45

    b.输出浮点数 %f

    举例:将45输出为浮点数

    print('%f'%45)

    结果:45.000000

    c.指定输出小数点位数:%.2f

    举例:将45.123输出为保留俩位数的浮点数

    print('%.2f'%45.123)

    结果:45.12

    d.输出字符串%s

    举例:将45.123输出为字符串

    print(type('%s'%45.123))

    结果:<class 'str'>

    e.字符串截取%.2s保留2个长度的字符串

    举例:将字符串'dsfgd'保留2个长度的字符串

    print('%.2s'%'dsfgd')

    结果:ds

    f.百分数

    举例:将45转化为百分数输出

    print('%.f%%'%45)

    结果:45%

    十三、习题

    1.手动输入自己的名字,使用三种方式输出我的名字叫什么

    name=input("请输入自己的名字:")

    print("我的名字叫:",name)

    print("我的名字叫:"+name)

    print("我的名字叫:{}".format(name))

    2.请用知道的方法,注释掉以下语句

    print("hello Spon")

    print("我的名字叫小邦")

    3.请写出变量的三种类型,并且写出各自包含的内容

    数值类型:浮点数、整数、复数、布尔数

    非数值类型:字符串

    对象类型:列表、字符串、字典

    4. 请判断以下可以作为标识符的变量有哪些

    ①input_name ②886 ③for ④insert ⑤num2 ⑥True ⑦print ⑧CHeck ⑨xiaoming@ ⑩ hello world ⑪return ⑫music%s ⑬_root ⑭FileName ⑮add. ⑯-replace ⑰print^name ⑱i1s ⑲index ⑳format

    ① ④ ⑤ ⑦ ⑧ ⑬ ⑭ ⑱ ⑲  ⑳

    5.请写出下列输出语句

    a=15.15645 b='fgxfdbg'

    1)请将a保留3位小数输出

    print('%.2f'%a)

    2)请将a输出为整数

    print('%d'%a)

    3)请将b保留3位字符输出

    print('%.3s'%b)

    4)请将a保留2位小数并且输出为百分数

    print('%.2f%%'%a)

    6.请写出变量的命名规则

    1)由26个字母,0-9数字,下划线组成

    2)不能以数字开头

    3)不能包含特殊字符%#@.&*

    4)不能直接引用关键字

    7.a=4b=10c=30,请写出abc的和,c除以a的余数及其商的整数,ba次方幂

    print(a+b+c)

    print(c%a)

    print(c//a)

    print(b**a)

    序列类型

    一、列表list

    列表是python最基本的数据结构,它的下标是从0开始,列表值是放在方括号内

    列表定义

    list = ["码上开始", 1, 'hello']

    1.访问列表的值

    1)下标索引取值:列表内部的元素是有顺序的,从0开始,可以通过下标获取对应的值

    print(list[0])

    结果:"码上开始"

    print(list[-1])

    结果: 'hello'

    2index:查找位置

    print(list.index('hello'))

    结果:2

    3count:查找列表值出现的次数

    print(list.count('hello'))

    结果:1

    4sort:字母或者数字默认按升序排列

    list1 = ['dsvd','zgbd','hjs']

    list2= [12,52,1]

    list1.sort()

    list2.sort()

    print(list1)

    print(list2)

    结果:['dsvd','hjs','zgbd']

    结果:[1,12,52]

    2.更新列表的值

    修改元素的值:列表是可变类型数据,可以通过下标修改制定位置的元素

    list[1] = 3

    结果:["码上开始", 3, 'hello']

    3.增加列表数值

    1list.append(3)#

            结果:["码上开始", 1, 'hello'3]

    2list.insert(1,123)#位置,值

            结果:["码上开始", 1231, 'hello']

    3extend() 函数用于在列表末尾一次性追加另一个序列中的多个值(用新列表扩展原来的列表)

             list1 = [123, 'xyz', 'zara', 'abc', 123]

             list2 = [2009, 'manni']

             list1.extend(list2)

             print(list1)

             结果: [123, 'xyz', 'zara', 'abc', 1232009, 'manni']

    4.删除列表数值

    list.pop(2)#位置

    结果:["码上开始", 1]

    list.remove(1)#

    结果:["码上开始",  'hello']

    list.clear()#删除全部

    结果:[]

    二、元组tuple

    1.元组定义:

    1Python 的元组与列表类似,不同之处在于元组的元素不能修改。

    2)元组使用小括号,列表使用方括号。

    3)元组创建很简单,只需要在括号中添加元素,并使用逗号隔开即可。

    4)定义元组:

             tuple = (1, "码上开始"“hello”)

             tuple=1,)只有一个数据的时候需要注意加逗号

    5)访问元组,下标索引取值:列表内部的元素是有顺序的,从0开始,可以通过下标获取对应的值

             print(tuple(0))

    6)修改元组(重点:元组是不能修改值)

    三、字典dict

    1.定义:字典的每个键值对用冒号(:)分割,每个对之间用逗号(,)分割,整个字典包括在花括号({}),格式如下所

    示:

    dict = {key1 : value1, key2 : value2 }

    2.创建字典

    dict = {"name": "python", "num": 1}

    3.访问字典的值

    print(dict["name"])

    结果:python

    4.访问字典的键

    print(dict.keys())

    结果:dict_keys(['name', 'num'])

    5.访问字典的值

    print(dict.values())

    结果:dict_values(['python', 1])

    6.修改字典

    dict["name"] = "码上开始"

    结果:{"name":  "码上开始", "num": 1}

    7.添加新的值

    dict['age'] = 28

    结果:{"name":  "码上开始", "num": 1,'age':28}

    8.删除

    dict.pop("name")

    结果:{'num': 1}

    四、字符串str

    1.字符串定义:单引号、双引号、三引号、str()

    s='hello word'

    s=”hello word”

    s='''hello word'''

    s=str(123456)

    空字符串定义:s=“

    2.字符串常见操作:

    (1)字符串拼接:+

    print('我的名字叫'+'小明')

    结果:我的名字叫小明

    (2)字符串的输出:print(),输出多个不同的数据用逗号隔开

    name = "小明"

    print("我的名字叫:" , name)

    结果:我的名字叫小明

    (3)字符串转义: \n换行, r“ ” 防止转义

    转义字符:ASCII 编码为每个字符都分配了唯一的编号,称为编码值。在 Python 中,一个 ASCII 字符除了可以用它的实体(也就是真正的字符)表示,还可以用它的编码值表示。这种使用编码值来间接地表示字符的方式称为转义字符(Escape Character)。在python中转义字符,就是那些以反斜杠\开头的字符。

    转义字符:\n    \r     \t      \a       \b     \\     \'     \”      \,简单来说就是这几个字符在python里面有特殊意义,要想让它变成字符的形式就要不让它转义

    举例:

    print('\n')

    结果:输出换行

    print(r'\n')

    结果:\n

     

    (4)下标取值:[]

    s='hello word'

    print(s[3])

    结果:l

    (5)字符串常见的方法:

    ①join:连接字符串数组。将字符串、元组、列表中的元素(元素为字符串)以指定的字符(分隔符)连接生成一个新的字符串

    语法格式:separator.join(str/tuple/list)

    separator:分隔符

    举例:

    a=['sdf','hiuhk','fefgsdf']

    res=':'.join(a)

    print(res)

    结果:sdf:hiuhk:fefgsdf

    ②find:查找字符串元素的位置

    举例:

    s='我的名字叫:小明'

    print(s.find(""))

    取第二个字符的位置

    a='fdsdddssssbb'

    s=a.find('s',a.find('s')+1)

    结果:6

    ③count:查找元素的个数

    举例:

    a='fdsdddssssbb'

    print(a.count('s'))

    结果:5

    ④replace:替换

    举例:

    a='dfgffghdfgf'

    print(a.replace('f','1'))

    结果:d1g11ghd1g1

    ⑤split:分割

    语法格式:str.split(str="",num=string.count(str))

    参数说明:

    str:表示为分隔符,默认为空格,但是不能为空('')。若字符串中没有分隔符,则把整个字符串作为列表的一个元素

    num:表示分割次数。如果存在参数num,则仅分隔成 num+1 个子字符串

    举例1

    txt = "hello word"

    print(txt.split())

    结果:['hello', 'word']

    举例2

    txt='dsvfvfdvfdsv'

    print(txt.split('f',2))

    结果:['dsv', 'v', 'dvfdsv']

    大小写转换

    upper:转变为大写

    lower:转变为小写

    举例:

    s='GUukygGYF'

    print(s.lower())

    print(s.upper())

    结果:guukyggyf

          GUUKYGGYF

    格式化输出

    name='小明'

    print('我的名字叫:{}'.format(name))

    结果:我的名字叫:小明

    切片

    语法格式:str[::步长] 取头不取尾,默认为1

    举例1

    s='asdfghjdthh'

    print(s[1:3])

    结果:sd

    举例2

    print(s[2:5:2])

    结果:dg

    举例3

    print(s[2:10:3])

    结果:dht

    五、对象类型转化

    1.列表转元组、字符串、字典

    lis=[12,45,45] lis1=[56,12,88]

    tup=tuple(lis) strs=str(lis) dic=dict(zip(lis,lis1))#zip() 函数用于将可迭代的对象作为参数,将对象中对应的元素打包成一个个元组,然后返回由这些元组组成的列表。

    2.元组转列表、字符串、字典

    tup=(12,45,55) tup1=(52,55,85)

    lis=list(tup) strs=str(tup) dic=dict(zip(list(tup),list(tup1)))

    3.字符串转列表、元组、字典

    strs='hkukh' strs1='awslkj'

    lis=list(strs) tup=tuple(strs) dic=dict(zip(list(strs),list(strs1)))

    4.字典转列表、元组、字符串

    dic={'dc':12,'dc':45,'dc':4,'dc':21}

     list(dic.items())  tuple(dic.items())  strs=str(dic)

    六、习题

    1.请写出列表、字典、字符串增删改查和元组查的方法

    2.请写出下列语句

    a=18

    list=[10,12,17,15,14,13,16,11]

    list1=[786,45,78]

    1)请将list按照升序进行排序

    list.sort()

    2)请用俩种方式将a添加进list列表里面

    list.append(a)     list.insert(8,a)

    3)请用俩种方式删除list里面的元素17

        list.remove(17)  list.pop(2)

    4)请将列表list1添加进list列表里面

    list.extend(list1)

    3.请写出元组和列表的区别

    1.定义不同,一个是圆括号一个是方括号  2.元组只能查,不能修改,列表可以增删改查

    4.请写出下列语句

    1)小明在麓谷小学读三年级,请将小明的姓名、学校、年级信息添加到字典里面

    data={}

    data['姓名']='小明'

    data['学校']='麓谷中学'

    data['年级']='三年级'

    print(data)

    2)俩年以后小明转到尖山湖小学读五年级,请在第一问的基础上对字典信息进行修改

    data['姓名']='小明'

    data['学校']='尖山湖中学'

    data['年级']='五年级'

    print(data)

    5.请写出下列语句

    strs='sdfggkrfgdmfg'

    1)请查找出第3’g‘的位置

    index=strs.find('g',strs.find('g',strs.find('g')+1)+1)

    print(index)

    2)请查找出字母’g'出现的次数

    time=strs.count('g')

    print(time)

    3)请将字母g’a‘替换

    new_strs=strs.replace('g','a')

    print(new_strs)

    4)请将字符串strs转换成大写

    new_strs=strs.upper()

    print(new_strs)

    5)请将字符串按‘f'分割符进行分割

    new_strs=strs.split('f')

    print(new_strs)

    6)请用切片输出字符’kfdf‘

    new_strs=strs[5:12:2]

    print(new_strs)

    6.请写出下列语句

    list=['a','b','c','d'] list1=[12,13,14,15]

    (1)请将list转化为字符串、元组,将listlist1转化为字典

    strs=str(list)

    tup=tuple(list)

    dic=dict(zip(list,list1))

    函数

    一、定义:

    函数是组织好的,可重复使用的,用来实现单一,或相关联功能的代码段。例如:inputprint

    二、作用:

    函数能提高应用的模块性,和代码的重复利用率。

    三、函数分类:

    函数分为内置函数与自定义函数

    四、常用内置函数:

    1.type()

    1)作用:返回数的数据类型

    2)举例:

    a=[13,46,352]

    b={"use":"admin"}

    c='sfdvfd'

    d=(12,45)

    ①print(type(a))#<class 'list'>

    ②print(type(b))#<class 'dict'>

    ③print(type(c))#<class 'str'>

    ④print(type(d))#<class 'tuple'>

    2.eval()

    1)作用:eval() 函数用来执行一个字符串表达式,并返回表达式的值。

    2)举例:

    ①print(eval('12*13'))

    结果:156

    ②print(eval('{"use":"admin"}'))

    结果:{"use":"admin"}

    ③print(type(eval('{"use":"admin"}')))

    结果:<class 'dict'>

    3.数据类型强制装换

    1dict()

    作用:将一对数据强制装换为字典,必须是有一对值

    ②a=[('gjhj','klm'),('bgfb',2)]

    print(dict(a))

    结果:{'gjhj': 'klm', 'bgfb': 2}

    ③a=(['gjhj','klm'],['bgfb',2])

    print(dict(a))

    结果:{'gjhj': 'klm', 'bgfb': 2}

    2list()

    作用:将数据装换为列表

    举例:

    a='fdgfg'#字符串

    b={'hk':'1435','gyjg':'hb'}

    c=(12,453)

    ②print(list(a))

    结果:['f', 'd', 'g', 'f', 'g']

    ③print(list(c))

    结果:[12, 453]

    ④print(list(b))

    结果:['hk', 'gyjg']

    3tuple()

    作用:将数据装换为元组

    举例

    a='fdgfg'

    b={'hk':'1435','gyjg':'hb'}

    c=[12,453]

    ③print(tuple(a))

    结果:('f', 'd', 'g', 'f', 'g')

    ④print(tuple(c))

    结果:b={'hk':'1435','gyjg':'hb'}

    ⑤print(tuple(b))

    结果:('hk', 'gyjg')

    4str()

    作用:将数据装换为字符串

    举例:

    a=(12,463)

    b={'hk':'1435','gyjg':'hb'}

    c=[12,453]

    print(type(str(a)))

    结果:<class 'str'>

    print(type(str(b)))

    结果:<class 'str'>

    print(type(str(c)))

    结果:<class 'str'>

    4.set()

    1)作用:set() 函数创建一个无序不重复元素集,可进行关系测试,删除重复数据,还可以计算交集、差集、并集等。

    2)举例:a=[12,45,123,4,15,864,5,45,5,123,46,4]

    b=set('sdccvdfvckl')

    c=set('fdvdscddcshy')

    ①print(set(a))#去重复

    结果:{864, 4, 5, 12, 45, 46, 15, 123}#返回的是一个集合

    ②print(list(set(a)))#强制装换为列表,实现去重复

    结果:[864, 4, 5, 12, 45, 46, 15, 123]

    ③print(eval('c&b'))#交集

    结果:{'c', 'd', 'f', 's', 'v'}

    ④print(eval('c|b'))#并集

    结果:{'y', 'c', 'd', 'k', 'l', 'f', 'h', 's', 'v'}

    ⑤print(eval('c-b'))#差集

    结果:{'k', 'l'}

    ⑥print(eval('c^b'))#补集

    结果:{'k', 'h', 'y', 'l'}

    5.sorted()

    1)作用:排序

    2)举例:

    升序:

    a=[15,13,54,1,53,22,5]

    print(sorted(a))

    print(sorted(a, reverse=False))

    结果:[1, 5, 13, 15, 22, 53, 54]

    降序:

    print(sorted(a, reverse=True))

    结果:[54, 53, 22, 15, 13, 5, 1]

    元组或列表:

    a=[('b',2),('a',1),('c',3),('d',4)]

    b=[['b',2],['a',1],['c',3],['d',4]]

    升序:

    print(sorted(a, key=lambda x:x[1]))

    结果:[('a', 1), ('b', 2), ('c', 3), ('d', 4)]

    降序:

    print(sorted(b, key=lambda x:x[1], reverse=True))

    结果:[['d', 4], ['c', 3], ['b', 2], ['a', 1]]

    6.字符转换

    1int()

    作用:用于将一个字符串或数字转换为整型。

    语法格式:class int(x, base=10)

    x -- 字符串或数字。

    base -- 进制数,默认十进制。

    举例:

    a='12'

    b=12.2

    #将字符串转化为整型

    print(type(int(a)))

    结果:<class 'int'>

    #将浮点数转化为整型

    print(type(int(b)))

    结果:<class 'int'>

    2float()

    #将字符串转化为整型

    print(type(float(a)))

    结果:<class 'int'>

    #将浮点数转化为整型

    print(type(float(b)))

    结果:<class 'int'>

    7.sum()

    1)作用:sum() 方法对序列进行求和计算。

    2)语法格式:sum(iterable[, start])

    参数:

    iterable -- 可迭代对象,如:列表、元组、集合。

    start -- 指定相加的参数,如果没有设置这个值,默认为0

    3)举例:

    print(sum([0,1,2]))

    结果:3

    print(sum((2, 3, 4), 1)) # 元组计算总和后再加 1

    结果:10

    print(sum([0,1,2,3,4], 2))  # 列表计算总和后再加 2

    结果:12

    8.len()

    (1)作用:返回对象(字符、列表、元组等)长度

    a = "jhukhk"

    print(len(a))  # 字符串长度

    结果:6

    b = [1, 2, 3, 4, 5]

    print(len(b))  # 列表元素个数

    结果:5

    9.random()

    1)作用:返回随机生成的一个实数

    2)举例:

    import random

    随机整数:

    print(random.randint(1,50))

    随机选取0100间能被2整除的数:

    print(random.randrange(0, 101, 2))

    随机浮点数:

    print(random.uniform(1, 10))

    随机选取字符串:

    print(random.choice(['剪刀', '石头', '']))

    打乱排序

    items = [1, 2, 3, 4, 5, 6, 7, 8, 9, 0]

    random.shuffle(items)

    print(items)

    10.round()

    1)作用:保留小数点后多少位数,返回浮点数x的四舍五入值

    2)举例:

    print(round(80.23556, 2))

    结果:80.24

    11.strip

    1)作用: 字符串去掉字符串开头和结尾的指定字符,默认为空格或换行符

    2)举例:

    a='dddjlkn\n'

    strs = a.strip('\n')

    print(strs)

    #输出:dddjlkn

    五、习题

    1.请写出下列代码语句

    lists=[45,23,84,11,25,46,86,45,23,45,11]

    1)请将列表lists按照降序排列

    list_sort=sorted(lists,reverse=True)

    print(list_sort)

    2)请去除lists重复的元素,返回一个列表

    list_set=list(set(lists))

    print(list_set)

    3)请求出列表lists所有元素的和

    print(sum(lists))

    4)请求出列表lists的长度

    print(len(lists))

    2.利用随机函数,写出一个随机出一个剪刀、石头或布的代码语句

    play=random.choice(['剪刀','','石头'])

    print(play)

    3.请将a变成一个只保留3位数的浮点数b

    a=56.333333333

    b=round(a,3)

    控制流程语句

    一、条件判断语句

    1.if

    1)判断条件为单个:

    if 判断条件:

    执行语句……

    else

    执行语句……

    2)运行流程:其中"判断条件"成立时(非零),则执行后面的语句,而执行内容可以多行,以缩进来区分表示同一范围。else 为可选语句,当需要在条件不成立时执行内容则可以执行相关语句。

    3)举例:

    a=10

    b=15

    if a<b:

        print('a小于b')

    else:

        print('a大于b')

    结果:a小于b

    4)当判断条件为多个值时,可以使用以下形式:

    if 判断条件1:

    执行语句1……

    elif 判断条件2:

    执行语句2……

    elif 判断条件3:

    执行语句3……

    else:

    执行语句4……

    5)运行流程:

    由于 python 并不支持 switch 语句,所以多个条件判断,只能用 elif 来实现,如果判断需要多个条件需同时判断

    时,可以使用 or (或),表示两个条件有一个成立时判断条件成功;使用 and (与)时,表示只有两个条件同时成立的情况下,判断条件才成功。

    6)举例:

    import random

    a=random.randint(1,999)

    if len(str(a))==1:

        print('{}是一位数'.format(a))

    elif 3>len(str(a))>=2:

        print('{}是两位数'.format(a))

    else 4>len(str(a))>=3:

        print('{}是三位数'.format(a))

    year=int(input('请输入年份:'))

    if year%400==0 or (year%4==0 and year%100!=0):

        print('{}年是闰年'.format(year))

    else :

        print('{}年是平年'.format(year))

    二、循环语句

    1.while

    1)基本格式:

    while 判断条件:

    执行语句……

    else:

    执行语句……

    2)运行流程:

    执行语句可以是单个语句或语句块。判断条件可以是任何表达式,任何非零、或非空(null)的值均为true。当判断条件假false时,循环结束。

    3)举例:

    count = 0

    while count < 5:

        print(count, " is less than 5")

        count = count + 1

    else:

        print(count, " is not less than 5")

    无限循环

    a=100

    while True:

        print(a)

        a=a-1

        if a<=0:

            break

    #当运行碰到break时,循环结束,否则一直运行。

    2.for

    1)作用:for循环可以遍历任何序列的项目,如一个列表或者一个字符串。

    2)语法格式:

    for i in range(num):

        #执行语句

    #系统会自动将num的数从第一个到最后一个给inum如果不指定区间数,将以默认为0开头,取头位数,不取尾数位。

    for i in list:

    #list为列表,系统会自动将list的数从第一个到最后一个给i,知道list数给完。

    (3)举例:

    求一个数列:1/2+1/4+1/6+1/8....,求前20项的和

    sum=0

    for i in range(1,41):

        if i%2==0:

            sum=1/float(i)+float(sum)

            print(round(sum,2))

    冒泡排序

    xuhaos=[15,165,12,663,654,2,232,17,52]

    for x in range(0, len(xuhaos) - 1):

      for i in range(0, len(xuhaos) - 1):

        if xuhaos[i + 1] > xuhaos[i]:

          b = xuhaos[i]

          xuhaos[i] = xuhaos[i + 1]

          xuhaos[i + 1] = b

    print(xuhaos)

    #输出:[663, 654, 232, 165, 52, 17, 15, 12, 2]

    ③99乘法表

    for y in range(1,10):

      for x in range(1,y+1):

        print('{}*{}={}'.format(x,y,x*y),end=' ')

      print('\n')

    三、习题

    1.输入年份,判断是为闰年(能被400整除,或者能被4整除但是不能被100整除)还是平年

    year=int(input('请输入年份:'))

    if year%400==0 or (year%4==0 and year%100!=0):

        print('{}年是闰年'.format(year))

    else :

    print('{}年是平年'.format(year))

    2.随机生成一个数1000以内的数判断是几位数

    import random

    a=random.randint(1,999)

    if len(str(a))==1:

        print('{}是一位数'.format(a))

    elif 3>len(str(a))>=2:

        print('{}是两位数'.format(a))

    else 4>len(str(a))>=3:

    print('{}是三位数'.format(a))

    3.求一个数列:1/2+1/4+1/6+1/8....,求前20项的和

    sum=0

    for i in range(1,41):

        if i%2==0:

            sum=1/float(i)+float(sum)

            print(round(sum,2))

    4.冒泡排序

    a=[14,56,111,42,12,32,95,22,61]

    for x in range(len(a)-1):

        for y in range(len(a)-1):

            if a[y]>a[y+1]:

                b=a[y]

                a[y]=a[y+1]

                a[y+1]=b

    print(a)

    5.99乘法表

    for x in range(1,10):#

        for y in range(1,x+1):#

            print('{}*{}={}'.format(x,y,x*y),end=' ')

        print('\n')

    异常处理

    一、定义:

    异常即是一个事件,该事件会在程序执行过程中发生,影响了程序的正常执行。

    二、语法格式:

    1.第一种:

    try

        #执行语句

    expect Expection

        #执行语句

    2.第二种:

    try:

        #执行语句

    expect Expection as e

         raise e

    finally:

         #执行语句

    1Expection属于万能异常,更多异常类请看博客

    2as e 捕捉到异常程序报错,但是程序不会停止运行,e是异常信息

    3raise e 主动触发异常,程序控制台报错,程序停止运行

    4finally不论运行完try或者expect都会运行一次finally

    5traceback.print_exc() 可以用来查看异常的传播轨迹,追踪异常触发的源头。

    三、举例:

    try:

    #语句

        print('dc'+1)

    except Exception as e:#Exception万能异常

        print('***程序出现错误***')

        print(e)#打印异常信息,不打印行号,程序继续运行

        traceback.print_exc()#查看程序异常信息,打印行和异常信息,程序继续运行

        raise e#主动触发异常,打印行号和异常信息,程序停止运行

    finally:#无论执行try还是except都会执行,主动触发异常程序停止运行时继续运行

        print('66666')

    print('888888')

    四、应用场景

    1.代码出现问题时程序不会立马崩溃,写出日志

    2.提供俩个选项,作出选择

    五、出错点

    1.长度函数用整数 2.input输入浮点数 3.字符跟整数拼接 4.文件读取无此文件

    文件读写

    一、打开文件

    open() 方法

    Python open() 方法用于打开一个文件,并返回文件对象,在对文件进行处理过程都需要使用到这个函数,如果该

    文件无法被打开,会抛出 OSError

    注意:使用 open() 方法一定要保证关闭文件对象,即调用 close() 方法。

    open() 函数常用形式是接收两个参数:文件名(file)和模式(mode)

    二、语法格式:

    open(file, mode='r', buffering=-1, encoding=None, errors=None, newline=None, closefd=True)

    参数说明:

    file: 必需,文件路径(相对或者绝对路径)。

    mode: 可选,文件打开模式  'r' 'w' 'a' ,'w'会清空文字

    buffering: 设置缓冲

    encoding: 一般使用utf8

    errors: 报错级别

    newline: 区分换行符

    closefd: 传入的file参数类型

    一般只用到filemodeencoding

     

    三、文件写入:

    写入单行 write

    file=open("text.txt","a")

    file.write("今天天气好"

    写入多行 writelines

    file.writelines([1,2,3])

    保存文件 flush

    file.flush()

    四、读取文件:

    读取单行 read

    res=f.read()

    读取多行 readlines

    file.writelines()

    五、文件定位

    tell() 方法告诉你文件内的当前位置

    seekoffsetfrom)方法改变当前文件指针的位置

    offset:变量表示要移动的字节数 正和负数

    from:变量指定开始移动字节的参考位置,默认为1

    0:参考位置为文件开头

    1:参考位置设为当前所在位置

    2:参考位置设为文件结尾

    file=open('test.txt','r'

    file.tell()

    file.readline()

    file.seek(0)

    六、with open

           我们写入文件内容时,系统并不会立刻就把所有数据写入到磁盘,它是先放到内存中缓存,等到空闲的时候再慢慢写入到磁盘。当调用close()方法时,系统才能保证把剩余没有写入的数据全部写入到磁盘。假如我们忘记调用了close()方法,那很可能导致我们的数据遗失。为了保证万无一失,最好是使用with open()进行内容的读写。

    七、写入

    .write:写入的是一个字符串

    .writelines:注意写入的必须是字符串,可以是列表

    .read() 每次读取整个文件,它通常将读取到底文件内容放到一个字符串变量中,也就是说 .read() 生成文件内容是一个字符串类型。

    .readline()每只读取文件的一行,通常也是读取到的一行内容放到一个字符串变量中,返回str类型。

    .readlines()每次按行读取整个文件内容,将读取到的内容放到一个列表中,返回list类型。

  • 相关阅读:
    JZOJ5906 传送门
    JZOJ5907 轻功
    JZOJ5904 刺客信条
    JZOJ5347 遥远的金字塔
    JZOJ5344 摘果子
    JZOJ4742 单峰
    JZOJ4725 质数序列
    JZOJ2499 东风谷早苗
    JZOJ4737 金色丝线将瞬间一分为二
    最后的财产——模板大全
  • 原文地址:https://www.cnblogs.com/1527275083gj/p/15760296.html
Copyright © 2020-2023  润新知