zoukankan      html  css  js  c++  java
  • Python编程:从入门到实践——笔记

    字符串:

    使用方法修改字符串的大小写:

    name = 'ada lovalace'
    print("首字母大写:",name.title())
    print("全大写:",name.upper())
    print("全小写:",name.lower())
    

     删除空白:

    name = ' ada lovalace '
    print("删除末尾空白>>"+name.rstrip()+"<<")
    print("删除开头空白>>"+name.lstrip()+"<<")
    print("删除两端空白>>"+name.strip()+"<<")
    

    在列表指定位置中插入,删除:

    list.insert(位置,值)

    name = [' ada lovalace ','LAO','laolao']
    print("没插入前:",name)
    name.insert(1,'花花')
    print("插入后:",name)
    

     del 列表名[位置]

    name = [' ada lovalace ','LAO','laolao']
    print("删除前:",name)
    del name[0]
    print("删除后:",name)
    

    list.pop()方法

    name = [' ada lovalace ','LAO','laolao']
    print("删除前:",name)
    t=name.pop(2)
    print("删除后:",name)
    print("删除的值:",t)
    

     list.remove[值]

    name = [' ada lovalace ','LAO','laolao']
    print("删除前:",name)
    name.remove('LAO')
    print("删除后:",name)
    

     对数字列表执行简单的统计计算:

    max(),min(),sum()

    dir=[1,2,3,4,5,6,7,8]
    print("列表的最大值",max(dir))
    print("列表的最小值",min(dir))
    print("列表求和",sum(dir))
    

     列表解析:

    print("列表解析",[i**2 for i in range(10)])
    

     列表复制:

    一方改了,另一方没有变化

    my_foods = ['pizza','falafel','carrot cake']
    friend_foods = my_foods[:]
    my_foods.append('cannol')
    friend_foods.append('ice cream')
    print("My>>",my_foods)
    print('Friend>>',friend_foods)
    

    函数传参问题:

    直接赋值相当于传实参(也就是C中的传指针),函数中的改变会导致主代码中的改变

    '''
    函数中删除了导致函数外的同事变化
    '''
    def fucntion(name):
        while name:
            print(name.pop())
    name = ['叉烧包','蟹黄煎包','红烧排骨','麻婆豆腐']
    fucntion(name=name)
    print(name)
    

     

    传形参的方式

    '''
    函数中删除不会导致函数外的同事变化
    '''
    def fucntion(name):
        while name:
            print(name.pop())
    name = ['叉烧包','蟹黄煎包','红烧排骨','麻婆豆腐']
    fucntion(name=name[:])
    print(name)
    

    传递任意数量的实参,在函数中保存形式是元组

    def fucntion(*name):
        print(name)
    name = ['叉烧包','麻婆豆腐']
    fucntion(name,name,name)
    

    使用任意数量的关键字实参,也就是后面的任意数量的参数有带等号的,传过去的形式是字典

    def build_profile(first, last, **usr_info):
        profile = {}
        profile['first_name'] = first
        profile['last_name'] = last
        for key,value in usr_info.items():
            profile[key]=value
        return profile
    usr_profile = build_profile('laolao','一朵菊花脸上遮',location='ZheJiang',是否去过武汉='没')
    print(usr_profile)
    

     类:

    值的修改

    class Dog():
        def __init__(self, name, age):
            self.name = name
            self.age = age
        def sit(self):
            print(self.name.title() + "is setting")
        def roll_over(self):
            print(self.name+"is "+str(self.age)+" years old")
            '''
            类中值修改方式一
            '''
            self.age+=1
    
    a = Dog(name='laolao',age=2)
    print(a.name.title())
    print(a.age)
    '''
    类中值修改方式二
    '''
    a.age+=1
    a.roll_over()
    a.roll_over()
    

    继承

    class Car():
        '''
        父类
        '''
        def __init__(self,make,model,year):
            self.make = make
            self.model = model
            self.year = year
            self.odometer_reading = 0;
        def get_descriptive_name(self):
            long_name = str(self.year)+" "+self.make + " " +self.model
            return long_name.title()
        def read_odometer(self):
            print("This car has" + str(self.odometer_reading) + "miles on it.")
        def update_odometer(self,milage):
            if milage >= self.odometer_reading:
                self.odometer_reading=milage
            else:
                print("You can't roll back an odometer!")
        def increment_odometer(self,miles):
            self.odometer_reading+=miles
            
    class ElectricCar(Car):
        '''
        子类(父类)
        '''
        def __init__(self,make,model,year):
            super().__init__(make,model,year)
    my_tesla = ElectricCar('tesla','model s',2020)
    print(my_tesla.get_descriptive_name())
    

    文件:

    replace(),可以实现指定内容的替换

    str = '我喜欢吃香蕉'
    print(str.replace('香蕉','葱油鸡'))

    用json.dump([文件内容],[句柄])想一个JSON格式的文件中写入内容
    import json
    num=[]
    for i in range(5):
        num.append(i)
    '''
    自定义一下文件名,后缀指定为JSON
    '''
    filname='1.json'
    with open(filname,'w') as f:
        json.dump(num,f)

     用 json.load([文件句柄])读取JSON格式的文件,如果这个文件中包含中文,在open里面加上  encoding='utf-8'

    import json
    filname='1.json'
    with open(filname,'r',encoding='utf-8') as f:
        print(json.load(f))

     测试代码:

    断言:self.assertEqual(formatted_name,'Janis Joplin')
    import unittest
    def get_fromatted_name(s,b):
        return s.title()+' '+b.title()
    
    class NamesTestCase(unittest.TestCase):
        def test_first_last_name(self):
            formatted_name = get_fromatted_name('janis','joplin')
            self.assertEqual(formatted_name,'Janis Joplin')
    unittest.main()

     Django3初体验:

    一些代码与网页页面之间的对应关系——model.py

    Meta类可以更改模型名称

    外联指定了Pizza类,就可在Topping类中修改Pizza类的内容【旁边的绿色加号和黄色的铅笔】

    类中定义的变量对应网页上的标签

    PS:更改后需要重新迁移一遍

     python manage.py makemigrations pizzas
     python manage.py migrate

    一些代码与网页页面之间的对应关系——项目:

     网页创建:

    由于我的Django是3而书上的的是1所以还是遇到了一些坑点,特此记录一下

    1.映射URL:编辑项目主文件learning_log的urls.py

    """learning_log URL Configuration
    
    The `urlpatterns` list routes URLs to views. For more information please see:
        https://docs.djangoproject.com/en/3.0/topics/http/urls/
    Examples:
    Function views
        1. Add an import:  from my_app import views
        2. Add a URL to urlpatterns:  path('', views.home, name='home')
    Class-based views
        1. Add an import:  from other_app.views import Home
        2. Add a URL to urlpatterns:  path('', Home.as_view(), name='home')
    Including another URLconf
        1. Import the include() function: from django.urls import include, path
        2. Add a URL to urlpatterns:  path('blog/', include('blog.urls'))
    """
    from django.conf.urls import url
    from django.contrib import admin
    from django.urls import path, include
    
    '''
    from django.contrib import admin: 导入 Admin 功能模块。
    from django.urls import path,include: 导入 URL 编写模块。
    urlpattems: 整个项目 的 URL 集合,每个元素代表一条 URL 信息。
    '''
    urlpatterns = [
        path('admin/', admin.site.urls),# admin.site. urls 是 URL 的处理函数,也称为视图函数。
        # path('', include('learning_logs.urls')),
        path('',include(('learning_logs.urls'),namespace='learning_logs')),
        #  URL 为空,代表为网站的域名, 即127.0.0.1:8000, 通常是网站的首页 ; include 将该 URL 分发给learning_logs的 urls.py 处理
        #  namespace 用来把learning_logs项目的URL和其他项目的区分开(也就是说告诉Django这里用的是learning_logs的url.py文件)
    ]
    

    2.在项目learning_logs中新建一个urls.py,并编写他:

    '''定义learning_logs的URL模块'''
    from django.conf.urls import url
    from django.urls import path
    from . import views
    
    app_name='learning_logs'
    urlpatterns = [
        # 主页
        path('',views.index,name='index'),
        # url('',views.index,name='index'),
    ]
    

    3.编写视图,修改learning_logs文件中的view.py

    from django.shortcuts import render
    
    # Create your views here.
    def index(request):
        '''学习笔记的主页'''
        return render(request,'learning_logs/index.html')
    

    4.编写模板,创建template->learning_logs->index.html

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>Learning Log</title>
    </head>
    <body>
        <p>Learing Log</p>
        <p>Learing Log helps you keep track of your learning,for any topic you're learning about.</p>
    </body>
    </html>
    

    5.开启服务器大功告成:

    python manage.py runserver

     这里记录一些注意点:

     

    显示所有主题页面

    这里要理清楚一个问题:数据库中的值到底是怎么传送给网页的

    '''views.py''''
    from django.shortcuts import render
    from .models import Plan,日期
    # Create your views here.
    def index(request):
        return render(request,'规划1/index.html')
    def topics(request):
        '''显示所有的主题'''
        topics = Plan.objects.order_by('edit_data')
        '''
        查询数据库中的Plan项,并把所有的内容按照‘edit_data’排序,然后保存在topics中
        '''
        context = { '内容' : topics }
        '''
        生产一个键值对,键是我们将在模版中用来访问数据的名称【重点注意!!!】,值是我们要发送给模版的数据
        '''
        return render(request, '规划1/topics.html', context)

     
  • 相关阅读:
    关于Javascript的有趣的3个小知识
    linux支持串口(serial)登录配置方法
    Silicom Linux BypassSD Control Utilitybypass command
    USB隨身碟版的Clonezilla live
    如何將Clonezilla live放到一個已經有其他作業系統存在的硬碟中
    clonezilla for usb as ghost or backup,auto ghost,auto backup(再生龙一键还原(备份)的制作)
    典型PC机上各种操作的近似时间
    linux网络问题子网掩码与网关不在同一段的处理
    Linux family member.(AS/ES/WS)
    华为交换机常用命令
  • 原文地址:https://www.cnblogs.com/chrysanthemum/p/12231996.html
Copyright © 2011-2022 走看看