python3 语法笔记(django)
一、概述
(1)在Linux上写py
#! /user/bin/env python3
加入该注释后,可直接使用 ./执行py文件!
# -*- coding:utf-8 -*-
虽然默认py文件编码是utf-8,但最好加上!
(2)在Linux上运行py
python3 main.py
chmod +x main.py
后,再./main.py
(也可用绝对路径!)
二、python速览
(1)数字
- 常见的:加 + 减 - 乘 * 除 / 取余 %,
除法默认是浮点数!
- 特殊的:结果是整数的除法 // 幂运算 **,幂运算可以是浮点数。
注意://是向下取整,C++是向0取整,-1//3 = -1
。
- python 定义变量直接用=,不用声明变量。
(2)文本
- 一般来说”和’引用字符串,作用一样
- ‘’里面的”“不需要转义,但’‘里面’‘要转义,”“里面”“也要转义,转义要用\,也就是说’‘比”“等级高一点,低级或同级要转义。
- 为了字符串里面\不是转义,可在字符串前面加r,例如
'c:\a\name'
为了防止\n换行,可以用r'c:\a\name'
。
- 字符串可用 * 重复,
'a' * 3表示'aaa'
。
- 字符串可用 + 拼接,
'a' + 'b'表示'ab'
。
- 字符串可用空格拼接,
'a' 'b'表示'ab'
,但是这种方法仅支持两个面值,不支持变量或者表达式。
- 索引支持负数,-1表示最右边,依次往前就是-2,-3等等。
- 切片操作,左闭右开,省略左边就是0,省略右边就是访问到最后一个值。
w = 'abcde',w[0:2]表示'ab',w[:2]表示'ab',w[-2:]表示'de'
。
- 索引越界会报错,但是切片越界会自动处理。
w = 'abc',w[3]就报错,w[0:4]表示'abc'
。
- 不能直接修改字符串,
w = 'abc',w[0] = 's'
会报错。可以用新生成一个字符串来实现,w = 's' + w[1:]
。
- len()可求长度,其实可求Py所有数据结构长度。
(3)列表
- 相当于c++的数组。
- 列表定义用中括号,不需要定义长度,列表元素类型也可以不同。
list1 = [1,'a']
。
- 列表索引切片和字符串一样。
- 列表与字符串不同,可以直接修改元素。
- 可用
list.append()
在元素列表末尾加元素。list1.append(2)表示[1,'a',2]
。
- 可用切片直接对列表修改。
list1[:2] = [2,1],则list1变成[2,1,2]
。
- 赋值、浅拷贝和深拷贝:
(1)赋值是直接对一个对象进行引用,类似于指针,如果a = b,那么b变化时a也变化。
(2)注意浅拷贝和深拷贝有区别,仅限于这个对象是复合对象,也就是说如果w = [0,1,2],k = w,使用浅拷贝和深拷贝都一样,此时修改k的值,w也不变。
(3)对于复合对象时,浅拷贝只对次外层进行引用,而深复制是递归复制所有值。
(4)走向编程第一步
- 多重赋值:
a,b = 0,1
,交换两个变量值时可用:a,b = b,a
。
- py的for,while,if语句后面要有:,循环体用缩进区别。
- input()输入的是字符串,对于用空格隔开的输入且转化成整型可用:
a,b = map(int,input().split(' '))
。
- print()如果要指明输入元素的类型,例如输出的变量是保留两位小数:
print('a是:%2.f' %a)
,注意这里不是用逗号隔开,而是空格。
三、更多控制流工具
(1)if语句
- 判断语句不用加(),但最后要加:
- 代码块用缩进区别。
- else if用elif,else还是else。