• Python基础


    一。基础

    1.输出与输入:

    输出:print(变量/字符串)

    输入:input() 返回的是字符串

    price=input()
    print(price)

    2.python风格

    (1)注释 #

    (2)一般情况是一行结束该句结束,但是如果想要续行,在行的结尾加上

    (3)无需换行符也可以换行的符号:'''

    (4)一行可以有多条语句,

    3.标识符

    基本和java类似,同时也区分大小写

     关键字:

    4.表达式

    (1)根据值确定类型

    (2)以”引用“的方式实现赋值

    (3)增量操作符:+=  -=  *=  /=  %=  ** =  <<=  >>=  &=  ^=  |=

    5.python数据类型

    (1)(长)整型:整型和长整型并不严格区分,整型值后加“ L”即为长整型

    (2)布尔型:仅有2个值:True、 False,本质上是用整型的1、 0分别存储的

    (3)浮点数:即数学中的实数,可以类似科学计数法表示

    (4)复数型:实数+虚数 就是复数,虚数部分必须有j

      复数可以分离实数部分和虚数部分:复数.real  复数.imag

      复数的共轭:复数.conjugate()

    (5)字符串:单引号、双引号、三引号内的都是字符串,不可变类型

    (6)列表:强大的类型,用方括号 [] 界别,可变类型

    (7)元组:与列表相似,用小括号 () 界别,不可变类型

    (8)映射类型 字典:用大括号 {} 界别,类似于哈希表的键值对

    6 运算符

    乘方**、正负号+ -、乘除* /、整除//、 取余%、加减+ -

    整型除法返回浮点数,要得到整型结果使用//

    7.比较运算

    数值的比较:按值比大小

    字符串的比较:按ASCII码值大小

    不等于只用“ !=”表示,不支持“ <>”

    8.逻辑运算:

    逻辑运算符优先级:not、 and、 or

    9.字符运算符:

    原始字符串操作符 (r / R):– 用于一些不希望转义字符起作用的地方
    Unicode 字符串操作符( u / U ):– 转换成Unicode字符串

    f = open(r'c:python	est.py','w')    #不会报错
    f = open('c:python	est.py','w')     #会报错

    10 内建函数

    内建函数不需要import就可以使用,而非内建函数则需要import

    from math import *
    print(floor(-35.4))

    Python通常用“ import 模块”的方式将现成模块中的函数、类等重用到其他代码块中

    import math
    print(math.pi)

    导入多个模块

    import ModuleName1, ModuleName2, …

    模块里导入指定的模块属性,也就是把指定名称导入到当前作用域

    from Module1 import ModuleElement

    11 包

    一个有层次的文件目录结构,定义了一个由模块和子包组成的 Python 应用程序执行环境

    复制代码
    #方式一
    import AAA.CCC.c1 AAA.CCC.c1.func1(123)
    #方式二
    from AAA.CCC.c1 import func1 func1(123)
    复制代码

    12库

    库是一组具有相关功能的模块的集合

    二。面面观

    (1)range用来生成一个真是的列表

    range (start, end, step=1)
    range (start, end)
    range (end)

    (2)for循环

    ①iterator_object 可以是String List Tuple Dictionary File

    for i in iterator_object:
      print(i)

    ②法二

    for count in range(0,5):
       print(count)

    (3)自定义函数的创建

    函数名加上函数运算符, 一对小括号
    – 括号之间是所有可选的参数
    – 即使没有参数, 小括号也不能省略

    def addMe2Me(x):
        return (x+x)

    函数的参数可以有一个默认值, 如果提供有默认值,在函数定义中,默认参数以赋值语句的形式提供,并且默认参数的值可以改变,默认参数一般都放在参数列表的最后,

    函数可以像参数一样传递给另外一个函数

    复制代码
    def f(y,x = True):
        if x:
            print 'x is a correct word'
        print 'OK'   
    >>> f (68)
    68 x is a correct word
    OK
    >>> f(68,False)
    OK
    >>> f(x=True,y=16) #允许改变参数列表中的参数顺序
    复制代码

    匿名函数

    >>> r = lambda x : x + x
    >>> r(5)
    10

    (4)全局变量和局部变量

    全局变量是声明在函数外边的变量,局部变量是声明在函数体内部的变量。

    全局变量和局部变量可以使用相同的名字

    在函数体内部可以使用global语句来强调全局变量

    三。本地文件获取

    (1)文件操作

    对文件的操作也就那么几种,打开文件,对文件进行读或者写,然后关闭文件

    首先打开文件

    file_obj = open(filename, mode='r', buffering=-1) 
    #mode为可选参数,默认值为r
    #buffering也为可选参数,默认值为-1(0代表不缓冲,1或大于1的值表示缓冲一行或指定缓冲区大小)

     

    – f.read(), f.write(), f.readline(), f.readlines(), f.writelines()
    – f.close()
    – f.seek()

    file_obj.read(size)− 从文件中至多读出size字节数据,返回一个字符串
    file_obj.read()− 读文件直到文件结束,返回一个字符串

    demo:把一个文件的内容读到另一个文件

    复制代码
    f1= open(r'companies.txt')
    cNames = f1.readlines()
    for i in range(0,len(cNames)):
        cNames[i] = str(i+1) + ' ' + cNames[i]
    f1.close()
    f2 = open(r'scompanies.txt','w')
    f2.writelines(cNames)
    f2.close()
    复制代码

    file_obj.seek(offset , whence=0)
    − 在文件中移动文件指针,从whence(0表示文件头部,1表示当前位置,2表示文件尾部)偏移offset个字节
    - whence参数可选,默认值为0

     (2)获取网络数据

    复制代码
    import urllib.request
    import re  
    dBytes = urllib.request.urlopen('https://hk.finance.yahoo.com/q/cp?s=%5EDJI').read()
    dStr = dBytes.decode() #在python3中urllib.read()返回bytes对象而非str,语句功能是将dStr转换成str
    m = re.findall('<tr><td class="yfnc_tabledata1"><b><a href=".*?">(.*?)</a></b></td><td class="yfnc_tabledata1">(.*?)</td>.*?<b>(.*?)</b>.*?</tr>', dStr)
    if m:
        print(m)
        print ('
    ')
        print (len(m))
    else:
        print ('not match')

    复制代码
    #re系列:
    #re.match 尝试从字符串的开始匹配一个模式,如果匹配成功,则返回一个Match,否则返回一个None;
    #re.search函数会在字符串内查找模式匹配,只到找到第一个匹配然后返回,如果字符串没有匹配,则返回None。
    #re.sub用于替换字符串中的匹配项
    #re.split来分割字符串,如:re.split(r's+', text);将字符串按空格分割成一个单词列表
    #re.findall可以获取字符串中所有匹配的字符串。如:re.findall(r'w*oow*', text);获取字符串中,包含'oo'的所有单词。
    #re.compile可以把正则表达式编译成一个正则表达式对象。可以把那些经常使用的正则表达式编译成正则表达式对象,这样可以提高一定的效率。
    复制代码
    import re  
      
    text = "JGood is a handsome boy, he is cool, clever, and so on..."  
    regex = re.compile(r'w*oow*')  
    print regex.findall(text)   #查找所有包含'oo'的单词  
    print regex.sub(lambda m: '[' + m.group(0) + ']', text) #将字符串中含有'oo'的单词用[]括起来。  
    import re text = "JGood is a handsome boy, he is cool, clever, and so on..." 
    regex = re.compile(r'w*oow*') print regex.findall(text) #查找所有包含'oo'的单词 print regex.sub(lambda m: '[' + m.group(0) + ']', text) #将字符串中含有'oo'的单词用[]括起来。
    复制代码

    (3)序列

    序列包括字符串(Strings),元组(Lists),列表(Tuples)

    复制代码
    str = 'Hello, World!'
    aList = [2, 3, 5, 7, 11]
    aTuple = ('Sunday', 'happy' )
    pList = [('AXP', 'American Express Company', '86.40'),('BA', 'The Boeing Company', '122.64'),('CAT', 'Caterpillar Inc.', '99.44'),
          ('CSCO', 'Cisco Systems, Inc.', '23.78')('CVX', 'Chevron Corporation', '115.91')]
    复制代码

    序列的访问模式

      元素从0开始通过下标偏移量访问

      一次可访问一个或多个元素

    序列相关操作

      标准类型运算符:值比较(<,>,<=,>=,==,!=),对象身份比较(is,is not),布尔运算(not,and,or)

    复制代码
    >>> 'apple' < 'banana'
    True
    >>> [1,3,5] != [2,4,6]
    True
    >>> aTuple = ('BA', 'The Boeing Company', '122.64')
    >>> bTuple = aTuple
    >>> bTuple is not aTuple
    False
    >>> ('86.40' < '122.64') and ('apple' > 'banana')
    False
    复制代码

      序列类型运算符:获取,重复,连接,判断

     x in s,x not in s,s + t,s * n, n * s,s[i],s[i:j],s[i:j:k]

    复制代码
    >>> week = ['Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday', 'Sunday']
    >>> print week[1], week[-2], '
    ', week[1:4], '
    ', week[:6], '
    ', week[::-1]
    Tuesday Saturday
    ['Tuesday', 'Wednesday', 'Thursday']
    ['Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday']
    ['Sunday', 'Saturday', 'Friday', 'Thursday', 'Wednesday', 'Tuesday', 'Monday']
    >>> 'apple' * 3
    'appleappleapple'
    >>> 'pine' + 'apple'
    'pineapple'
    >>> 'BA' in ('BA', 'The Boeing Company', '122.64')
    True
    复制代码

      内建函数:序列类型转换工厂函数(list() str() basestring() tuple()),序列类型可用内建函数(enumerate() reversed() len() sorted() max() sum() min() zip())

    复制代码
    >>> list('Hello, World!')
    ['H', 'e', 'l', 'l', 'o', ',', ' ', 'W', 'o', 'r', 'l', 'd', '!']
    >>> tuple("Hello, World!")
    ('H', 'e', 'l', 'l', 'o', ',', ' ', 'W', 'o', 'r', 'l', 'd', '!')
    >>> aStr = 'Hello, World!'
    >>> len(aStr)
    13
    >>> sorted(aStr)
    [' ', '!', ',', 'H', 'W', 'd', 'e', 'l', 'l', 'l', 'o', 'o', 'r']
    复制代码

     (4)字符串

    首先是字符串的遍历

    复制代码
    # Filename: puncount.py
    aStr = "Hello, World!"
    bStr = aStr[:7] + "Python!"
    count = 0
    for ch in bStr[:]:
        if ch in ',.!?':
            count += 1
    print('There are %d punctuation marks. ' % (count))   
    复制代码

               

    判断一个字符串是不是回文

    sStr = "acdhdca"
    if (sStr == ''.join(reversed(sStr))):
        print('Yes')
    else:
        print ('No')

    字符串的方法

    (5)列表

    列表可以包含可扩展的容器的对象

    复制代码
    >>> aList = list('Hello.')
    >>> aList
    ['H', 'e', 'l', 'l', 'o', '.']
    >>> aList = list('hello.')
    >>> aList
    ['h', 'e', 'l', 'l', 'o', '.']
    >>> aList[0] = 'H'
    >>> aList
    ['H', 'e', 'l', 'l', 'o', '.']
    复制代码

    可以包含不同类型的对象

    >>> bList = [1,2,'a',3.5]

    列表中的函数

    复制代码
    #demo1
    jScores = [9, 9, 8.5, 10, 7, 8, 8, 9, 8, 10] aScore = 9 jScores.sort() //列表排序 jScores.pop()  //去掉列表的最高分和最低分 jScores.pop(0)  //去掉列表的最低分 jScores.append(aScore)  //列表后边追加元素   aveScore = sum(jScores)/len(jScores) //求列表中元素的平均值 print aveScore

    #demo2
    week = ['Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday']
    weekend = ['Saturday', 'Sunday']
    week.extend(weekend)
    for i,j in enumerate(week):
      print i+1, j

    Output:
    1 Monday
    2 Tuesday
    3 Wednesday
    4 Thursday
    5 Friday
    6 Saturday
    7 Sunday
    复制代码

    列表中的方法:

    append() count() extend() index() insert() pop() remove() reverse() sort()

    列表解析,动态创建列表

    复制代码
    >>> [x for x in range(10)]
    [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
    >>> [x ** 2 for x in range(10)]
    [0, 1, 4, 9, 16, 25, 36, 49, 64, 81]
    >>> [x ** 2 for x in range(10) if x ** 2 < 50]
    [0, 1, 4, 9, 16, 25, 36, 49]
    >>> [(x+1,y+1) for x in range(2) for y in range(2)]
    [(1, 1), (1, 2), (2, 1), (2, 2)]
    复制代码

    (6)元组

    列表元素可以改变,元组元素不可以改变

    复制代码
    >>> aList = ['AXP', 'BA', 'CAT']
    >>> aTuple = ('AXP', 'BA', 'CAT')
    >>> aList[1] = 'Alibaba'
    >>> print aList
    >>> aTuple1[1]= 'Alibaba'
    >>> print aTuple
    
    
    ['AXP', 'Alibaba', 'CAT']
    aTuple[1]='Alibaba'
    TypeError: 'tuple' object does not support item assignment
    复制代码

    元组用在什么地方:

    在映射类型中当作键值使用,函数的特殊类型参数,作为很多内建函数的返回值

    元组作为函数的形式参数:

    复制代码
    >>> def func(args1, *argst):
    print args1
    print argst
    >>> func('Hello,','Wangdachui','Niuyun','Linling')
    Hello, ('Wangdachui', 'Niuyun', 'Linling')
    复制代码

    元组作为函数的常见返回类型:

  • 相关阅读:
    开博的第一天!
    使用EditText的addTextChangedListener(new TextWatcher())方法
    Activity的四种launchMode
    MySQL数据库
    BaseAdapter中重写getview的心得以及发现convertView回收的机制
    与数据库打交道的Adapter----SimpleCursorAdapter
    [原创] Fragment的添加、移除问题
    Datum Form Goole Android
    app包中的fragment和v4包中的fragment的使用的区别
    LayoutInflater类详解
  • 原文地址:https://www.cnblogs.com/cmybky/p/11772080.html
Copyright © 2020-2023  润新知