• python3 基础三


    一.if语句

    if condition_1:

            statement_block_1

    elif condition_2:

            statement_block_2

    else:

             statement_block_3

    1.每个条件后面要使用冒号(:),表示接下来是满足条件后要执行的语句块

    2.使用缩进来划分语句块,相同缩进数的语句在一起组成一个语句块

    3.在Python中没有switch – case语句

    4.条件:(1)检查是否相等: ==;(2)检查是否不相等:!=;(3)比较数字:==,<=,>=;(4)布尔表达式: True  ;  False

                 (5)检查多个条件 : 1.条件一and条件二(同时满足);2.条件一or条件二(至少一个满足)

                 (6)检查特定值是否包含在列表中:1.特定值 in 列表 ;2.特定值 not in 列表

    5.三元运算

    1 #比较两数,输出最大的值
    2 a=int(input('数字A:'))
    3 b=int(input('数字b:'))
    4 c=a if a>b else b
    5 print(c)
    6 ------------------------------
    7 数字A:14
    8 数字b:41
    9 41
    if...else...
     1 #比较三数,输出最大的值
     2 a=int(input('数字A:'))
     3 b=int(input('数字b:'))
     4 c=int(input('数字c:'))
     5 d=(a if a>b else b) if(a if a>b else b) else c
     6 print(d)
     7 ----------------------------------------------------
     8 数字A:124
     9 数字b:121
    10 数字c:21
    11 124
    三数最大值

     

    二.while循环

    while 判断条件:

            语句

    1.注意冒号和缩进

    2.Python中没有do..while循环

    3.可以通过设置条件表达式永远不为 false 来实现无限循环,可以使用 CTRL+C 来退出当前的无限循环

    4.使用标志

     1 #定义一个变量作为标志,用于判断整个程序是否属于活动状态
     2 active=True
     3 while active:
     4     message=input()
     5     if message == 'quit':
     6         active=False
     7     else:
     8          print(message)
     9 ---------------------------------------------------
    10 d
    11 d
    12 33
    13 33
    14 quit
    标志

     

    三.else语句

    1.如果 else 语句和 while 循环语句一起使用,则当条件变为 False 时,则执行 else 语句

    2.如果 else 语句和 for 循环语句一起使用,else 语句块只在 for 循环正常终止时执行!

    3.if语句中当不满足当前条件时,从而执行下一条else语句

     

    四.for语句

    for <variable> in <sequence>:

                        < statements>

    else:

                         <statements>

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

     

    五.break和continue语句及循环中的else子句

    1.break 语句可以跳出 for 和 while 的循环体

    2.从 for 或 while 循环中终止,任何对应的循环 else 块将不执行

    3.continue语句被用来告诉Python跳过当前循环块中的剩余语句,然后继续进行下一轮循环

    4.循环语句可以有 else 子句,它在穷尽列表(以for循环)或条件变为 false (以while循环)导致循环终止时被执行,但循环被break终止时不执行

     

    六.pass语句

    1.pass是空语句,是为了保持程序结构的完整性

    2.pass 不做任何事情,一般用做占位语句

     

    七.输入输出语句

    1.2.x中print (空格)"变量名"3.7中print("变量名")

    2.print()输出函数

    1 #print(self, *args, sep=' ', end='
    ', file=None)
    2 # •    *args:表示任何多个无名参数,它是一个tuple;
    3 # •    sep:指定输出的多个参数之间的间隔符,默认是一个空格;
    4 # •    end:指定最后一个参数输出之后输出的字符,默认是换行符。
    5 print(2,3,4,5)
    6 print(2,3,4,5,sep='+',end='
    ')
    7 ----------------------------------------------------------------------
    8 2 3 4 5
    9 2+3+4+5
    print()

    3.将输出的值转成字符串: repr() 或 str()

    (1).str(): 函数返回一个用户易读的表达形式

    (2).repr(): 产生一个解释器易读的表达形式

     1 s="hello,world"
     2 print(str(s))
     3 print(repr(s))
     4 a='hello world
    '
     5 print(a)
     6 print(repr(a)) # repr() 函数可以转义字符串中的特殊字符
     7 print(str(a))
     8 print(repr((s,a,('glle','runs'))))#repr(一个参数),参数可以是 Python 的任何对象
     9 -----------------------------------------------------------------------------------------
    10 hello,world
    11 'hello,world'
    12 hello world
    13 
    14 'hello world
    '
    15 hello world
    16 
    17 ('hello,world', 'hello world
    ', ('glle', 'runs'))
    str()和repr()

    4.使用 str.format() 函数来格式化输出值,使输出的形式更加多样

     1 # print('{}{}'.format('',''))括号及其里面的字符(称作格式化字段)将会被format()中的参数替换
     2 # 在括号中的数字用于指向传入对象在 format() 中的位置
     3 print('{0} 和 {1}'.format('Google', 'Runoob'))
     4 print('{1} 和 {0}'.format('Google', 'Runoob'))
     5 
     6 
     7 # 如果在 format() 中使用了关键字参数, 那么它们的值会指向使用该名字的参数
     8 print('{name}名字: {old}'.format(name='小明', old='18'))
     9 
    10 
    11 # 位置及关键字参数可以任意的结合
    12 print('站点列表 {0}, {1}, 和 {other}。'.format('Google', 'Runoob',  other='Taobao'))
    13 
    14 
    15 # '!a' (使用 ascii()),
    16 # '!s' (使用 str())
    17 # '!r' (使用 repr())
    18 # 可以用于在格式化某个值之前对其进行转化
    19 import math
    20 print('常量 PI 的值近似为: {}。'.format(math.pi))
    21 print('常量 PI 的值近似为: {!a}。'.format(math.pi))
    22 
    23 # 可选项 ':' 和格式标识符可以跟着字段名。在 ':' 后传入一个整数, 可以保证该域至少有这么多的宽度
    24 print('常量 PI 的值近似为 {0:.3f}。'.format(math.pi))#float保留3位小数
    25 print('{0:10}---{1:10d}'.format('ta',4))#至少有10的宽度
    26 
    27 # 如果你有一个很长的格式化字符串, 而你不想将它们分开, 那么在格式化时通过变量名而非位置会是很好的事情。
    28 # 最简单的就是传入一个字典, 然后使用方括号 '[]' 来访问键值
    29 table = {'Google': 1, 'Runoob': 2, 'Taobao': 3}
    30 print('Runoob: {0[Runoob]}; Google: {0[Google]:d}; Taobao: {0[Taobao]:d}'.format(table))
    31 print('Runoob: {Runoob:d}; Google: {Google:d}; Taobao: {Taobao:d}'.format(**table))
    32 #也可以通过在 table 变量前使用 '**' 来实现相同的功能
    33 ---------------------------------------------------------------------------------------
    34 Google 和 Runoob
    35 Runoob 和 Google
    36 小明名字: 18
    37 站点列表 Google, Runoob, 和 Taobao。
    38 常量 PI 的值近似为: 3.14159265358979339 常量 PI 的值近似为: 3.14159265358979340 常量 PI 的值近似为 3.14241 ta        ---         4
    42 Runoob: 2; Google: 1; Taobao: 3
    43 Runoob: 2; Google: 1; Taobao: 3
    str.format()
    1 print('{2:10s}{0:10d}{1:10f}'.format(33,11,'22'))
    2 print('{2:^10s}{0:<10d}{1:>10f}'.format(33,11,'22'))
    3 #域宽为10 s,d,f表示字符串,整型,浮点型
    4 #<,>,^分别左对齐,右对齐,居中
    5 -------------------------------------------------------------------------
    6 22                33 11.000000
    7     22    33         11.000000
    补充

    5.% 操作符也可以实现字符串格式化

    6.input()函数读取键盘输入

    Python2中raw_input将用户输入的内容当做字符串,传递给接受的变量,input会将用户输入的内容当做‘代码’进行处理,input=raw_input+eval

    python3中只有input相当于python2中的raw_input,可以用eval函数实现python2中的input功能

    input()函数让程序暂停工作,等待用户输入一些文本,用户按回车键后程序继续运行。我们可以将文本赋值存储在一个变量中,

     1 #input(*args, **kwargs)
     2 #kwargs:表示关键字参数,它是一个dict
     3 # input() 置函数从标准输入读入一行文本,默认的标准输入是键盘
     4 #input 可以接收一个Python表达式作为输入,并将运算结果返回
     5 #使用input时,python将用户输入解读为字符串,可用int()来获取数值输入
     6 print(input('name:'))
     7 a=input("old:")
     8 print(a)
     9 print(type(a))
    10 b=int(a)
    11 print(b)
    12 print(type(b))
    13 ----------------------------------------------------------------------
    14 name:alex
    15 alex
    16 old:16
    17 16
    18 <class 'str'>
    19 16
    20 <class 'int'>
    input()

    *input和split读取多个输入

     1 n1,n2=input('shuru1: ').split('#')#输入两个字符串,以#表示分隔
     2 n3,n4,n5=input('shuru2:').split()##输入三个字符串,默认以空格表示分隔
     3 s1=int(n1)+int(n2)
     4 print(s1)
     5 s2=int(n1)+int(n3)-int(n5)+int(n4)
     6 print(s2)
     7 --------------------------------------------------------
     8 shuru1: 12#655
     9 shuru2:231 33 23
    10 667
    11 253
    split

     

    八.迭代器iterator

    1.迭代是指重复反馈过程的活动,目的是为了接近并达到所需的目标或结果。每一次的过程的重复被称为一次迭代,所得到的结果会被用来作为下一次迭代的初始值。

    2.迭代是Python最强大的功能之一,是访问集合元素的一种方式。迭代器也是可迭代对象,也可作用于for in

    3.迭代器是一个可以记住遍历的位置的对象。

    4.迭代器只能往后,不能往前;迭代器一般不能多次迭代;取完之后再取元素会报错 

    5.迭代器适合用于遍历一些巨大或无限的集合,仅仅在迭代到某个元素时才处理该元素

    6.迭代器有两个基本的方法:iter()(把可迭代对象转换成迭代器进行使用) 和 next()(遍历)。

     1 list=[1,2,34,3,4,'32','als']
     2 it=iter(list)    # 创建迭代器对象,字符串,列表或元组对象都可用于创建迭代器
     3 print(next(it))  # 输出迭代器的下一个元素
     4 print(next(it))  # 输出迭代器的下一个元素,
     5 # 迭代器对象从集合的第一个元素开始访问,直到所有的元素被访问完结束。
     6 # 迭代器中访问完一个少一个,迭代器没有len
     7 for x in it:     #迭代器对象可以使用常规for语句进行遍历
     8     print(x)     #迭代器只能往前不会后退
     9 --------------------------------------------------------------
    10 1
    11 2
    12 34
    13 3
    14 4
    15 32
    16 als
    iter()和next()

     

    九.生成器generator

    1.在 Python 中,使用了 yield 的函数被称为生成器(generator)函数,这个函数的执行结果就是生成器

    2.跟普通函数不同的是,生成器是一个返回迭代器的函数,只能用于迭代操作,更简单点理解生成器就是一个特殊的迭代器。

    3.在调用生成器运行的过程中,每次遇到 yield 时函数会暂停并保存当前所有的运行信息,返回 yield 的值, 并在下一次执行 next() 方法时从当前位置继续运行。

     1 def test():
     2     print('xxx')
     3     yield 1
     4     print('a')
     5     yield 2
     6     print('b')
     7     yield 3
     8     print('c')
     9     yield 7
    10     print('d')
    11 
    12 g=test()
    13 print(g)#<generator object test at 0x02DEE900>
    14 
    15 print(next(g))#xxx   1
    16 print(next(g))#a      2
    17 ----------------------------------------------------------------
    18 <generator object test at 0x0568E900>
    19 xxx
    20 1
    21 a
    22 2
    yield

    4.调用一个生成器函数,返回的是一个迭代器对象。

     1 #如果一个函数定义中包含yield关键字,那么这个函数就不再是一个普通函数,而是一个generator
     2 import sys
     3 def fibonacci(n):  # 生成器函数 - 斐波那契
     4     a, b, counter = 0, 1, 0
     5     while True:
     6         if (counter > n):
     7             return
     8         yield a
     9         a, b = b, a + b
    10         counter += 1
    11 f = fibonacci(10)  # f 是一个迭代器,由生成器返回生成
    12 while True:
    13     try:
    14         print (next(f), end=" ")
    15     except StopIteration:
    16         sys.exit()
    17 -------------------------------------------------------------------
    18 0 1 1 2 3 5 8 13 21 34 55
    View Code

    5.生成器表达式创建方式:把列表推导式的[]修改为()

    1 l=(i for i in range(1,10)if i%2==0)
    2 l2=[i for i in range(1,10)if i%2==0]
    3 
    4 print(l)
    5 print(l2)
    6 ----------------------------------------
    7 <generator object <genexpr> at 0x0573E900>
    8 [2, 4, 6, 8]
    生成器表达式创建

    6.生成器的send()方法

     1 #send方法有一个参数,指定的是上一次被挂起的yeild语句的返回值
     2 #相比于.__next__(),可以额外的给yield语句传值
     3 #注意第一次调用 t.send(None)
     4 
     5 def test():
     6     print('xx')
     7     res1=yield 1#'ooo'
     8     print(res1)
     9 
    10     res2=yield 2
    11     print(res2)
    12 
    13 g=test()
    14 
    15 print(g.__next__())#调用.__next__()方法时,执行函数xx   1
    16 # print(g.__next__())#调用.__next__()方法时,执行函数None 2
    17 print(g.send('ooo'))#调用send方法,给上次的yeild指定返回值ooo 2
    18 -------------------------------------------------------------
    19 xx
    20 1
    21 ooo
    22 2
    send()

    7.关闭生成器.close()方法

     1 def test():
     2     print('xxx')
     3     yield 1
     4     print('a')
     5     yield 2
     6     print('b')
     7     yield 3
     8     print('c')
     9 g=test()
    10 print(g.__next__())
    11 g.close()#关闭生成器,无法再访问
    12 # print(g.__next__())异常StopIteration
    13 ----------------------------------------------------
    14 xxx
    15 1
    .close

    8.如果碰到return,会直接终止,抛出StopIteration异常提示,生成器只会遍历一次

     

    十.补充

    1.assert关键字

     1 #assert断言
     2 #当关键字后面的条件为假时,程序自动崩溃并抛出AssertionError的异常
     3 #关键字后面的条件为真时,自动忽略
     4 assert 3>4
     5 #一般来说,我们可以用它在程序中置入检查点
     6 #当需要确保程序中的某个条件一定为真才能让程序正常工作的话,assert关键字就很有用
     7 ---------------------------------------------------------------------------------------
     8 Traceback (most recent call last):
     9   File "E:/python_work/example/2018.4.2.py", line 21, in <module>
    10     assert 3>4
    11 AssertionError
    assert

    2.可迭代对象iterable:list,dict,set,str,generator(生成器),iterator(迭代器)

    3.可迭代对象都可用for来遍历

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

  • 相关阅读:
    如何通过经纬度获取地址信息?
    通过google地图的webservice根据城市名称获取经纬度
    PHP 使用 GeoLiteCity 库解析 IP 为地理位置
    PHPExcel对于Excel中日期和时间类型的处理
    phpexcel来做表格导出(多个工作sheet)
    PHPExcel读取excel文件
    读取上传的CSV为DataTable
    判断sqlserver对象是否存在
    async & await 的前世今生
    .NET4.5之初识async与await
  • 原文地址:https://www.cnblogs.com/yu-liang/p/8570167.html
Copyright © 2020-2023  润新知