第一部分 入门|第一章 Django Python实战

本文是Django Python实战的第一部分,介绍了Python的基础知识,包括注释的分类,变量的使用,各类运算符的详细说明,如算术、赋值、比较和逻辑运算符。此外,还涵盖了Python标准类型,如数字和布尔值,以及数据类型转换和函数的基本概念,如声明、调用、关键字参数和默认参数。后续章节将深入Django的实践应用。
摘要由CSDN通过智能技术生成

第一章相对简单,没有涉及Django深入的知识,所以笔者阅读完后,简单做了概述,从第二章开始深入Django

1. 注释

定义:在程序代码中对程序代码进行解释说明的文字。
作用:注释不是程序,不能被执行,只是对程序代码进行解释说明,让别人可以看懂程序代码的作用,能够大大增强程序的可读性。

注释分为两类:

  1. 单行注释:
# 注释内容
  • 既可以位于行首,也可以位于某行的任意位置,#之后的内容为注释
  • 单行注释的#号还可以作为指定编码格式:# -*- coding:utf-8 -*-
  1. 多行注释:
"""
注释内容
"""

2. 变量

例子:

>>> a = 'bar'
>>> a
'bar'
>>> a = 1
>>>a
1

该例子中,变量a首先被映射到一个字符串对象'bar'上,接着再映射到另一个整数对象1上。

注意:若没有变量指向'bar',则'bar‘会被回收。

引用计数: 变量value先指向一个字符串a,再指向一个数值b,若没有变量指向a了,则a会被回收。

3. 运算符

Python运算符分为:算术运算符、赋值运算符、比较运算符、布尔运算符。

算术运算符:

算术运算符
注意:混合运算时,优先级顺序为: ** 高于 */%// 高于 +- ,为了避免歧义,建议使用 () 来处理运算符优先级。
并且,不同类型的数字在进行混合运算时,整数将会转换成浮点数进行运算。

赋值运算符

赋值运算符
(1)单个变量赋值

>>> num = 5
>>> num
5

(2)多个变量赋值

>>> num1, num2, f1 = 100, 200, 'hello'
>>> num1
100
>>> num2
200
>>> f1
'hello'

复合赋值运算符

复合赋值运算符

比较运算符

比较运算符有 ><=>=<=!=

逻辑运算符

andorinnot in,返回TrueFalse

Python没有结尾的分号;,没有货币符号$,在条件语句中也不需要小括号()

二进制位操作(针对整数)

&、或|、异或^、取反~、左右位移<<>>

4. Python标准类型

所有的Python对象都有内在的布尔值:

  • 空字符串、None、0、False是False,其他都为True;
  • 空容器为False;
  • 若容器中存在数据(即使是False或0),该容器也为True。

字符串

>>> value = 'abc'
>>> value
'abc'
>>> value = 10
>>> value
10

对象的布尔值

>>> bool(1)
True
>>> bool(0)
False
>>> bool('123')
True
>>> bool('')
False
>>> bool([])
False
>>> bool([0])
True
>>> bool('123')
True
>>> bool({None, 0})
True
>>> bool(None)
False
>>> bool(True)
True
>>> bool(False)
False

数字

Python有两个主要的数值类型:int(整数)和float(浮点数)。
浮点数就是和其他语言一样的 双精度的浮点实数
有个比较有奇怪的事是:

>>> 1.1
1.1000000000000001

Python在表示有理数的时候不是非常精确。因此还有另一个浮点数类型Decimal(这不是一个内置类型,必须通过decimal模块访问),它的值范围比较小,但是更精确。
Python内置数字类型

Python内置数字类型

类型描述举例
int带符号整数(没有大小限制)-1,0,0✖️E8C6,0377,42
float双精度浮点数1.25,4.3e+2,-5,-9.3e,0.375
complex复数(实部+虚部)2+2j,3-j,-10.3e+5-60j

内置数字工厂函数

每种数字类型都有一个工厂函数让用户能在各种数字类型之间相互切换。

int()函数将浮点数或字符串型的整数转换成整数,小数点直接舍去,不存在四舍五入的情况。

float()函数把整形或原为浮点型或整形的字符串转换成浮点型

round(number,ndigits=None)函数将浮点数精确到指定的某一位.round(3.1415,3)即3.1415保留3位有效数字,即3.12。

abs(x,/)函数取一个数的绝对值。abs(3.14)值为3.14,abs(-3.14)值也为3.14。

divmod(x,y,/)函数返回一个元组,包含两个数:x除以y的商和余数。divmod(13,4)返回(3,1)。

>>> int(1.36)
1
>>> int(1.99)
1
>>> int('1223')
1223

>>> float(12)
12.0
>>> float('12')
12.0
>>> float('1.2')
1.2

>>> round(3.1415,3)
3.142

>>> abs(3.14)
3.14
>>> abs(-3.14)
3.14

>>> divmod(13,3)
(4, 1)

5. 数据类型转换

数据类型转换

6. 函数

1. 声明和调用函数

声明函数的方法是用 def 关键字,然后是函数名以及小括号里的参数列表(如果无参函数的话只要用一对括号即可)

>>> def foo(x)
...   print x
>>> foo(123)
123

2. (函数调用里的)关键字参数

关键字参数可以让函数更加清晰,更加容易使用,同时,也消除了记忆固定参数顺序的需要。

关键字参数通过 “键 = 值” 这样的形式加以指定:

>>> check_web_server(port=80, path='/', host='www.python.org')

关键字参数只能用于 “函数调用”。

3. (函数签名里的)默认参数

Python函数的另一个特定是可以为参数提供默认值,这样它们的参数就不是必需要传的了。

>>> def check_web_server(host, port=80, path='/'):

默认参数用于 “函数声明”,不能用可变类型(列表、字典)当默认参数。

所有必须提供的参数一定要出现在任何可选参数之前,不能混在一起或颠倒顺序。

4. 函数是 first-class的对象

5. 匿名函数和lambda

匿名函数创建的方法是使用 lambda关键字,它由一个表达式组成,这个表达式代表了函数的 “返回值”。

这样的函数没有名字,因此成为匿名函数。它通常只是一行表达式,一般都是用完就扔。

表达式:一个值,结果一定是一个Python对象,例如42,1+2,int(‘123’),range(10)等;
语句:一段代码,结果不是对象,例如if或print语句,for和while循环等,它们执行一个动作,而不是返回或生成一个值。

lambda语法:lambda args:表达式

在执行的时候,lambda返回一个可以立即使用的函数对象,或者你可以选择将它保存为一个变量,或是保存为一个回调函数以便稍后执行。

lambda的一个常见用法就是为 sorted这样的函数工具提供一个函数对象,它在众多参数里有一个key参数,这样key必须是一个函数,可以用在列表里的每个都排序的元素上以生成一个值来作为排序的依据。

例如有一个代表人物的复杂对象列表,我们希望按照他们的姓氏属性来排序的话,则可以这样:

sorted(list_of_people, key=lambda person: person.last_name)

这是正确的,原因是由于key期望的是一个函数对象,而lambda返回的正好是一个匿名函数。
以下是等价的写法:

def get_last_name(person):
	return person.last_name
	
sorted(list_of_person, key=get_last_name)

或这样:

get_last_name = lambda person: person.last_name
sorted(list_of_person, key=get_last_name)

三个语句最大的不同之处在于可读性和重用性。第一个例子更简洁同时目的相当明确,通常是解决这类问题最好的手法;第二个例子是一个普通的函数,比较恰当;第三个例子不太现实。

6. (函数调用里的)参数容器

7. (函数签名里的)变长参数

*args:元组
**kwargs:字典

8. 装饰器

Python的装饰器是一种能改变或是 “装饰” 函数行为的机制,它能让函数执行一些和原本设计不同,或是在原有基础上额外的操作。装饰器是也可以说是对函数的一个包装,这些额外的任务包括写日志、计时、过滤等。

简单的语法:

@deco
def foo():
	pass

翻译过来为:

foo = deco(foo)

9. 正则表达式

Django使用正则表达式的字符串匹配机制来定义网站的URL

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

程序员老五

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值