Python入门笔记(内测版)

前言

自己用的学习笔记,只有C的基础,毕设需要用到python,留学习笔记,整理自b站视频

b站学习视频
于2020.02.13

基础操作

设置

字体设置为consolas比较好看

变量和数据类型

第一印象感觉python和C语言其实差不多,感觉不太习惯的是不用花括号,而用了缩进表示语句间关系,所以要严格把握缩进否则会报错(强迫症患者福音),同时也能避免一些忘记加花括号引起的错误。
一些使用规则汇总
设置变量不可用数字开头
X,y =y,x可交换xy
Alt+P复制上一句代码
双引号单引号,转义字符
Print(r“转义字符无效”)
若要换行,且程序没有写完,在末尾加\,即为\n\,三个双引号、单引号也能实现
数字加引号,相加可成为字符串拼接
字符串Print(“转义字符无效”*3000)打印3000遍
“”” 注释”””,或者加#号
大于等于号中间不能打空格
If,else:else后面应该加:while:
Ctrl+c停止循环
Break跳出循环;continue跳出本循环进行下一循环
Help docs 搜模块用法,import random载入模块
Python无自增运算
5e-05科学计数法 复数1+5j
Divmod(2,3)求两数的商和余数
常用函数bool为0则false
短路原则,or and
运算符优先级
assert断言,检查出错点
type(查数据类型)

循环结构

for循环:依次打出num中的文字并每个后面加一空格隔开
for 目标 in 表达式
例子:
for i in num:
print(i,end=’ ')

range(2,5,1)生成2,,3,4,间隔为1

列表

基础操作

基础操作
member=[1,2,3,4]
member.append(5)列表后加一元素5
member.extend([6,7])同事插入多个元素在末尾
member.insert(0,9)将9插入到第一个
len(member)列表长度

列表元素替换

列表元素替换
temp=member[0]
member[0]=member[1]
member[1]=temp

列表元素删除

列表元素删除
member.remove(1)没有该值则报错
del member[1]删除第二个,不带参数则全删
num=member.pop()列表最后一个值出栈,并赋给num,在()内填数字可具体出某一位值

列表部分输出

列表部分输出
member[0:3]表示0,1,2位的列表值
[:4]从头开始
[:]输出所有

列表常用操作符

列表常用操作符
比大小
list1 = [123]
list2 = [456]
list1>list2
false
列表较长先比首项
可使用 and or 等运算符
list4 = list1 + list2 两个列表拼接,但不能直接+2,+号两边必须数据类型相同
list33或list3=3 列表内容复制3遍
123 (not) in list3[第几位,也可不填]
ture元素123是否在list3中
dir(list)与list有关的函数
count(该元素出现次数),index(该元素出现位置,可限定范围),reverse(交换位置),sort(数字排队)
list7=list6[:]完全拷贝给7,7成为独立列表不受影响
list8=list6,8与6完全等同,随后对6进行操作8也会变化

元组

元组
tuple = (1,2,3,4,5,6,7,8)
>>tuple[1]
>>2
元组使用方法与列表相似
tuple2=tuple[5:]
元组是否为元组取决于逗号
tuple=(1)不是元组
tuple=1,2,3、tuple=()是元组、空元组
8*(8)=64;8*(8,)=(8,8,8,8,8,8,8,8)}
插入
temp=(‘he’,‘ha’,‘oo’)
temp=temp[:1]+(pp)+temp[1:]
新的temp的ha后多了pp元素,而老的temp还存在,不久就会被消灭。元组比列表的数据更隐蔽安全

字符串

str = ‘i love you’
str[:6]>>‘i love’
也可插入字符,与列表相同

相关函数用法
str.capitalize()首字母大写
casefold()全部小写
center(width)将字符串居中,并使用空格填充至长度width的新字符串
format()位置参数:"{0} love {1}".format(“i”,“you”)>>'i love you’
关键字参数:"{a} love {b}".format(a=“i”,b=“you”)

字符串格式化符号含义及转义字符含义
字符串格式化符号含义:%c:’%c’ % 97 >>‘a’,%s,%d,%s等
格式化操作辅助命令:m.n 宽度.小数点位数、-左对齐、#十六进制前显示0x
字符串转义字符:\

序列

列表、元组、字符串统称为序列,共同点:
1、都可以通过索引得到每一个元素
2、默认索引值总是从0开始
3、可以通过分片的方法得到一个范围内的元素的集合
4、有很多共同的操作符(重复、拼接、成员关系)
相关函数:
1、使用list()函数可将元组转化为列表,b = list(b)
2、max():找最大值
3、list(reverse(num))翻转列表num
4、a=[1,2],b=[3,4,5],list(zip(a,b))>>[(1,3),(2,4)]

函数

定义函数

例1

def myfunction(name)//两个参数的话用逗号隔开即可,参数可任意形式
	print(name+'函数定义')

使用:
myfunction(‘第一个’)
屏幕上打出“第一个函数定义”

例2

def add(num1,num2):
	return(num1 + num2)

效果:
print(add(5,6))
11

函数文档

区别形参实参:
形参:定义函数时,括号里的name(见例1)
实参:调用函数时,括号里的值

def myfunction(name)//两个参数的话用逗号隔开即可,参数可任意形式
	'文档定义内容'
	print(name+'函数定义')

当输入>>>myfunction.doc
结果显示:‘文档定义内容’
或输入print.doc,help(print),会出现函数介绍,让别人更好理解

关键字参数

如例2,在调用函数时,add(num1=1,num2=2),防止参数写反的情况,在遇到大型项目时使更改参数更加方便。

默认参数

如例2,在函数定义时直接给num1,num2赋值

收集参数

def test(*params,exp):
	print('参数的长度是:'len(params),exp);
	print('第二个参数是:',params[1]);

调用函数>>>test(1,‘哈哈’,2,3,exp=4)
结果:参数的长度是:4 4
第二个参数是:哈哈

函数返回值

与C语言不同,python可以有多个返回值,只需要在函数的renturn[1,2,3]设置一个列表即可或不加中括号,直接为一个元组

变量的作用域

局部变量:在函数内定义的参数
全局变量:在函数外定义的参数,可以在函数内调用,但不要在函数内赋值,赋值python会自动创造一个同名的局部变量,最后数值可能出错

global关键字

在函数内使用全局变量,由于python的shadowing机制,会自动忽略此参数赋值操作,需要global+全局变量在函数中才能正常使用

嵌套函数

def fun1():
	print('fun1被调用')
	def fun2():
			print('fun2被调用')
	fun2()

函数中嵌套的函数只能在该函数中起作用,不能被单独调用

闭包

较难理解

def funx(x):
	def funy(y)
			return x * y
	return funy

调用效果
》》》i = funx(8)
》》》type(i)
i为function格式
》》》i(5)
40
或者
》》》funx(8)(5)
40
新手常错

def fun1():
	x = 5
	def fun2():
			x *= x
			return x
	return fun2()	

此时fun2中的x不被执行,情况类似上一条,在python3之后可以解决,加一行代码在fun2里,nonlocal+参数名,即可强制改成全局变量

lambda表达式

示范例子(两种方法结果相同,但lambda方法会被回收)

def add(x,y):
	return x + y

》》》add(3,4)
7

lambda x, y : x + y
g = lambda x , y : x + y

》》》g(3,4)
7
lambda表达式作用
python写脚本省定义函数时间,对于整个程序运行下来只调用一两次的函数不用费劲想函数的名字,简化代码的可读性,不用刻意去找函数定义

好用的BIF

1、过滤器filter()
筛选0-9之间的奇数

def odd(x):
	return x % 2

temp = range(10)
show = filter(odd, temp)
list(show)

或者简短地

list(filter(lambda x : x % 2, range(10)))

2、映射(简单迭代)map()

list(map(lambda x : x * 2, range(10)))

[0,2,4,6,8,10,12,14,16,18]

递归

递归必有终止,与迭代比有风险
设置递归的层数
python3默认100层

import sys
sys.setrecursionlimit(1000000)

实用范例:阶乘,汉诺塔,二叉树

对象

模块

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值