python学习

python学习

第一天

1.解释器的作用

(翻译官)(计算机与程序员之间的)

翻译代码给计算机

运行文件运行代码

解释器种类:

. cpython(课程)

. ipython(交互)

(.exe可执行文件)

pycharm(IDE集成开发环境)调用解释器运行文件

2.pycharm基本使用

*新建项目:

打开pycharm–create new project–选择项目根目录和解释器版本

*书写代码:

新建文件(如果将来文件要上传至服务器就必须英文命名)–书写代码–验收成果

print('hello world')  
#python输出程序内容给用户看,单双引号没差别

*运行文件的方法:

空白处右键run

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-puggzylM-1665503723671)(C:\Users\lenovo\AppData\Roaming\Typora\typora-user-images\image-20220715173142009.png)]

第一行:解释器的位置

第二行:输出内容

第三行:表示程序运行结束

3.项目管理

*新建项目

*打开项目

image-20220715210139209

this window:覆盖当前项目,从而打开目标项目

new window:新窗口打开,多次打开pycharm

attach:多个项目在一个pycharm中打开

*关闭项目

file–close project/close projects

第二天

1.注释

*单行注释

只能注释一行内容

# 注释内容

*多行注释

可注释多行内容,一段代码

'''
第一行注释
第二行注释
第三行注释
'''

"""
第一行注释
第二行注释
第三行注释
"""
2.变量

程序就是处理数据(内存储与外存储)用的

*变量的作用

变量就是一个数据存储时其所在的内存地址的名字(譬如图书馆内的书架上的书的编号)

*定义变量

  • 语法
变量名=# 将值赋值到变量名中
  • 定义变量的归总

变量名是自定义的,得符合标识符的命名规则(各种名字):

**由数字、字母、下划线组成 **,

不能数字开头,

不能使用内置关键字

严格区分大小写

见名知意

MyName/myName/my_name(多个英文单词)

  • 使用

    my_name='xxQ'
    # 定义变量
    print(my_name)
    # 使用变量
    

*认识数据类型

*认识bug

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-6EarN05o-1665503723673)(C:\Users\lenovo\AppData\Roaming\Typora\typora-user-images\image-20220716155320541.png)]

显示:行数、错误内容、错误类型

*Debug工具(pycharm解释器中集成的用来调试程序的工具)

可查看程序的执行细节和流程或者调解bug

使用步骤:打断点、调试

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-URwYfnKH-1665503723673)(C:\Users\lenovo\AppData\Roaming\Typora\typora-user-images\image-20220716160420382.png)]

调试器右侧显示程序的细节、流程

‘Console’是输出数据显示的位置

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-XuVwJ26G-1665503723674)(C:\Users\lenovo\AppData\Roaming\Typora\typora-user-images\image-20220716160808046.png)]

‘1’是逐行执行,右击执行下一行

‘2’是显示变量被赋予的值的类型

此时表示第一行已经执行完毕

3.认识数据类型

字符串数据类型的特点:都要带引号

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-hYBraeMM-1665503723674)(C:\Users\lenovo\AppData\Roaming\Typora\typora-user-images\image-20220716163911770.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-RWIDjtTl-1665503723675)(C:\Users\lenovo\AppData\Roaming\Typora\typora-user-images\image-20220716163926224.png)]

image-20220716164304034

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-RNkr5E3P-1665503723676)(C:\Users\lenovo\AppData\Roaming\Typora\typora-user-images\image-20220716164355950.png)]

//显示类型

4.输出

*格式化输出

  • 格式化符号

    %s字符串

    %f浮点数

    %.2f小数点后保留两位小数

    %d有符号的十进制整数(正负号都有)

    %04d保留4位整数

    """
    1.准备数据
    2.格式化输出数据
    """
    age = 18
    name = 'TOM'
    weight = 75.5
    stu_id = 1
    stu_id2 = 1000
    # 1.我的名字是TOM
    print('我的名字是%s' % name)
    
    # 2.我的学号是001、1000
    print('我的学号是%03d' % stu_id)  # '0'表示数字不够时用0来占位
    print('我的学号是%03d' % stu_id2)  # 超出当前位数则原样输出
    
    # 3.我的体重是75.50公斤
    print('我的体重是%.2f' % weight)
    
    # 4.我的名字是TOM,今年18岁了
    print('我的名字是%s,今年%d岁了' % (name, age))
    
    # 5.我的名字是TOM,明年19岁了
    print('我的名字是%s,明年%d岁了' % (name, age+1))  # 可直接在输出上进行简单的数学运算
    
    # 6.我的年龄是18岁%d
    print('我的年龄是%d' % age)
    
    # 7.我的名字是TOM,今年18岁,明年19岁了,体重75.50公斤,学号是001
    print('我的名字是%s,今年%d岁,明年%d岁了,体重%.2f公斤,学号是%03d' % (name, age, age+1, weight, stu_id))
    
    image-20220716231655208

    %s功能强大,包含%f以及%d的功能

    name = 'TOM'
    age = 18
    weight = 75.5
    # 我的名字是TOM,我今年18岁了,体重75.5公斤
    print('我的名字是%s,我今年%s岁了,体重%s公斤' % (name, age, weight))  # 这一句话的输出包含中文,整句话仍然为字符串
    
    image-20220716231605848
  • f-字符串

    f’{表达式}'与%s等同,但是比%s高效简洁

name = 'TOM'
age = 18
# 我的名字是TOM,今年18岁了
print('我的名字是%s,今年%d岁了' % (name, age))
# f'{表达式}'
print(f'我的名字是{name},今年{age}岁了')
image-20220716232747892

*print的结束符

hello = 'hello'
world = 'world'
hw = hello + ' ' + world  # String concatenation连接字符串
print(hw)

第三天

1.转义字符

\n:换行(反斜杠n)

\t:制表符,4个空格的距离

2.结束符
print('输出内容',end="自定义任意符号")
3.输入

程序接受用户输入的数据的功能

  • 输入功能的语法

    input("提示信息")
    
  • 输入的特点

*当程序执行到input,等待用户输入,输入完成会才继续向下 执行

*input接收用户输入后,一般存储到变量

*input会把接收到的任意用户输入的数据都当作字符串处理

password=input('请输入密码:')
print(f'您输入的密码是{password}')
4.转换数据类型

int(x)-------------------将x转换为一个整数

float(x)-----------------将x转换为一个浮点数

str(x)-------------------将对象x转换为字符串

eval(str)---------------用来计算在字符串中的有效Python表达式,并返回一个对象(转换成相应内容的原本的数据类型)

tuple(s)----------------将序列s转换为一个元组(元组是小括号)

list(s)-------------------将序列s转换为一个列表(列表是中括号)

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-OCnaJcTN-1665503723676)(C:\Users\lenovo\AppData\Roaming\Typora\typora-user-images\image-20220728204547748.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ii3JXwvY-1665503723677)(C:\Users\lenovo\AppData\Roaming\Typora\typora-user-images\image-20220728204602850.png)]

5.运算符分类
  • 算数运算符

    +1+1输出结果为2
    -1-1输出结果为0
    *2*2输出结果为4
    /10/2输出结果为5
    //整除9//4输出结果为2
    %取余9%4输出结果为1
    **指数2**4输出结果为16
    ()小括号提高运算优先级

    顺序:

    ()>**>* / // % >+ -

    image-20220728223418383

    (直接用python console)

  • 赋值运算符

    =赋值右侧结果赋值给=左侧变量
    num1, float1, str1 = 10, 0.5, 'hello world'  #多变量赋值
    print(num1)
    print(float1)
    print(str1)
    

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-gb1hUZsi-1665503723677)(C:\Users\lenovo\AppData\Roaming\Typora\typora-user-images\image-20220728225859856.png)]

  • 复合赋值运算符

    (先执行算数运算符然后将执行后的结果赋值给左边的变量)

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-B2U4JUYU-1665503723678)(C:\Users\lenovo\AppData\Roaming\Typora\typora-user-images\image-20220728230530411.png)]

    a = 10
    a += 1
    print(a)
    b = 10
    b -= 1
    print(b)
    

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-h9uU2FJb-1665503723678)(C:\Users\lenovo\AppData\Roaming\Typora\typora-user-images\image-20220728230646336.png)]

    注意:先运算右边的表达式,最后计算复合赋值运算

    b = 10
    b += 1 + 2
    # b=10+(1+2)
    c = 10
    c *= 1 + 2
    # c=10*(1+2)
    
  • 比较运算符

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-2lHV8M8Q-1665503723679)(C:\Users\lenovo\AppData\Roaming\Typora\typora-user-images\image-20220729012315925.png)]

    a = 1
    b = 1
    c = 2
    print(a == b)
    print(a != c)
    print(c > b)
    print(a < c)
    print(a >= b)
    print(a <= b)
    
  • 逻辑运算符

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-3DSW47SM-1665503723679)(C:\Users\lenovo\AppData\Roaming\Typora\typora-user-images\image-20220729012923680.png)]

​ [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-d1wPXeHa-1665503723680)(C:\Users\lenovo\AppData\Roaming\Typora\typora-user-images\image-20220729165841449.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-7OUHs69Z-1665503723681)(C:\Users\lenovo\AppData\Roaming\Typora\typora-user-images\image-20220729165857586.png)]

第四天

1.条件语句
  • 作用

    条件成立执行某些代码,条件不成立则不执行这些代码

  • if语法

    if 条件:
        条件成立执行的代码1
        条件成立执行的代码2
        条件成立执行的代码3
        ......
    

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-XU5Y45u2-1665503723681)(C:\Users\lenovo\AppData\Roaming\Typora\typora-user-images\image-20220729182654693.png)]

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-X6ex7ePs-1665503723682)(C:\Users\lenovo\AppData\Roaming\Typora\typora-user-images\image-20220729182707992.png)]

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-XGS7jm7I-1665503723682)(C:\Users\lenovo\AppData\Roaming\Typora\typora-user-images\image-20220729190449492.png)]

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-wWbJJJWF-1665503723683)(C:\Users\lenovo\AppData\Roaming\Typora\typora-user-images\image-20220729190458291.png)]

    # ⽤户可以输出⾃⼰的年龄,然后系统进⾏判断是否成年,成年则输出"您的年龄是'⽤户输⼊的年龄',已经成年,可以上⽹"。
    age = input('请输入您的年龄:')
    if age >= 18:
        print(f'您的年龄是{age},已经成年,可以上⽹')
    

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-xEDaL43F-1665503723684)(C:\Users\lenovo\AppData\Roaming\Typora\typora-user-images\image-20220729192109587.png)]

    出现报错,原因是age作为字符串与整型进行比较,为此要把age转换为整型

    age = int(input('请输入您的年龄:'))
    if age >= 18:
        print(f'您的年龄是{age},已经成年,可以上⽹')
    

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-A01gBBPc-1665503723684)(C:\Users\lenovo\AppData\Roaming\Typora\typora-user-images\image-20220729192322887.png)]

  • if…else…

    if 条件:
        符合条件的代码1
        符合条件的代码2
        ......
    else:
        条件不成立执行的代码1
        条件不成立执行的代码2
        ......
     
    age = int(input('请输入您的年龄:'))
    if age >= 18:
        print(f'您的年龄是{age},已经成年,可以上⽹')
    else:
        print(f'您的年龄是{age},还未成年,请离开')
    

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-R0Nuwylj-1665503723685)(C:\Users\lenovo\AppData\Roaming\Typora\typora-user-images\image-20220729203935243.png)]

    %前后类型要一样

  • 多重判断(当遇到多种情况需要判断的时候)(条件是并列的

    if 条件1:
    	条件1成⽴执⾏的代码1
    	条件1成⽴执⾏的代码2
     	......
    elif 条件2:
    	条件2成⽴执⾏的代码1
    	条件2成⽴执⾏的代码2
     	......
    elif 条件3......
    	......    
    ......
    else:
    	以上条件都不成⽴执⾏执⾏的代码
    # else放整个if语句的最后,表示以上条件都不成立时执行的代码
    

    <工龄判断>

    age = int(input('请输入您的年龄:'))
    
    if age < 18:
    
        print(f'您的年龄为{age},属于童工')
    
    elif (age >= 18) and (age <=60):    #化简:elif 18 <= age <= 60:
    
        print(f'您的年龄为{age},合法工龄')
    
    elif age > 60:
    
        print(f'您的年龄为{age},已退休')
    
  • if嵌套

    if 条件1:
     	条件1成⽴执⾏的代码
     	条件1成⽴执⾏的代码
     
     	if 条件2:
     		条件2成⽴执⾏的代码
     		条件2成⽴执⾏的代码
    

    条件2是在条件1内,属于包含关系

    seat = 0
    money = 1
    money = int(input('请给钱:'))
    seat = int(input('看看有没有座位:'))
    if money == 1:
        print('有钱可以上车')
        if seat == 1:
            print('有钱且有座位')
        else:
            print('站着')
    else:
        print('不可以上车')
    

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-VTsbByCx-1665503723686)(python学习.assets/image-20220910210327258.png)]

    在python中采用随机数的时候:1.导模块2.用模块里的功能

    randint:产生均匀分布的随机整型矩阵

导模块的时候,导模块的语句放在所有逻辑代码的前面,为的是下面所有语句都有权限去使用这个模块

"""
random(随机)
randint(产生随机矩阵)
1.导入模块:import 模块名
2.使用模块功能:random.randint(开始的位置,结束的位置)

"""
import random
num=random.randint(0,2)
print(num)
2.三目运算符(三元表达式)

(化简最简单的if else语句)

条件成立执行的代码 if 条件 else 条件不成立执行的代码

举例

a=1
b=2
c=a if a > b else b
print(c)

第五天

python中循环分为while和for两种

1.1while循环
while 条件:
    条件成立重复执行的代码1
    条件成立重复执行的代码2
    条件成立重复执行的代码3
    ......
i = 1
while i <= 10:
    print('过过过')
    i += 1 # 增量为1
    
    
正常代码应该这样写:
i=0
while i < 5:
    print("过过过")
    i += 1

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-JwtfgXod-1665503723687)(python学习.assets/image-20220924111707043.png)]

1.1.1 1-100累加和
"""
1.准备做加法运算的数据1-100,且自增为1
2.准备变量保存将来运算的结果
3.使用循环计算做加法运算
4.验证结果的准确性
"""
i = 1
result = 0
while i < 101:
    result += i
    i += 1
print(result)

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-8Jwicj5K-1665503723687)(python学习.assets/image-20220924115732083.png)]

1.1.2 1-100偶数累加和
#法一:
"""
1.准备运算数据1-100的偶数,自增为2
2.准备变量储存运算结果
3.使用循环做加法运算
4.验证结果的准确性
"""
i = 0
result = 0
while i < 101:
    result += i
    i += 2
print(result)
法二:
"""
1.运用if语句判断1-100的偶数
2.准备变量存储最后计算的结果
3.运用循环做累加运算,i++
"""
i = 1
result = 0
while i <101:
    if i % 2 == 0:
        result += i
    i += 1
print(result)

推荐选择第一种方法

注意:

计数器非常重要,有的程序不加计数器最后可能卡死

1.1.3 break和continue
  1. break:退出本层循环
  2. continue:提前结束本次循环,忽略后面的执行语句,但并未退出循环(如果使用continue,在continue前一定要修改计数器,不然就陷入死循环
# break 循环吃5个苹果,吃完第三个吃饱了,第4个和第5个不吃了(不执行)
i = 1
while i <= 5:
    if i == 3:
        print(f'吃到第{i}个苹果,吃饱了')
        break
    print(f'吃到第{i}个苹果')
    i += 1

# continue 循环吃5个苹果,循环吃到第三个吃出一个虫子,第三个不吃了,没吃饱吃第四个第五个
i = 1
while i <= 5:
    if i == 3:
        print(f'吃到第{i}个苹果有虫子')
        i += 1
        continue
    print(f'吃第{i}个苹果')
    i += 1
1.1.4while循环嵌套
while 条件1 :
	条件1成立执行的语句
    ......
    while 条件2:
        条件2成立执行的语句
        ......

两层循环就需要两个循环的计数器

"""
1.循环打印3次过过过
2.冲冲冲
3.上面是一套程序,连续执行3次
"""
i = 0
while i < 3:
    j = 0
    while j < 3:
        print("冲冲冲")
        j += 1
    print('过过过')
    print('-------------')
    i += 1
image-20220924175222917
1.1.5应用
  1. 正方形星号:(print自带输出和换行功能

    j = 0
    while j < 4:
        i = 0
        while i < 4:
            print('*', end='')
            i += 1
        print()
        j += 1
    

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-q808HLvs-1665503723688)(python学习.assets/image-20220924181412028.png)]

  2. 三角形星号:

    # 打印三角型星号,行号与每行星星个数相等
    j = 0
    while j < 4:  # 控制行号
        i = 0
        while i <= j:  # 控制个数
            print('*', end='')
            i += 1
        print()
        j += 1
    

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-D8cdBjtt-1665503723689)(python学习.assets/image-20220924182515806.png)]

  3. 九九乘法表

    # 打印三角型星号,行号与每行星星个数相等
    j = 1
    while j <= 9:  # 控制行号
        i = 1
        while i <= j:  # 控制个数
            print(f'{i}*{j}={i*j}', end='\t')
            i += 1
        print()
        j += 1
    

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-i2UDsrcq-1665503723689)(python学习.assets/image-20220924183912472.png)]

1.2for循环
1.2.1
for 临时变量 in 序列 :
    重复执行的代码1
    重复执行的代码2
    ......
  • 临时变量:自定义的

  • 序列:数据序列

"""
1.准备一个数据序列
2.书写for循环
"""
str1 = 'hahaha'
for i in 'hahaha':
    print(i)

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ZgFcCfV3-1665503723690)(python学习.assets/image-20220924195513622.png)]

1.2.2break 退出for循环
str1 = 'hahaha'
for i in 'hahaha':
    if i == 'a':
        break
    print(i)

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-PtFNvVIP-1665503723690)(python学习.assets/image-20220924232211001.png)]

1.2.3continue退出for循环
str1 = 'hahaha'
for i in 'hahaha':
    if i == 'a':
        print('遇到a不打印')
        continue
    print(i)

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-gTApzpUs-1665503723691)(python学习.assets/image-20220924232546802.png)]

1.2.4 while…else

else是指循环正常结束后执行的代码

else后的print只能在循环结束后才执行

while 条件:
    条件成立重复执行的代码
else:
    循环结束之后要执行的代码

break(循环非正常结束)后的else不执行

循环在continue控制下是正常结束循环,所以else可以正常执行

1.2.5for…else
for 临时变量 in 序列 :
    重复执行的代码1
    重复执行的代码2
    ......
else :
    循环正常结束之后要执行的代码

其中的break和continue的用法与前面所讲解的一样

2.1 pass

可以用在代码未想好的区域,执行时不会报错

2.2 range()函数(生成一个整数数列)
  1. range(stop)

    r = range(10)
    print(r)
    

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-NlkqUVch-1665503723691)(python学习.assets/image-20221004100655075.png)]

  2. range(start,stop)

  3. range(start,stop,step)

    r = range(0, 10)
    print(list(r))
    
    r = range(0,10,2)
    print(list(r))
    

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-VdS4XkAF-1665503723692)(python学习.assets/image-20221004213044413.png)]

不包含‘stop‘的数值

第六天

1.1 列表(增加、删除、插入)

不可修改

bicycles = ['trek','redline','specialized']
print(bicycles) #打印列表
print(bicycles[0]) #打印第一个列表元素
print(bicycles[0].title()) #打印第一列表元素,并使用方法title()函数
print(bicycles[-1]) #打印最后一个列表元素
message = f"My first bicycle was a{bicycle[1].title()}."
print(message) #使用列表中的值
gaibian = 'yamaha'
bicycles[0] = gaibian
print(bicycles) #修改列表中元素
bicycles.append('jieante') #在表头添加元素
print(bicycles)
bicycles.insert(0,'yadi') #插入元素,可在任何位置
print(bicycles)
del bicycles[-1] #1.删除列表中的元素,条件是知道其索引
print(bicycles)
bicycles.pop() #2.删除列表末尾的元素
print(bicycles)
print(poped_bicycles)
bicycles.pop(0) #3.删除列表中任意位置的元素,并弹出,被弹出后元素就不在列表中
print(bicycles)
bicycles.remove('yadi') #4.根据具体的值删除,后面可以同.pop()一样进行引用类似弹出
print(bicycles)
1.2 列表的排序
cars =['bmw','audi','toyota','subaru']
cars.sort() #给列表按字母顺序排序
print(cars)
cars.sorted() #给列表临时排序
print(cars)

基础复习(斯坦福公开课)

斯坦福CS131基础复习

  1. 列表切片(:后的值不取)列表可以修改,元组不可以修改

    nums = [1,2,3,4,5] # range is a built-in function that creates a list of integers
    print(nums) # Prints "[0, 1, 2, 3, 4]"
    print(nums[2:4]) # Get a slice from index 2 to 4 (exclusive); prints "[2, 3]"
    print(nums[2:]) # Get a slice from index 2 to the end; prints "[2, 3, 4]"
    print(nums[:2]) # Get a slice from the start to index 2 (exclusive); prints "[0, 1]print(nums[:]) # Get a slice of the whole list; prints ["0, 1, 2, 3, 4]"
    print(nums[:-1]) # Slice indices can be negative; prints ["0, 1, 2, 3]"
    nums[2:4] = [8, 9] # Assign a new sublist to a slice
    print(nums) # Prints "[0, 1, 8, 8, 4]"
    
  2. 列表中循环

    # 遍历切片
    dogs = ['a', 'b', 'c']
    print('这里有两只狗:')
    for dog in dogs[:2] :
        print(dog)
    
  3. 转换原数据

    nums = [0, 1, 2, 3, 4]
    squares = []
    for x in nums:
        squares.append(x ** 2)
    print(squares)
    
    num = [0, 1 ,2 ,3 ,4]
    squars =[x ** 2 for x in num]
    print(squars)
    
  4. 列表里也可以包含条件:

    nums = [0, 1, 2, 3, 4]
    even_squares = [x ** 2 for x in nums if x % 2 == 0] #按顺序执行三句代码
    print(even_squares)
    
  5. 字典存储(键,值)信息量不受限制

n d = {'cat': 'cute', 'dog': 'furry'}  # Create a new dictionary with some data
print(d['cat'])  # Get an entry from a dictionary; prints "cute"
d['cow']= 'strong'
print(d)
print('cat' in d)
print(d['cow'])
# print(d['monkey']) #此键不在字典中
# print(d.get('fish'))字典中不存在,输出为none
print(d.get('cat'))  # 字典中存在,直接输出该键的值
del d['cow']
print(d)
print(d.get('cow', 'n/a'))  # 已经从字典中删除,所以输出为n/a

d = {'person': 2, 'cat': 4, 'spider': 8}  # 遍历字典
for animal in d:
    legs = d[animal]
    print('A %s has %d legs' % (animal, legs))
  1. 集合
    (是无序的)
animals = {'cat', 'dog'}
animals.add('fish') # Add an element to a set
print('fish' in animals)
print(len(animals)) # Number of elements in a set;
animals.add('cat')  # 添加集合中已经有的元素,元素数量是不会改变的
print(animals)
print(len(animals))
animals.remove('cat')
print(animals)
print(len(animals))
animals = {'cat', 'dog', 'fish'}
for idx, animal in enumerate(animals):
    print('#%d: %s' % (idx + 1, animal))
  1. 元组(不可以修改)与字典结合应用
d = {(x, x + 1): x for x in range(10)} # Create a dictionary with tuple keys
t = (5, 6) # Create a tuple元组,字典中的键
print(type(t))
print(d[t])  # 输出(5,6)对应的值
print(d[(1, 2)])  # 与上一行代码一个意思,输出(1,2)对应的值
  1. 功能函数
def sign(x):
    if x > 0:
        return 'positive'
    elif x < 0:
        return 'negative'
    else:
        return 'zero'
for x in [-1, 0, 1]:
    print(sign(x))

def hello(name, loud=False):
    if loud:
        print('HELLO, %s' % name.upper())
    else:
        print('Hello, %s!' % name)
hello('Bob')
hello('Fred', loud=True)

def describe_pet(animal_type,pet_name):  # 位置实参,可以多次调用就,一定要注意实参与形参的位置顺序
    print(f"\ni have a{animal_type}.")
    print(f"my {animal_type}'s name is {pet_name.title()}")
describe_pet('hamster','harry')
describe_pet(animal_type='hamster', pet_name='harry')  # 关键字实参,直接明确指出各个实参对应的形参即直接赋值

def describe_pet(animal_type='hamster',pet_name):  # 默认实参,直接给形参赋值一个
    print(f"\ni have a{animal_type}.")
    print(f"my {animal_type}'s name is {pet_name.title()}")
describe_pet('while')  # 可以直接传递一个需要的实参,默认实参已有,两个实参只需传递一个
  1. 将函数存储在模块中

    # module_name为模块,function_name为将被导入模块的函数
    moudle_name.function_name()
    from moudle_name import function_name
    from moudle_name import function_0, function_1, function_2
    from pizza import make_pizza as mp  # 编写代码的过程中,给一些可能与现有程序名称出现矛盾的或名字过长的取别名
    import pizza as p  # 给模块指定别名
    from pizza import *  # *意为导入模块中的所有函数
    
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值