• 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)

     
  • 相关阅读:
    PythonのTkinter基本原理
    使用 Word (VBA) 分割长图到多页
    如何使用 Shebang Line (Python 虚拟环境)
    将常用的 VBScript 脚本放到任务栏 (Pin VBScript to Taskbar)
    关于 VBScript 中的 CreateObject
    Windows Scripting Host (WSH) 是什么?
    Component Object Model (COM) 是什么?
    IOS 打开中文 html 文件,显示乱码的问题
    科技发展时间线(Technology Timeline)
    列置换密码
  • 原文地址:https://www.cnblogs.com/chrysanthemum/p/12231996.html
Copyright © 2020-2023  润新知