>  기사  >  백엔드 개발  >  Python의 변수, 연산자 및 흐름 제어의 예를 분석합니다.

Python의 변수, 연산자 및 흐름 제어의 예를 분석합니다.

WBOY
WBOY앞으로
2023-05-08 19:16:181282검색

    1. Python 프로그램을 실행하는 두 가지 방법

    1. Interactive

    터미널에 "python3"을 입력한 후 Python 코드를 입력합니다.

    Python의 변수, 연산자 및 흐름 제어의 예를 분석합니다.

    2. 명령줄

    터미널에 " python3 텍스트 파일 경로"

    Python의 변수, 연산자 및 흐름 제어의 예를 분석합니다.

    2. 변수

    1. 변수의 구성

    파이썬에서 변수는 선언할 필요가 없습니다. 각 변수는 사용하기 전에 값을 할당해야 합니다. 변수에 값이 할당될 때까지는 변수가 생성되지 않습니다.

    Python에서 변수는 변수이며 유형이 없습니다. 우리가 "유형"이라고 부르는 것은 변수가 참조하는 메모리의 객체 유형입니다.

    등호(=)는 변수에 값을 할당하는 데 사용됩니다.

    등호(=) 연산자의 왼쪽은 변수 이름이고, 등호(=) 연산자의 오른쪽은 변수에 저장된 값입니다.

    변수 이름 = 변수 값.

    변수 이름은 변수 값을 받는 데 사용됩니다

    name = 'nick' 
    age = 19

    2. 변수 이름의 정의 사양

    • 변수 이름에는 특정한 의미가 있습니다

    • 은 숫자/문자/밑줄로 구성되며, 숫자로 구성할 수 없으며 밑줄로 시작하는 Python 키워드

    • 사용할 수 없음

    ['and', 'as', 'assert', 'break', 'class', 'continue', ' def', 'del', 'elif', 'else', '제외', 'exec', 'finally', 'for', 'from', 'global', 'if', 'import', 'in' , 'is', 'lambda' , 'not', 'or', 'pass', 'print', 'raise', 'return', 'try', 'while', 'with', 'yield']

    3. 변수를 정의하는 두 가지 방법 단방향

    • Camel 사례: NameOfNickNameOfNick

    • 下划线:name_of_nick

    Underline: name_of_nick(권장)

    4. 상수

    상수는 관례 및 표준이며 상수 이름은 모두 대문자로 정의됩니다. 실제로 수정될 수 있습니다.

    AGE_OF_NICK = 19
    print(AGE_OF_NICK)

    3. Python 변수 메모리 관리

    1. 참조 횟수

    변수 값에 대한 참조 횟수

    x = 257  # 257的引用计数为1
    y = x   # 257的引用计数为2
    del x  # 257的引用计数为1

    2. 가비지 수집 메커니즘

    변수 값은 Python에 의해 자동으로 제거됩니다. 메모리 사용량을 회수합니다.

    3. 작은 정수 풀

    [-5, 256] 사이의 정수는 Python 인터프리터가 시작될 때 이러한 정수를 저장하기 위해 자동으로 메모리를 엽니다. 참조 횟수가 0이므로 정수는 삭제되지 않습니다.

    4. 메모리 주소와 데이터 유형

    변수의 ID를 얻는 것은 메모리에 있는 변수의 주소로 이해될 수 있습니다.
    x = 10
    print(x)  # 获取变量的变量值
    print(id(x) )  # 获取变量的id,可以理解成变量在内存中的地址
    print(type(x) )  # 获取变量的数据类型,下章会详细介绍数据类型

    결과:

    10
    8790885504960

    5. 예:

    같은 ID를 가진 변수는 같은 메모리 주소를 가리키기 때문에 같은 값을 가져야 합니다.

    value 변수는 동일하지만 ID는 반드시 동일할 필요는 없습니다.

    x = 11
    y = x
    z = 11
    print(x == y)  # True
    print(x is y)  # True
    print(x is z)  # True,整数池的原因
    
    x = 255
    z = 255
    print(id(x) is id(z) )  # False

    4. 멋진 할당

    1. 체인 할당

    다음 예에서는 값이 10인 정수 개체를 만들고 뒤에서 앞으로 값을 할당합니다.

    a = b = c = d = 10 
    print(f'a:{a}, b:{b}, c:{c}, d:{d}') #a:10, b:10, c:10, d:10

    2. 교차 할당

    # 交叉赋值
    x = 10
    y = 20
    
    x, y = y, x
    print(x, y) #20 10
    
    # 相当于使用临时变量
    x = 10 
    y = 20
    
    temp = x
    x = y
    y = temp
    
    print(x, y) #20 10

    3. 다중 변수 할당

    여러 개체에 대해 여러 변수를 지정할 수도 있습니다. 예:

    a, b, c = 1, 2, "runoob"

    위의 예에서는 두 개의 정수 개체 1과 2가 변수 a와 b에 할당되고 문자열 개체 "runoob"가 변수 c에 할당됩니다.

    피보나치 수열 쓰기 피보나치 수열:

    # 两个元素的总和确定了下一个数
    a, b = 0, 1
    while b < 10:
        print(b, end=&#39;,&#39;)
        a, b = b, a+b
    # 1,1,2,3,5,8,

    5. 사용자와 상호 작용

    name = input(&#39;请输入你的姓名:&#39;)
    pwd = input(&#39;请输入你的密码:&#39;)
    
    print(type(name))
    print(type(pwd))
    
    # 请输入你的姓名:a
    # 请输入你的密码:1
    # 
    # &#39;str&#39;>

    우리가 입력한 값이 숫자 유형, 문자열 유형, 목록 유형이든 관계없이 입력의 수신 값은 문자열입니다. 유형.

    6. 형식화된 출력

      1. 자리 표시자(이전 스타일 문자열 형식, 단계적으로 폐지됨)
    • %s: 모든 데이터 유형의 데이터 수신
    • %d: 숫자 유형 데이터 수신

    name = &#39;nick&#39;
    age = 19
    print(&#39;my name is %s my age is %d&#39; % (name, age))
    # my name is nick my age is 19
      2. 형식 지정
    • {}: 모든 데이터 유형의 데이터를 수신합니다.
    1. 형식: .format()
    name = &#39;nick&#39;
    age = 19
    #1、括号及其里面的字符 (称作格式化字段) 将会被 format() 中的参数替换。
    print("Hello, {}. You are {}.".format(name, age)) # Hello, nick. You are 19.
      
    
    2、在括号中的数字用于指向传入对象在 format() 中的位置
    print("Hello, {1}. You are {0}-{0}.".format(age, name)) # Hello, nick. You are 19-19.
    
    3、如果在 format() 中使用了关键字参数, 那么它们的值会指向使用该名字的参数。
    print("Hello, {name}. You are {age}-{age}.".format(age=age, name=name))# Hello, nick. You are 19-19.
    
    4、位置及关键字参数可以任意的结合: 
    print(&#39;站点列表 {0}, {1}, 和 {other}。&#39;.format(&#39;Google&#39;, &#39;Runoob&#39;, other=&#39;Taobao&#39;))

    2. 템플릿 문자열의 형식 제어 태그

    {: }; 기호
    : <.>

    가이드

    패딩된 단일 문자

    <:>>: 오른쪽 정렬
    ^: 가운데 정렬 슬롯 설정 출력 너비 숫자 천 단위 구분 기호

    부동 소수점 소수

    🎜또는 문자열 최대 출력 길이🎜
    • 정수 유형: b(바이너리),c,d,o,x,Xb(二进制),c,d,o,x,X

    • 浮点数类型:e,E,f,%(百分数)

    부동 소수점 유형: e,E,f,%(백분율)
    🎜🎜🎜
    3、python字符串格式化符号: 
    • %c: 格式化字符及其ASCII码

    • %s: 格式化字符串

    • %d: 格式化整数

    • %u: 格式化无符号整型

    • %o: 格式化无符号八进制数

    • %x: 格式化无符号十六进制数

    • %X: 格式化无符号十六进制数(大写)

    • %f: 格式化浮点数,可指定小数点后的精度

    • %e: 用科学计数法格式化浮点数

    • %E: 作用同%e,用科学计数法格式化浮点数(大写)

    • %g: %f和%e的简写

    • %G: %f 和 %E 的简写

    • %p: 用十六进制数格式化变量的地址

    print("{0: =^20 }".format("PYTHON"))  # &#39;=======PYTHON=======&#39; 使用等号,居中对齐
    print("{0: *>20 }".format("BIT"))  # &#39;*****************BIT&#39; 使用星号,文字右对齐
    print("{:10}".format("BIT"))  # &#39;BIT       &#39; 总长度为10,不足以空格补足。在:后传入一个整数, 可以保证该域至少有这么多的宽度。 用于美化表格时很有用。
    print("{0: ,.2f}".format(12345.6789))  # &#39;12,345.68&#39; 使用千分符,同时保留到小数点后两位
    print("{0:b},{0:c},{0:d},{0:o},{0:x},{0:X}".format(425))  # &#39;110101001,Ʃ,425,651,1a9,1A9&#39;
    print("{0:e},{0:E},{0:f},{0:%}".format(3.14))  # &#39;3.140000e+00,3.140000E+00,3.140000,314.000000%&#39;

    可以使用 bin,oct,hex 可输出数字的二进制,八进制,十六进制形式,例如:

    a = 0b111100
    print(bin(a))
    # &#39;0b111100&#39;
    print(oct(a))
    # &#39;0o74&#39;
    print(hex(a))
    # &#39;0x3c&#39;
    4、字段格式化

    字典, 然后使用方括号 [] 来访问键值 :

    table = {&#39;Google&#39;: 1, &#39;Runoob&#39;: 2, &#39;Taobao&#39;: 3}
    print(&#39;{0[Runoob]:d}; {0[Google]:d}; {0[Taobao]:d}&#39;.format(table))
    # 2; 1; 3

    也可以通过在 table 变量前使用 ** 来实现相同的功能:

    table = {&#39;Google&#39;: 1, &#39;Runoob&#39;: 2, &#39;Taobao&#39;: 3}
    print(&#39;{Runoob:d}; {Google:d}; {Taobao:d}&#39;.format(**table))
    # 2; 1; 3

    3、 f-string字面量格式化

    f-string 是 python3.6 之后版本添加的,称之为字面量格式化字符串,是新的格式化字符串的语法。

    在字符串前面加上f或F,后面跟着字符串,字符串中的表达式用大括号 {} 包起来,它会将变量或表达式计算后的值替换进去。

    用了这种方式明显更简单了,不用再去判断使用 %s,还是 %d。

    name = "nick"
    age = 19
    print(F"Hello, {name}. You are {age}.")#Hello, nick. You are 19.
    
    print(f&#39;{age*2}&#39;)#38
    salary = 6.6666
    print(f&#39;{salary:.2f}&#39;)#6.67
    
    w = {&#39;name&#39;: &#39;Runoob&#39;, &#39;url&#39;: &#39;www.runoob.com&#39;}
    print(f&#39;{w["name"]}: {w["url"]}&#39;)
    # &#39;Runoob: www.runoob.com&#39;

    在 Python 3.8 的版本中可以使用 = 符号来拼接运算表达式与结果:

    x = 1
    print(f&#39;{x+1}&#39;)   # Python 3.6
    # 2
    
    x = 1
    print(f&#39;{x+1=}&#39;)   # Python 3.8
    # &#39;x+1=2&#39;

    七、基本运算符

    1、 算术运算符

    +、 - 、* 、/ 、 //、 % 、**

    # 除
    print(10 / 3)  # 3.3333333333333335
    
    # 除,只取整数部分
    print(10 // 3)  # 3
    print(10 // 4)  # 2
    
    # %:取余
    print(10 % 3)  # 1
    
    # **,幂
    print(10 ** 3)  # 1000

    2、 逻辑运算符(运算符中优先级最低,即最后运算)

    and、 or、 not 。

    优先级:not>and>or

    # 从左到右的方式找到逻辑运算符,找到逻辑运算符的左边,左边成立,再去找到逻辑运算符的右边
    print(3 > 3 and 1 > 2 or 2 > 1)  # False

    3、 比较运算符

    >、 >=、 运算符,可以使用 != 代替)

    4、 赋值运算符

    =、 +=、 -=、 *=、 /=、 //=、 **=、 %=、:=(海象运算符,可在表达式内部为变量赋值。Python3.8 版本新增运算符。)

    5、 身份运算符,比较两个对象的存储单元。

    is、 is not

    is和==的区别:

    • is:用于判断两个变量引用对象是否为同一个(是否在同一块内存空间中),

    • ==:用于判断引用变量的值是否相等。

    6、 位运算符

    • & : 按位与运算符

    • | : 按位或运算符

    • ^: 按位异或运算符

    • ~ : 按位取反运算符

    • >> : 右移动运算符

    a = 60  # 60 = 0011 1100
    b = 13  # 13 = 0000 1101
    c = 0
    
    c = a & b
    print( c)# 12 = 0000 1100
    c = a | b
    print(c)# 61 = 0011 1101
    c = a ^ b
    print( c)# 49 = 0011 0001
    c = ~a
    print( c)# -61 = 1100 0011
    c = a << 2
    print(c)# 240 = 1111 0000
    c = a >> 2
    print(c)# 15 = 0000 1111

    7、 成员运算符

    in、 not in

    包括字符串,列表或元组等

    a = 10
    b = 20
    list = [1, 2, 3, 4, 5]
    
    print(a in list) # false

    8、 运算符优先级(略)

    如果需要某个运算符优先运算,则加个括号,使用a and b is c == d的是傻逼

    9、 解压缩

    hobby_list = [&#39;read&#39;,&#39;run&#39;,&#39;sleep&#39;,&#39;fishing&#39;,&#39;piao&#39;]
    
    # 如果取第2-3个爱好
    _,hobby2,hobby3,*_ = hobby_list
    
    print(hobby2, hobby3) #run sleep

    字典也是可以的,但是字典解压缩的是key。

    info = {&#39;name&#39;: &#39;nick&#39;, &#39;age&#39;: 18}
    x, y = info
    print(x, y) #name age

    八、流程控制

    1、 if判断

    Python 中用 elif 代替了 else if,所以if语句的关键字为:if – elif – else

    注意:

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

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

    • 3、在Python中没有switch – case语句。

    # if
    if 条件:
        代码块
    
    # if...else
    if 条件:
        代码块
    else:
        代码块
    
    # if...elif....elif...else
    if 条件:
        代码块
    elif 条件: 
        代码块
    elif 条件:
        代码块
    
    ...(可以写任意个elif)
    
    else:
        代码块

    2、 while循环

    同样需要注意冒号和缩进。另外,在 Python 中没有 do..while 循环。

    #while
    while 条件:
        代码块
    
    #while + break
    while 条件:
        代码块
        break  # 结束本层循环,跳出循环
    
    # while + continue
    while 条件:
        代码块
        if 条件:
            代码块
            cotinue  # 不执行下面代码,然后继续循环,即跳出本次循环
        代码块
    
    #while + else
    while 条件:
        代码块
    else:
        print(&#39;如果我没有被break,我就会被打印出来&#39;)

    实例:

    n = 1
    while n < 4:
        print(n)
        n += 1
    else:
        print("a")
    # 1,2,3,a

    使用循环嵌套来实现99乘法法则:

    # 外边一层循环控制行数
    # i是行数
    i = 1
    while i <= 9:
        # 里面一层循环控制每一行中的列数
        j = 1
        while j <= i:
            mut = j * i
            print("%d*%d=%d" % (j, i, mut), end="  ")
            j += 1
        print("")
        i += 1
    # 1*1=1  
    # 1*2=2  2*2=4  
    # 1*3=3  2*3=6  3*3=9  
    # 1*4=4  2*4=8  3*4=12  4*4=16  
    # 1*5=5  2*5=10  3*5=15  4*5=20  5*5=25  
    # 1*6=6  2*6=12  3*6=18  4*6=24  5*6=30  6*6=36  
    # 1*7=7  2*7=14  3*7=21  4*7=28  5*7=35  6*7=42  7*7=49  
    # 1*8=8  2*8=16  3*8=24  4*8=32  5*8=40  6*8=48  7*8=56  8*8=64  
    # 1*9=9  2*9=18  3*9=27  4*9=36  5*9=45  6*9=54  7*9=63  8*9=72  9*9=81

    3、for循环

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

    for循环的循环次数受限于容器类型的长度,而while循环的循环次数需要自己控制。

    #for
    for i in range/str/list/tuple/dict/set(可迭代对象):
        print(i)
    
    #for + break
    for i in range/str/list/tuple/dict/set(可迭代对象):
        print(i)
        break  # 结束本层循环
    
    # for + continue
    for i in range/str/list/tuple/dict/set(可迭代对象):
        print(i)
        if 条件:
            continue  # 结束本次循环,即不执行下面代码,继续循环
        代码块
    
    #for + else
    for i in range/str/list/tuple/dict/set(可迭代对象):
        print(i)
    else:
        print(&#39;如果我没有被break,我就会被打印出来&#39;)

    实例:

    # for循环按照索引取值
    
    name_list = [&#39;nick&#39;, &#39;jason&#39;, &#39;tank&#39;, &#39;sean&#39;]
    for i in range(len(name_list)):
        print(i, name_list[i])
        
    # 0 nick
    # 1 jason
    # 2 tank
    # 3 sean

    九、range()函数

    如果你需要遍历数字序列,可以使用内置range()函数。它会生成数列,例如:

    for i in range(5):
        print(i)
    # 0 1 2 3 4

    你也可以使用range指定区间的值:

    for i in range(5, 9):
        print(i)
    # 5 6 7 8

    也可以使range以指定数字开始并指定不同的增量(甚至可以是负数,有时这也叫做'步长'):

    for i in range(0, 10, 3):
        print(i)
    #   0 3 6 9

    负数:

    for i in range(-10, -100, -30):
        print(i)
    # -10 -40 -70

    您可以结合range()和len()函数以遍历一个序列的索引,如下所示:

    a = [&#39;Google&#39;, &#39;Baidu&#39;, &#39;Runoob&#39;, &#39;Taobao&#39;, &#39;QQ&#39;]
    for i in range(len(a)):
        print(i, a[i])
    # 0 Google 1 Baidu 2 Runoob 3 Taobao 4 QQ

    还可以使用range()函数来创建一个列表:

    a = list(range(5))
    print(a)
    # [0, 1, 2, 3, 4]

    实例:

    1-100 的和:

    print(sum(range(101)))

    十、pass 语句

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

    pass 不做任何事情,一般用做占位语句,如下实例

    while True:
        pass  # 等待键盘中断 (Ctrl+C)

    最小的类:

    class MyEmptyClass:
        pass

    위 내용은 Python의 변수, 연산자 및 흐름 제어의 예를 분석합니다.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

    성명:
    이 기사는 yisu.com에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제