金沙国际官网_金沙国际平台登录

因为这个金沙国际官网_金沙国际平台登录网站与很多的大型澳门赌场都有合作,金沙国际官网_金沙国际平台登录尽职尽责,高效执行,保持好奇心,不断学习,追求卓越,点击进入金沙国际官网_金沙国际平台登录马上体验吧,所以现在也正式地开始了营业。

您的位置:金沙国际官网 > 编程 > 学习之路

学习之路

发布时间:2019-11-03 17:53编辑:编程浏览(92)

    字符串常用操作

    join()  将序列中的元素以指定的字符连接生成一个新的字符串

    >>> s = ["1", "2", "3", "4"]
    >>> ".".join(s)
    1.2.3.4
    

    strip()  移除字符串头尾指定的字符(默认为空格)

    >>> s = " Hello World "
    >>> s.strip()
    Hello World
    >>> s = "*Hello World&"
    >>> s.strip("*")
    Hello World&
    

    lstrip()  截掉字符串左边的空格或指定字符

    >>> s = "*Hello World*"
    >>> s.lstrip("*")
    Hello World*
    

    index**(str, beg=0**, end**=len(string))**  检测字符串中是否包含子字符串 str,不存在则报错(beg:开始位置,默认为0;end:结束位置,默认为字符串字最后一个位置)

    >>> s = "Hello World"
    >>> s.index("e")
    1
    >>> s.index("z")
    ValueError:substring not found
    

    rindex()  返回字符串最后一次出现的位置,如果没有则报错

    >>> s = "Hello World"
    >>> s.rindex("o")
    7
    

    find()  检测字符串中是否包含子字符串 str,不存在返回-1

    >>> s = "Hello World"
    >>> s.find("e")
    1
    >>> s.find("z")
    -1
    

    rfind()  返回字符串最后一次出现的位置,如果没有匹配项则返回-1

    split**(str="", num=string.count(str**))  通过指定分隔符对字符串进行切片(str:指定字符串,默认为所有空字符;num:分隔次数),返回列表

    >>> s = "www.luffycity.com"
    >>> s.split(".")
    ['www', 'luffycity', 'com']
    

    splitlines()  按照行('r', 'rn', n')分隔,返回一个包含各行作为元素的列表

    >>> s = """luffycity
    namei"""
    >>> s.splitlines()
    ['luffycity', 'namei']
    

    count**(sub,start**= 0**,end=len(string))**  统计字符串里某个字符出现的次数(sub:统计的字符串)

    >>> s = "Hello World"
    >>> s.count("o", 2, 9)
    2
    

    replace**(old, new**[, max**])**  将字符串中的子字符串替换(old:旧字符串;new:新字符串;max:替换最大次数)

    >>> s = "Hellz Wzrld"
    >>> s.replace("z", "o")
    Hello World
    

    endswith()  是否以指定后缀结尾

    >>> s = "Hello World"
    >>> s.endswith("d")
    True
    >>> s.endswith("l")
    False
    

    startswith()  是否以指定字符串开头

    >>> s = "Hello World"
    >>> s.startswith("H")
    True
    >>> s.startswith("e")
    False
    

    isdigit()  是否为数字

    >>> s = "12345"
    >>> s.isdigit()
    True
    >>> s = "asdfg"
    >>> s.isdigit()
    False
    

    isalnum()  是否由字母和数字组成

    isalpha()  是否只由字母组成

    isdecimal()  是否只包含十进制字符

    isidentifier()  是否包含该语言的保留字

    islower()  是否由小写字母组成

    isprintable()  是否可打印

    isspace()  是否只由空白字符组成

    istitle()  单词拼写首字母是否为大写,且其他字母为小写

    title()  方法返回"标题化"的字符串,所有单词都是以大写开始,其余字母均为小写

    >>> s = "hello world"
    >>> s.title()
    Hello World
    

    isupper()  所有的字母是否都为大写

    upper()  将小写字母转换成大写字母

    >>> s = "Hello World"
    >>> s.upper()
    HELLO WORLD
    

    capitalize()  将第一个字母大写,其他字母小写

    1 >>> s='hello world'
    2 >>> s.capitalize()
    3  'Hello world'
    

    casefold()  将大写字母转换成小写字母

    >>> s='Hello World'
    >>> s.casefold()
     'hello world'
    

    lower()  字符串中所有大写字符为小写,只适用于‘A~Z’

    swapcase()  大小写字母进行转换

    >>> s = "Hello World"
    >>> s.swapcase()
    hELLO wORLD
    

    center(width[, fillchar]) 如果 width 小于字符串宽度直接返回字符串,否则使用 fillchar 去填充(width:指定宽度;fillchar:填充字符)

    >>> s = "Hello World"
    >>> s.center(25, "*")
    *******Hello World*******       
    

    ljust**(width[, fillchar])**  返回一个原字符串左对齐,并使用空格填充至指定长度的新字符串。如果指定的长度小于原字符串的长度则返回原字符串(width:指定宽度;fillchar:填充字符)

    >>> s = "Hello World"
    >>> s.ljust(25, "*")
    Hello World**************
    

    rjust**(width[, fillchar]) ** 返回一个原字符串右对齐,并使用空格填充至长度 width 的新字符串。如果指定的长度小于字符串的长度则返回原字符串

    >>> s = "Hello World"
    >>> s.ljust(25, "*")
    **************Hello World
    

    edcode()  以指定的编码格式编码字符串

    >>> s = "Hello World"
    >>> s.encode(encoding="utf-8")
    b'Hello World
    

    expandtabs()  把字符串中的 tab 符号('t')转为空格,默认为8

    >>> s = "t Hello World t"
    >>> s.expandtabs(16)
                     Hello World    
    

    partition()  返回一个3元的元组,第一个为分隔符左边的子串,第二个为分隔符本身,第三个为分隔符右边的子串

    >>> s = "Hello.World"
    >>> s.partition(".")
    ('Hello', '.', 'World')
    

    zfill()  返回指定长度的字符串,原字符串右对齐,前面填充0

    >>> s = "Hello World"
    >>> s.zfill(25)
    00000000000000Hello World
    

              4、HttpRequest.GET

    1.2 基本操作

     1 set_demo = set([1,2,3,4,5])
     2 set_demo.add(66) #添加操作,添加一项
     3 set_demo.update([11,22]) #添加操作,添加多项
     4 
     5 set_demo.remove(66) #删除操作,删除指定一项,若没有则报错
     6 len(set_demo) # 集合长度
     7 
     8 set_demo.pop() #删除操作,随机删除一个,并且返回该值
     9 set_demo.discard(666) #删除操作,删除指定一个,若没有则什么都不做
    10 print(set_demo)
    

    字符串的创建

    s = "Hello World"
    

         if判断语句

    1.1.2 取交集 intersection()方法

    可以获得两个集合的交集部分,例如:

    1 set_demo_1 = set([2,3,4,5,4])
    2 set_demo_2 = set([2,22,33,44,11])
    3 print(set_demo_1.intersection(set_demo_2))
    

              {%if name="li"%}

    1.1.6 对称差集

    集合A与集合B中所有不属于A∩B的元素的集合,例如:

    1 set_demo_1 = set([2,3,4,5,4])
    2 set_demo_2 = set([2,22,33,44,11])
    3 print(set_demo_1.symmetric_difference(set_demo_2)) #返回去掉两者交集的部分
    
    一对多的查询:
    
                                    实例1:查询主键为4的文章的分类名称(正向查询,按字段)
    
                                           article_obj=models.Article.objects.get(nid=4)
                                           print(article_obj.category.title)
    
                                           SELECT * FROM "blog_article" WHERE "blog_article"."nid" = 4;  // category_id=2
                                           SELECT * FROM "blog_category" WHERE "blog_category"."nid" = 2; 
    
                                    实例2:查询用户yuan发表过的所有的文章(反向查询,表名_set)
                                           yuan=models.UserInfo.objects.get(username="yuan")
                                           book_list=yuan.article_set.all()  # QuerySet 
    
    
    
                                多对多的查询:
    
                                     实例3:查询主键为4的文章的标签名称(正向查询,按字段)     
                                         article_obj=models.Article.objects.get(nid=4)                                
                                         tag_list=article_obj.tags.all()   #  是通过Article2Tag找到tag表中关联的tag记录
                                         for i in tag_list:
                                              print(i.title)
    
                                     实例4:查询web开发的这个标签对应的所有的文章(反向查询,按表名_set)
                                        tag_obj=models.Tag.objects.get(title="web开发")
                                        article_list=tag_obj.article_set.all()
                                        for i in article_list:
                                            print(i.title)                            
    
                                     实例5:查询web开发的这个标签对应的所有的文章对应的作者名字
                                          tag_obj=models.Tag.objects.get(title="web开发")
                                          article_list=tag_obj.article_set.all()    
                                          for article in article_list:
                                               print(article.user.username)
    基于QuerySet跨表查询 ( 正向查询,按字段 ;反向查询,按表名)
    
    
    一对多的查询:
    
     实例1:查询主键为4的文章的分类名称
    
    models.Article.objects.filter(nid=4).values("category__title") 
     models.Category.objects.filter(article__nid=4).values("title")
    
    实例2:查询用户yuan发表过的所有的文章
    models.UserInfo.objects.filter(username="yuan").values(article__title)
     models.Article.objects.filter(user__username="yuan").values("title")
    
    
    多对多的查询:
    
     实例3:查询主键为4的文章的标签名称(正向查询,按字段) 
    models.Article.objects.filter(nid=4).values("tags__title")
     models.Tag.objects.filter(article__nid=4).values("title") 
    
    实例4:查询web开发的这个标签对应的所有的文章(反向查询,按表名_set)
    models.Article.objects.filter(tags__title="web开发").values("title")
     models.Tag.objects.filter(title="web开发").values("article__title") 
    
    实例5:查询web开发的这个标签对应的所有的文章对应的作者名字
    models.Tag.objects.filter(title="web开发").values("article__user__username")
     models.UserInfo.objects.filter(article__tags__title="web开发").values("username")
    

    2.6 其他操作

    fileno()返回一个整形的文件描述符 encoding()返回打开文件的编码方式 isatty()如果文件连接到一个终端设备返回 True,否则返回 False readable()如果文件可读,则返回True,否则返回 False writeable()如果文件可写,则返回True,否则返回 False

                                                    {%endblock%}**

    三、JSON 序列化与反序列化

    序列化可以简单的理解为将对象存储到文件中,反序列化可以简单理解为将文件数据读取用对象来存储 序列化过程

    1 import json #导入json包
    2 
    3 # 序列化过程
    4 # 字典类型转换为 JSON 对象
    5 info = { "name":"CodeHu",
    6          "age": 25}
    7 with open("json.text","w") as f:
    8     f.write( json.dumps(info) )
    9     #json.dump(info,f) #或者使用dump
    

    反序列过程

    1 import json
    2 # 反序列化
    3 with open("json.text","r") as f:
    4     print(json.loads(f.read())["age"])
    5     #print(json.load(f)["age"])#可以采用load方法读取
    

              {%empty%}

    Python 学习之路(三)

    以下所用的是Python 3.6

       3、模板语法

    4.4 requirements.txt

    这个文件存在的目的是: 方便开发者维护软件的包依赖。将开发过程中新增的包添加进这个列表中,避免在setup.py安装依赖时漏掉软件包。 方便读者明确项目使用了哪些Python包。 这个文件的格式是每一行包含一个包依赖的说明,通常是flask>=0.10这种格式,要求是这个格式能被pip识别,这样就可以简单的通过 pip install -r requirements.txt来把所有Python包依赖都装好。

              {%endfor%}       

    2.7 with操作

    with可以自动帮忙关闭文件,释放资源

    1 with open("file_demo",mode="r",encoding="utf-8" ) as f:
    2     for line in f:
    3         print(line.strip()) #strip用来去除换行
    

                  -------深度查询  句点符.     如:{{d.info.0.name}}

    2.1 文件打开模式

    模式 含义
    r 打开只读文件,该文件必须存在。
    r+ 打开可读写的文件,该文件必须存在。
    w 打开只写文件,若文件存在则文件长度清为0,即该文件内容会消失。若文件不存在则建立该文件。
    w+ 打开可读写文件,若文件存在则文件长度清为零,即该文件内容会消失。若文件不存在则建立该文件。
    a 以附加的方式打开只写文件。若文件不存在,则会建立该文件,如果文件存在,写入的数据会被加到文件尾,即文件原先的内容会被保留。
    a+ 以附加方式打开可读写的文件。若文件不存在,则会建立该文件,如果文件存在,写入的数据会被加到文件尾后,即文件原先的内容会被保留。

    注:上述的形态字符串都可以再加一个b字符,如rb、w+b或ab+等组合,加入b 字符用来告诉函数库打开的文件为二进制文件,而非纯文字文件。不过在POSIX系统,包含Linux都会忽略该字符。

                 {{i}}

    4.1 一般目录结构

    假设你的项目名为foo, 最方便快捷目录结构:

    Foo/
    |-- bin/
    |   |-- foo
    |
    |-- foo/
    |   |-- tests/
    |   |   |-- __init__.py
    |   |   |-- test_main.py
    |   |
    |   |-- __init__.py
    |   |-- main.py
    |
    |-- docs/
    |   |-- conf.py
    |   |-- abc.rst
    |
    |-- setup.py
    |-- requirements.txt
    |-- README
    

    简要解释一下:

    • bin/: 存放项目的一些可执行文件,当然你可以起名script/之类的也行。
    • foo/: 存放项目的所有源代码。(1) 源代码中的所有模块、包都应该放在此目录。不要置于顶层目录。(2) 其子目录tests/存放单元测试代码; (3)程序的入口最好命名为 main.py。
    • docs/: 存放一些文档。
    • setup.py: 安装、部署、打包的脚本。
    • requirements.txt: 存放软件依赖的外部Python包列表。
    • README: 项目说明文件。

             return   rredirect("/index/")      重定向

    2.2 文件的读写操作

    读文件操作,read(size)方法,参数可以输入读取长度,不填默认读取全部

    1 f = open("file_demo",mode="r",encoding='utf-8') #创建文件句柄引用
    2 print(f.read())
    3 f.close()
    

    写文件操作

    1 f = open("file_demo",mode="w",encoding='utf-8') #创建文件句柄引用
    2 f.write("测试用例n")
    3 f.close()
    

    读一行、多行

    1 f = open("file_demo",mode="r",encoding='utf-8') #创建文件句柄引用
    2 print(f.readline()) #单行读取
    3 f.close()
    4 
    5 f = open("file_demo",mode="r",encoding='utf-8') #创建文件句柄引用
    6 for line in f.readlines(): #读取全部文件的全部行,存放着文件中,如果文件较大则速度会非常慢,一般不推荐readlines
    7     print(line.strip())
    8 f.close()
    

                  def foo (request): 

    2.5 文件的truncate()方法

    truncate( [ size ]):用于从文件的首行首字符开始截断,截断文件为 size 个字符,无 size 表示从当前位置截断;截断之后,后面的所有字符被删除。

       响应对象:

    2.3 文件的光标(位置操作)

    文件位置操作有以下几个方法:tell,seek tell()可以返回当前位置 seek(offset[, whence]),offset参数是开始的偏移量,表示偏移几个字节,whence默认为0,表示要从哪个位置开始偏移:0代表从文件开头开始算起,1代表从当前位置开始算起,2代表从文件末尾算起。

             

    1.1 关系操作

          views:

    2.4 文件的flush()操作

    flush()方法刷新文件内部缓冲,直接把内部缓冲区的数据立刻写入文件,而不是被动的等待输出缓冲区写入。可以防止断电等情况使数据没有写入文件。

    1 f = open("file_demo",mode="a",encoding='utf-8') #创建文件句柄引用
    2 f.write("这是追加数据")
    3 f.flush()#将缓存区的数据写入到文件
    4 f.close()
    

              5、HttpRequest.POST

    1.1.7 不相交的

    两个集合如果没有交集就返回true,例如:

    1 set_demo_1 = set([1,2,3,4,5])
    2 set_demo_2 = set([11,22,33])
    3 print(set_demo_1.isdisjoint(set_demo_2))#没有交集返回true
    

                                                    {%block con%}

    4.2 README文件

    这个是每个项目都应该有的一个文件,目的是能简要描述该项目的信息,让读者快速了解这个项目。

    它需要说明以下几个事项:

    • 软件定位,软件的基本功能。
    • 运行代码的方法: 安装环境、启动命令等。
    • 简要的使用说明。
    • 代码目录结构说明,更详细点可以说明软件的基本原理。
    • 常见问题说明。

           首先在views视图函数里写函数,返回一个渲染页面:

    1.1.5 子集、父集

    可以使用issubset,issuperset方法,例如:

    1 set_demo_1 = set([1,2,3,4,5])
    2 set_demo_2 = set([1,2,3])
    3 print(set_demo_1.issuperset(set_demo_2))#set_demo_1是set_demo_2的父集 返回true
    4 print(set_demo_2.issubset(set_demo_1))#set_demo_2是set_demo_1的子集 返回true
    

              1、HttpRequest.body:         请求原数据

    一、集合部分

    集合是一个无序的,不重复的数据集合,主要用来去重,以及关系测试:交集,差集,并集等

    本文由金沙国际官网发布于编程,转载请注明出处:学习之路

    关键词: