美文网首页
Python3文档

Python3文档

作者: 卓昂芭比 | 来源:发表于2020-07-13 18:08 被阅读0次

    命令模式C:\>(需要进入相对路径才不会报错)

    交互模式>>>

    Python的文件后缀名必须以(file.py)结尾

      //直接运行.py 文件,在Windows上是不行的,但是,在Mac和Linux上是可以的,方法是在.py文件的第一行加上一个特殊的注释:                                                                                          #!/usr/bin/env python3                                                                                                    print('hello, world')

    print()会依次打印每个字符串,遇到逗号“,”会输出一个空格

    print('100+200=',100+200)需要,隔开

    语句块一般为4个空格缩进

    \\表示的字符就是\

    print('I\'m \"OK\"!')#后面有特殊字符,需要转义符\

    I'm "OK"!

     ' 和"  输入字符串

    '''多行'''  r对'''  '''没有干扰

    ord()函数获取字符的整数表示,chr()函数把编码转换为对应的字符

    str='ABC' #字符串

    x =b'ABC' #bytes

    如果我们从网络或磁盘上读取了字节流,那么读到的数据就是bytes。要把bytes变为str,就需要用decode()方法:

    len()#字符数

    如果换成bytes,len()函数就计算字节数:>>> len('中文'.encode('utf-8'))

    6中文字符 -3个   英文字符-1个字节

    Python文件开头写,注明编码格式utf-8

    #!/usr/bin/env python3

    这行注释是为了告诉Linux/OS X系统,这是一个Python可执行程序,Windows系统会忽略这个注释;

    # -*- coding: utf-8 -*-

    第二行注释是为了告诉Python解释器,按照UTF-8编码读取源代码,否则,你在源代码中写的中文输出可能会有乱码。

    >>> 'growth rate: %d %%' %7

    growth rate: 7 %'

    'Hello, %s成绩提升了%.1f %%' %('小明', 13/75)

    list:有序的集合

    list是一种有序的集合,可以随时添加和删除其中的元素。

    list=['li','liu','wang']

    len(list)

    list[0];list[-1]   indexError索引越界

    有序添加list.append("san")集合的末尾

    list.insert(2,"jack")#插入到指定位置

    list.pop()删除末尾元素

    list.pop(i)删除指定元素

    list[2]="javah"#替换指定值

    list=["xiao",123,["小明",12],true]

    空的list,长度为0;list[]

    tuple: 有序的元组

    但是tuple一旦初始化就不能修改,没有添加,替换,删除元素操作,它更安全,

    空的tuple()

    一个tuple定义 tuple(1,)消除歧义;

    tuple指向不变,指向一个list就不能改编成其他对象,但是指向的list本身是可以变得

    p=("A","B",["x","y"],"C")

    p[2][0]="M"

    p[2][1]="D"

    p=("A","B",["M","D"],"C")

    L = [

    ['Apple','Google','Microsoft'] ,

    ['Java','Python','Ruby','PHP'] ,

    ['Adam','Bart','Lisa']

    ]

    # 打印Apple:

    print(L[0][0])

    # 打印Python:

    print(L[1][1])

    # 打印Lisa:

    print(L[2][2])

    if条件判断语句:elif是else if的缩写,完全可以有多个elif,所以if语句的完整形式就是:

    if<条件判断1>:

          <执行1>

    elif<条件判断2>:

          <执行2>

    elif<条件判断3>:

          <执行3>

    else:

          <执行4>

    s=input('birth:')

    birth:1989

    >>> birth=int(s)

    >>> if birth<2000:

    ...    print('00前')

    ... else :

    ...    print('00后')

    空格特别重要,语句块对整体规则

    if语句执行有个特点,它是从上往下判断,如果在某个判断上是True,把该判断对应的语句执行后,就忽略掉剩下的elif和else

    简写

    if x:

        print('True')

    只要x是非零数值、非空字符串、非空list等,就判断为True,否则为False。

    invalid syntax#语法错误

    unexpected indent

    1) 缩进应该是四个空格。if请顶格写,if下面的两行,行首四个空格。

    2) age输入是字符串类型,需要转成整数才能比较大小

    两种循环:

    for x in range(i):

    range(i)函数:从0到i的所有数

    break:

    n =1

    while n <=100:

        if n >10:    # 当n = 11时,条件满足,执行break语句

              break    # break语句会结束当前循环

         print(n) 

          n = n +1

     print('END')

    体重肥胖问题代码:

    bmi = weight/(height**2)

    if bmi<18.5:

        print("过轻: %.1f" %bmi)

    elif 18.5<=bmi<25:

        print("正常: %.1f" %bmi)

    elif 25<=bmi<28:

        print("过重: %.1f" %bmi)

    elif 28<=bmi<32:

        print("肥胖: %.1f" %bmi)

    else :

        print("严重肥胖%.1f"%bmi)

    coutinue

    n =0

    while n <10: 

         n = n +1

        if n %2==0:    # 如果n是偶数,执行continue语句

            continue         # continue语句会直接继续下一轮循环,后续的print()语句不会执行

        print(n)

    dict简称字典 相当于 Map,是一个键值对

    如果key不存在,dict就会报错:通过in (key in d)

    或者get()判断 (d.get(key))可以返回None,交互界面不显示或者   d.get(key,-1)不存在时反回-1。

    pop(key)key和value同时删除

    和list比较,dict有以下几个特点:

    查找和插入的速度极快,不会随着key的增加而变慢;

    需要占用大量的内存,内存浪费多。

    而list相反:

    查找和插入的时间随着元素的增加而增加;

    占用空间小,浪费内存很少。

    所以,dict是用空间来换取时间的一种方法。

    dict的key必须是不可变对象

    Set:无序且不重复的;

    s = set([1,2,3])#里面是一个list集合[1,2,3];但输出为{1,2,3}表示有这几个元素

    add(key)添加key

    remove(key)删除key

    a.sort()#原地排序

    >>> a ='abc'

    >>> b = a.replace('a','A')

    >>> b

    'Abc'

    >>> a

    'abc'

    a是变量,而'abc'才是字符串对象!有些时候,我们经常说,对象a的内容是'abc',但其实是指,a本身是一个变量,它指向的对象的内容才是'abc':

    当我们调用a.replace('a', 'A')时,实际上调用方法replace是作用在字符串对象'abc'上的,而这个方法虽然名字叫replace,但却没有改变字符串'abc'的内容。相反,replace方法创建了一个新字符串'Abc'并返回,如果我们用变量b指向该新字符串,就容易理解了,变量a仍指向原有的字符串'abc',但变量b却指向新字符串'Abc'了:

    │ a ───────────────>│ 'abc' │

    │ b │─────────────────>│ 'Abc' │

    所以,对于不变对象来说,调用对象自身的任意方法,也不会改变该对象自身的内容。相反,这些方法会创建新的对象并返回,这样,就保证了不可变对象本身永远是不可变的。

    调用函数

    定义函数 def

    def my-hanshu(x):

        if x>0 :

            return x

        else x<0:

            return -x

    defnop():    #空函数

    pass

    参数个数不对,并抛出TypeError错误;

    参数类型不对,python无法检查

    数据类型检查,用isinstance()实现

    def my_bat(x):

    if not isinstance(x(int,float)):

    raise TypeError("bad  operand type")   #抛出异常

    if x>=0:

        return x

    else :

        return -x

    调用my_bat('A')

    打印Bad operand type

    >>> x, y = move(100,100,60, math.pi /6)                                                                             >>> print(x, y)151.9615242270663270.0

    >>> r = move(100,100,60, math.pi /6)                                                                                  >>> print(r)(151.96152422706632,70.0                                                                           python 返回多值就是返回一个(r)tuple,将变量按位置赋给相对应的值(x=r[1];y=r[2]);

    import math    #求方程的解

    def my_jie(a,b,c):

        m=b*b-4*a*c

        if m>=0:

            x=(-b+math.sqrt(m))/(2*a)

            y=(-b-math.sqrt(m))/(2*a)

    return x,y

        else :

            print("无解")

    位置参数 power(x)

    默认参数power(x,n=2)  #而对于n > 2的其他情况,就必须明确地传入n,比如power(5, 3)。

     定义默认参数要牢记一点:默认参数必须指向不变对象!(str、None)

    def add_end(L=None):

    if L is None: 

     L = [] 

     L.append('END')

    return L

    可变参数:可变参数允许你传入0个或任意个参数,这些可变参数在函数调用时自动组装为一个tuple

    def  kebian(*numbers): #在参数前加*,在函数内部,接收到的是一个Tuple

        sum=0

        for n in numbers:

             sum=sum+n*n

        return sum

    kebian(1,2,3)

    #如果已经有一个Tuple或list,可以用’

    num=[1,2,3]

    kebian(*num)

    关键字参数:允许你传入0个或任意个含参数名的参数,这些关键字参数在函数内部自动组装为一个dict

    def person(name,age,**kw):

        print(name,age,kw)

    >>>dirc={'city':'beijing','gender':'女'}

    person(name,age,**dirc)

    #**extra表示把extra这个dict的所有key-value用关键字参数传入到函数的**kw参数,kw将获得一个dict,注意kw获得的dict是extra的一份拷贝,对kw的改动不会影响到函数外的extra。

    命名关键字参数:

    定义:defperson(name, age, *, city, job):

          print(name, age, city, job)

    默认值:

    def person(name,age,*,city='beijing',job):

          print(name,age,city,job)

    调用及打印:

    >>> person('Jack',24, job='Engineer')

    Jack 24 Beijing  Engineer

    参数组合:必选参数、默认参数、可变参数、命名关键字参数和关键字参数。

    递归

    相关文章

      网友评论

          本文标题:Python3文档

          本文链接:https://www.haomeiwen.com/subject/ocfacktx.html