2019年 8月6日 日报

(一) 今日进展及明日计划

今日进展:
1.继续看视频过python的基本语法.

存在的问题:
1.这两天把python的大部分语法都过了一遍,只剩下类那一部分了,文件操作那一部分还不是很清楚,得再学习学习.

明日计划:
1.把剩下的python语法过完,然后做下练习.

(二) 具体进展情况

1. 过一遍python的语法

(6) 字典的核心操作

# 键值可以是数值、列表、字符串
z_value = [1,2,3]
z={}
z['one'] = z_value
print(z)
z['piece'] = 3
print(z)
z['luffy'] = 'abc'
print(z)
# 字典的嵌套
z2 = {}
d1 = {'one':123,'piece':456}
d2 = {'one2':789,'piece':123}
z2['test1'] = d1
z2['test2'] = d2
print(z2)
# 字典的另外一种表示方法,不推荐
z3 = dict([('one',123),('piece',456)])
print(z3)
# 改变键值
z4 = {'one':123,'piece':456}
z4['one'] += 1
print(z4)
# get方法
z5 = {'one':123,'piece':456}
print(z5.get('one')) # get方法1
print(z5['one']) # get方法2
# get字典中没有的值
print(z5.get('ONE','木有')) # 有就输出,没有就打印出后面的
# print(z5['END']) # 没用的,会报错
# 弹出(弹出之后就没了)
z6 = {'one':123,'piece':456}
print(z6)
z6.pop('one')
print(z6)
# 删除
del z6['piece']
print(z6)
# 更新及添加
z7 = {'one':123,'piece':456}
z8 = {'one':789,'python':888}
z7.update(z8)
print(z7)
# 判断键是否在字典中
z9 = {'one':123,'piece':456}
print('one' in z9)
print('one' not in z9)
print('luffy'in z9)
# 属性调用
z9 = {'one':123,'piece':456}
print(z9.keys())
print(z9.values())
print(z9.items())

在这里插入图片描述

(7) Set结构

# 集合set,不重复
z = [123,123,456,789]
z = set(z)
print(z)
# 集合构造
z1 = set() # 构造方法1
print(type(z1))
z2 = set([123,123,456,456,789,789]) # 构造方法2
print(z2)
z3 = {1,1,1,3,4} # 构造方法3( 有key-value对是字典,否则是集合)
print(z3)
# 集合的操作
a = {1,2,3,4,5}
b = {3,4,5,6,7}
# 并集
print(a.union(b))
print(b.union(a))
print(a | b)
# 交集
print(a.intersection(b))
print(a & b)
# 集合的差异 = 减法
print(a.difference(b)) # a有b没有的元素
print(a-b)
print(b.difference(a)) # b有a没有的元素
print(b-a)
# 包含
a1 = {1,2,3,4,5,6}
b1 = {2,3,4}
print(b1.issubset(a1)) # 判断b1是否是a1的子集
print(b1<=a1)
print(a1.issubset(b1)) # 判断a1是否是b1的子集
print(a1<=b1)
print(a1<=a1)
# 集合的添加
a2 = {1,2,3}
a2.add(4)
print(a2)
a2.update([5,6,7]) # 往集合里添加新的元素
print(a2)
# 集合的删减
a2.remove(1) # ()里的是元素,列表也是这样,但不能为空
print(a2)
# 弹出,只能挨个弹出,从第一个开始弹(列表从后面弹,集合从前面弹)
a2.pop()
print(a2)

在这里插入图片描述

(8) 赋值机制


z = 1000
y = z
print(id(z))
print(id(y))
print(z is y)
print(z is not y)
y = 1001
print(id(y))
# 我这里相同赋值对应的id是一样的,而up的却是不同的
# up说较大的数值不同,而较小的数值相同,而我都一样
m = 1000000000000000000
n = 1000000000000000000
print(id(m))
print(id(n))

在这里插入图片描述

(9) 判断结构

#判断结构
n = 100
if n > 50:
    print('OK')   # 4空格=1个tab

在这里插入图片描述

n = 100
if n > 200:
    print('OK')   # 4空格=1个tab
print('test')

在这里插入图片描述

n = 100
if n >200:
    print('200')
elif n < 100:
    print('100')
else:
    print('100-200')

在这里插入图片描述

n = [123,456,789]
if 123 in n:
    print('OK')

在这里插入图片描述

n = {'one':123,'piece':456}
if 'one' in n:
    print('OK')

在这里插入图片描述

(10) 循环结构

# 循环结构
# while循环
n = 0
while n < 10:
    print(n)
    n += 1

在这里插入图片描述

N = set(['海','贼','王'])
while N:
    n = N.pop() # 只要集合 N 中不为空就把元素弹出,n可能是乱序的
    print(n)

在这里插入图片描述
在这里插入图片描述

# for循坏
A = set(['海','贼','王'])
for name in A:
    print(name)   # 遍历,把值给name,也可以不是name哈,然后打印

在这里插入图片描述
在这里插入图片描述

for i in range(10):
    print(i)

在这里插入图片描述

A = [1,2,3,4,5,6,7,8,9]
for i in range(3):     # 从0 开始共取3个数出来
    # print(i)
    print(A[i])

在这里插入图片描述

A = [1,2,3,4,5,6,7,8,9]
for i in range(len(A)):     # 用len保证全部取到
    # print(i)
    print(A[i])

在这里插入图片描述

A = [1,2,3,4,5,6,7,8,9]
for i in A:
    if i % 2 == 0:
        print(i)
    else:
        continue  # for循环进入下一次
    print(i)

在这里插入图片描述


A = [2,1,3,4,5,6,7,8,9]
for i in A:
    if i % 2 == 0:
        print(i)
    else:
        break  # 循环结束
    print(i)

在这里插入图片描述

(11) 函数定义

a = 10
b = 20
print(a+b)

# 封装到函数
def print_value():
    print('a =',a)
    print('b =', b)
    print('c =', c)
# # 调用函数
a = 10
b = 20
c = 30
print_value()

在这里插入图片描述

def add_ab(a,b):
    print('sum =',a+b)

add_ab(10,20)
add_ab(140,20)

在这里插入图片描述

def add_ab(a,b):
    return(a+b)

print(add_ab(1,3))

在这里插入图片描述


def add_ab(a=1,b=3): # 给默认值
    return(a+b)

print(add_ab()) # 不写就按默认值
print(add_ab(2,5)) # 写了就按写了的值

在这里插入图片描述

def add_number(a,*args): # 传进来的参数个数不定
    for i in args:
        a += i
    return a

print(add_number(1,2,3))

在这里插入图片描述

def add_number(a,**kwargs): # 传进来的参数是key--value形式的
    for key,value in kwargs.items():
        print(key,value)

print(add_number(1,x=2,y=3))

在这里插入图片描述

!!!: 这里最后的None不知道怎么一回事儿

def add_number(a,*args): # 传进来的参数个数不定
    b = 0
    for i in args:
        a += i
        b += a
    return a,b

a,b = add_number(2,2,3)  # 这个函数的返回值原本就两个:a与b
print(a,b)

在这里插入图片描述

(12) 模块与包

DEMO2.py

# 脚本=包
# %%writefile.zzy.py
x = 10
def zzy_add(zzy_list):
    zzy_sum = 0
    for i in range(len(zzy_list)):
        zzy_sum += zzy_list[i]
    return zzy_sum

zzy_list = [1,2,3,4,5,6]
print(zzy_add(zzy_list))

DEMO3.py (调用包DEMO2.py)

import DEMO2
# print(DEMO2)
print(DEMO2.x)
print(DEMO2.zzy_list)
zzy_list = [10,11]
print(DEMO2.zzy_add(zzy_list))

import DEMO2 as zzy # 别名
print(zzy.x)
zzy_list = [1,2,3]
print(zzy.zzy_add(zzy_list))

from DEMO2 import zzy_add,x # 导入指定函数,就不必加‘.’了
print(x)
print(zzy_add(zzy_list))

from DEMO2 import *  # 将包中的函数全部导入
print(x)
print(zzy_add(zzy_list))

import os
# os.remove('DEMO4.py') # 删工程中的.py文件
print(os.path.abspath('.')) # 调系统路径信息

在这里插入图片描述

(13) 异常处理模块

math模块使用方法:https://blog.csdn.net/knidly/article/details/80243829

import math
for i in range(10):
    input_number = input('write a number')
    if input_number == 'q':
        break
    result = math.log10(float(input_number))
    print(result)

在这里插入图片描述

import math
for i in range(10):
    try: # 捕捉异常
        input_number = input('write a number')
        if input_number == 'q':
            break
        result = math.log10(float(input_number))
        print(result)
    except ValueError: # 提示出现异常
        print('ValueError:input_must>0') # 提示出现异常
        # break # 出现异常直接退出

在这里插入图片描述

import math
for i in range(10):
    try: # 捕捉异常
        input_number = input('write a number')
        if input_number == 'q':
            break
        result = math.log10(float(input_number))
        print(result)
    except ValueError: # 提示出现异常
        # print('ValueError:input_must>0') # 提示出现异常
        break # 出现异常直接退出

在这里插入图片描述

import math
for i in range(10):
    try: # 捕捉异常
        input_number = input('write a number')
        if input_number == 'q':
            break
        result = 1/math.log10(float(input_number))
        print(result)
    except ValueError: # 提示出现异常
        # print('ValueError:input_must>0') # 提示出现异常
        break # 出现异常直接退出

在这里插入图片描述

import math
for i in range(10):
    try: # 捕捉异常
        input_number = input('write a number')
        if input_number == 'q':
            break
        result = 1/math.log10(float(input_number))
        print(result)
    except Exception: # 提示出现异常,任何异常
        print('ValueError:input_must>0') # 提示出现异常
        # break # 出现异常直接退出

在这里插入图片描述

这里输入‘q’不清楚为啥没有退出 write a number后面不能加空格

import math
for i in range(10):
    try: # 捕捉异常
        input_number = input('write a number')
        if input_number == 'q':
            break
        result = 1/math.log10(float(input_number))
        print(result)
    except ValueError: # 提示出现异常,任何异常
        print('ValueError:input_must>0') # 提示出现异常
        # break # 出现异常直接退出
    except ZeroDivisionError: # 提示出现异常,任何异常
        print('ZeroError:num_must!=0') # 提示出现异常
        # break # 出现异常直接退出
    except Exception:
        print('unknow error')

在这里插入图片描述

# 自定义异常
class zzyError(ValueError):
    pass
cur_list = ['a','b','c']
while True:
    cur_input = input()
    if cur_input not in cur_list:
        raise zzyError('invalid input: %s' %cur_input) #抛出异常,程序终止

在这里插入图片描述

try:
    1/0
# except:
#     print('==0')
finally:
    print('finally')

在这里插入图片描述

try:
    1/0
except:
    print('==0')
finally:
    print('finally')

在这里插入图片描述

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值