鱼C论坛

 找回密码
 立即注册
查看: 4000|回复: 69

[学习笔记] 课堂笔记-从3开始

[复制链接]
发表于 2018-10-19 09:51:37 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
本帖最后由 BigSmall 于 2018-10-22 14:48 编辑

3
answer=int(input())
if answer<8:
    print('small')
else:
    if answer>8:
        print('big')
    else:print('yes')
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2018-10-19 10:36:33 | 显示全部楼层
还得回复
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-10-20 12:23:53 | 显示全部楼层
5
from random import randint
number=randint(1,10)
answer=int(input())
while answer!=number:
    if answer>number:
        print('big')
    else:
        print('small')
    answer=int(input())
if answer==number:
    print('yes')

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-10-20 15:20:33 | 显示全部楼层
8
打飞机游戏构思
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-10-20 15:21:14 | 显示全部楼层
本帖最后由 BigSmall 于 2018-10-29 10:46 编辑

10
while循环
for循环:for i in list(一个列表),i遍历list里面的每一个元素
range(a,b,c):从a开始,以b的前一个数结束;如果只写一个数字,默认从0开始;c是步进,不写c的步进是1;
break:跳出循环体
continue:跳出本轮循环

print默认是打印一行,结尾加换行。end=' '意思是末尾不换行,加空格。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-10-22 10:33:10 | 显示全部楼层
本帖最后由 BigSmall 于 2018-10-22 15:27 编辑

11
列表list=[1,'我']:类似c中的数组,可以直接写入不同类型的元素;list是列表名,可以按着自己的想法写成各种名字
列表添加一个元素:list.append(1)
列表添加多个元素:list.extend([1,'asdsd']),不能直接写元素,因为extend是用一个列表扩展另一个列表
在列表的任意位置添加元素:list.insert(1,1),前面的1是位置,后面的是要添加的元素
列表不能直接写入a,因为这不是基本的数据类型,只能'a'

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-10-22 15:54:46 | 显示全部楼层
本帖最后由 BigSmall 于 2018-10-22 16:06 编辑

12
从列表中获取元素:
list[0]

从列表中删除元素:
list.remove('a'),有具体名字,不需要位置
del list[1],del是一个删除语句,不是list的内置的函数
list.pop(1),删除位置1的元素,并会返回删除元素的值,如果不指定位置,默认最后一个元素

列表分片:(一次性获取多个元素)
list[1:3],这个就是将list列表中的元素1,2切片(从1开始,到3结束)并粘贴成一个新的列表,原来的列表不会改变

注意:我这里的list指的是列表名,用的时候不要写成list,因为list在python中是一个函数




想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-10-22 21:24:30 | 显示全部楼层
13
列表,比较大小:
从第0个元素开始比较,只要有1个元素赢了就是赢了(相等的元素默认跳过)


列表的加法尽量别用,用之前11学的向列表中添加元素


列表可以用乘法,list*=3

123 in list,123 not in list,返回true或者false

列表里面还可以放列表,判断列表里面的列表元素:1 in list3[2],这个2是元素1在的列表的在列表3中的位置;访问里面的值:list3[1][2],即访问列表3里面1位置处的列表里面的2位置的元素

列表的内置函数:(dir(list)这个代码是列举list的内置函数)
list3.count(1):计算元素1在列表中的次数;
list3.index(1):查找元素1在列表中的位置;
list3.index(1,3,7):查找位置3到位置7这个范围内元素1所在的位置
list3.reverse():元素倒置
list3.sort():元素从小到大排序
list3.sort(reverse=True):元素从大到小排序

列表的拷贝:分片的拷贝是产生新的列表,而list3=list2这样的拷贝是对list2这个列表多贴了一个标签list3,对于等号的拷贝,改变list2,list3也会发生改变,而分片就不会出现这样的情况













想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-10-23 15:16:34 | 显示全部楼层
14
元组
和列表式近亲关系,在实际使用上是非常相似的
不同:列表里面的元素是可以修改的,但是元组不可以改变
创建:tuple1=(1,2,3,4,5),元组的关键是逗号,括号不必要,单独一个元素后面也要加逗号
访问:tuple1[1]
切片:tuple1[1:3]
元组的修改只能是切片原来的元组,加法组合成新的元组
元素的删除,del tuple1
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-10-23 16:11:24 | 显示全部楼层
本帖最后由 BigSmall 于 2018-10-23 18:25 编辑

15
字符串
分片:str[q:4]
索引:str[1],索引出来虽然是单个字母,但他仍然是字符串
切片加拼接

字符串相对于列表,其方法更多:论坛,python交流区,零基础学习python,扩展阅读,字符串的方法及注释
用法也是str1.方法()

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-10-24 09:52:14 | 显示全部楼层
16
字符串的格式化
扩展阅读:https://fishc.com.cn/forum.php?mod=viewthread&tid=92997&extra=page%3D1%26filter%3Dtypeid%26typeid%3D403
间的的说:字符串格式化化,就是要先制定一个模板,在这个模板中某个或者某几个地方留出空位来,然后在那些空位填上字符串

其实就是c语言中的:printf(“%d”,1),但是格式不一样,在python里面:
字母print('%s'%'a')
整形print('%d'%1)
多个字符 print('%s%s%d'%('a','b',1)),里面括号不能省(单个字符可以省),逗号不能省
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-10-24 11:53:07 | 显示全部楼层
17
序列
列表、元组和字符串的共同点:索引、索引值从0开始、分片、重复(*3变成三个)、拼接、in

list()函数是将字符串或者元组转换成列表,1位置对应1位置,2位置对应2位置:
如果a是字符串:b=list(a),b这个列表的就是由字符串分离成由一个个字母的字符串组合而成的列表
如果a是元组,那么就是圆括号变成了方括号

一些常用的函数
tuple()函数与list()函数一样
str()函数比较特殊
len()返回长度
max()返回序列或者参数集合中的最大值;同样有min
sum(a)对序列进行内元素进行相加
sum(a,8)序列的元素加上后面加的元素求和(只能加一个元素)
sorted()从小到大排序
reversed()逆转,但是这里有问题,比如列表,逆转之后形成的并不是列表,还需要用list()转换成列表,此时就达到逆转的效果了
enumberate()编号
zip()
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-10-24 16:08:52 | 显示全部楼层
18函数,python的乐高积木
复杂的程序简单化,划分成越来越小的部分:函数、对象和模块
格式:def 函数名(参数):
               函数要实现的功能
函数的返回:return
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-10-25 09:12:08 | 显示全部楼层
19
形参:定义函数时,小括号里面的参数
实参:调用函数时,小括号里面的参数
函数文档:对函数的一个介绍,可以通过函数的内置函数查看,函数名._doc_,注释虽然也可以对函数进行说明,但它用上述的方法不能打印出来。写法:定义函数后,写在函数的第一行,‘函数说明’
关键字参数:对于规模比较大的程序,调用函数时(两个形参)为了避免出错,就将写成形参=实参,这种形式的,位置与之前的函数定义的位置也可以不一样
默认参数:定义函数时,形参可以赋予默认值,形参=默认参数,当调用函数时,如果没有赋予实参,啊那么就直接用默认参数,如果有实参,就用实参
收集参数(可变参数):

print函数用法:https://www.cnblogs.com/graceting/p/3875438.html
当打印多个变量时,就要用逗号隔开,打印出的多个变量中间有空格
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-10-27 20:27:58 | 显示全部楼层
20
函数:返回值的
过程:没有返回值
python都是函数,有返回值的返回一个值,没有的返回一个none
局部变量:函数里面的变量,到函数外面无法访问
全局变量:虽然函数的定义要写在最前面,但是如果此时加入全局变量,在运行函数时不会出问题。虽然可以在函数里面访问全局变量,但是无法去修改全局变量。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-10-27 20:43:48 | 显示全部楼层
21
在函数里面修改全局变量:
在函数的第一句glibal 全局变量


内嵌函数(内部函数):在函数里面嵌套函数
内嵌的函数只能在该函数内部使用,出了该函数就不能用了

闭包

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-10-27 20:57:54 | 显示全部楼层
22
匿名函数
函数名=lambda形参1,形参2:函数形式
函数名(实参)

使用该函数可以省下函数定义的时间
针对只调用一两次的函数
简化代码的可读性(不用返回开始查看函数)

filter(筛选条件,筛选列表)
对于条件,1和true的会留下来,0和false的会被过滤掉
实例:list(filter(lambda x:x%2,range(10)))
运行后【1,3,5,7,9】

map
实例:list(map(lambda x:x*2,range(10)))
运行后【0,2,4,6,8,10,12,14,16,18】


想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-10-28 11:03:34 | 显示全部楼层
23
递归算法
函数自己调用自己,但一定要有终止

阶乘:
def jiecheng(n):
    if n==1:
        return(1)
    else:
        return n*jiecheng(n-1)



想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-10-28 11:42:02 | 显示全部楼层
本帖最后由 BigSmall 于 2018-10-28 13:33 编辑

24
斐波拉契(递归):
def feibonaqi(n):
    if n==1 or n==2:
        return(1)
    else:
        return feibonaqi(n-1)+feibonaqi(n-2)
相对于迭代写法简单多了(思路简单),但是运算效率比较低


想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-10-28 13:33:35 | 显示全部楼层
25
汉诺塔(递归):
def hannuota(n,a,b,c):
    if n==1:
        print(a,'->',c)
    else:
        hannuota(n-1,a,c,b)
        print(a,'->',c)
        hannuota(n-1,b,a,c)
level=int(input())
hannuota(level,'x','y','z')

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-4-27 00:25

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表