Python学习笔记Day01~03 - 基础语法

基础语法

1.数据类型

  • string

    name.capitalize() # 句首字母大写
    name.count('o') # 计数
    name.center(50, '-') # 居中
    name.endswith('ng') # 结尾
    name.startswith('my') # 开头
    name.find('Long')

    name.lower() # 小写
    name.swapcase() # 大小写转换
    name.title() # 句首字母大写

    '+'.join(['1', '2', '3']) # 连接符
    name.lstrip() # 去左边空格或回车
    name.strip() # 去空格和回车
    name.split('n', 1) # 分割提取,后为提取个数-1
    name.rsplit('n') # 分割提取

    p = str.maketrans('abcdef', '123456') # 替换加密方法
    name.translate(p)
    name.replace('m', 'M', 1) # 替换

    判断

    name.isalnum() # 阿拉伯字符或数字
    name.isalpha() # 英文字符
    name.isdigit() # 整数
    name.isdecimal() # 十进制
    name.islower() # 小写
    name.isidentifier() # 判读是不是一个合法的标识符
    name.isnumeric()
    name.istitle()
    name.isprintable() # tty file ,drive file
    name.isupper()

    name.expandtabs(tabsize=30)
    name[name.find("name"):]
    name.format(name='alex', year=23)
    name.format_map({'name': 'alex', 'year': 12})

    name.ljust(50, '*')
    name.rjust(50, '-')

    'alex lil'.rfind('l')
    '1+2\n+3+4'.splitlines()
    'lex li'.zfill(50)

2.for,while,if

3.list,dict,set,tuple

  • list

    列表切片

    names[0👎2] # 含首不含尾
    names[::2]
    names[:]

    range(1,10,2) # 自动数字列表

    for i in names:
    print(i)

    import copy
    name2 = copy.deepcopy(names) # 深拷贝

    names.append("LeiHaidong") # 追加
    names.insert(1, "ChenRonghua") # 插入

    names.remove("ChenRonghua") # 删除指定值
    del names[1] # 根据索引删除
    names.pop(1) # 根据索引删除,返回值

    names.index("XieDi") # 获取索引

    names.count("ChenRonghua") # 统计某个元素在列表中出现的次数
    names.clear() # 清空列表
    names.reverse() # 反转列表
    names.sort() # 对原列表进行排序
    names.extend(names2) # 合并列表,追加到结尾

http://www.runoob.com/python3/python3-list.html

  • dict

    info = {'1': 2, '2': 3, '3': 4}
    info['1'] # 查找,没有则报错
    info.get('2') # 查找,没有则返回None

    info.values() # 取所有值
    info.keys() # 取所有key
    info.items() # 取key和value
    info.setdefault('1', 1) # 有则不变,无则替换
    info['5']=info.pop('1') # 修改键,删除原来键并将值赋给新键

    info.update(date) # 合并字典,添加元素

    for i in info: # 循环 i为key
    print(i, info[i])

  • set

    重复key自动过滤,无序

    set1 = set((1, 2, 45, 5, 5, 1))
    set2 = {1, 2, 5, 45}
    # set的关系测试、
    set3 = set1 & set2 # 交集 &
    set1.intersection(set2) # 交集 &
    set1.union(set2) # 并集 |
    set1.difference(set2) # 差集 -
    set1.issubset(set2) # 子集
    set1.issuperset(set2) # 父集
    set1.symmetric_difference(set2) # 对称差集 ^
    set1.isdisjoint(set2) # 无交集
    set1.discard(set2) # 删除

    set1.add(999) # 添加一项 无insert
    set1.update([888, 777, 555]) # 添加多项
    set1.remove(555) # 删除,不存在报错
    set1.pop() # 随机删除并返回该值
    set1.discard(888) # 有则删除,不存在不报错

IO操作

with open('text.txt', 'w', encoding="utf-8") as f:
f.write('我王境泽就算饿死\n')

操作方式

w:以写方式打开,
a:以追加模式打开 (从 EOF 开始, 必要时创建新文件)
r+:以读写模式打开
w+:以读写模式打开 (参见 w )
a+:以读写模式打开 (参见 a )
rb:以二进制读模式打开
wb:以二进制写模式打开 (参见 w )
ab:以二进制追加模式打开 (参见 a )
rb+:以二进制读写模式打开 (参见 r+ )
wb+:以二进制读写模式打开 (参见 w+ )
ab+:以二进制读写模式打开 (参见 a+ )

f.read([size])      # size为读取的长度,以byte为单位
f.readline([size])  # 读取一行
f.readlines([size]) # 分行读取,将每一行作为一个元素放进list, size是表示读取内容的总长
f.write(str)       # 把str写到文件中,不自动换行
f.writelines(seq)   # 把seq的内容全部写到文件中(多行一次性写入)
f.close()         # 关闭文件
f.flush()           # 实时刷新,把缓冲区的内容写入硬盘
f.fileno()          # 返回一个长整型的"文件标签"
f.isatty()          # 文件是否是一个终端设备文件(unix系统中的)
f.tell()            # 返回文件操作标记的当前位置,以文件的开头为原点
f.next()            # 返回下一行数据,并将光标移动到下一行。for … in file就是调用next()函数来实现遍历的。
f.seek(offset,whence) # 将文件操作标记移到指定位置。默认从开头来计算的,一般为正数。whence参数为0表示从头开始计算,1表示以当前位置为原点计算,2表示以文件末尾为原点进行计算
# 需要注意,如果文件以a或a+的模式打开,每次进行写操作时,文件操作标记会自动返回到文件末尾。
f.truncate([size])  # 把文件裁成规定的大小,默认的是裁到当前文件操作标记的位置。如果size比文件的大小还要大,依据系统的不同可能是不改变文件,也可能是用0把文件补到相应的大小,也可能是以一些随机的内容加上去。

http://www.runoob.com/python3/python3-inputoutput.html

格式化输出/交互

  • 第一种%s

    info = '''
    -------- info of %s -----
    Name:%s
    Age:%d
    Job:%s
    Salary:%s
    ''' % (name, name, age, job, salary)

  • 第二种.format 指定key

    info2 = '''
    -------- info of {_name} -----
    Name:{_name}
    Age:{_age}
    Job:{_job}
    Salary:{_salary}
    '''.format(_name=name,
    _age=age,
    _job=job,
    _salary=salary)

  • 第三种.format 按顺序

    info3 = '''
    -------- info of {0} -----
    Name:{0}
    Age:{1}
    Job:{2}
    Salary:{3}
    '''.format(name, age, job, salary)
    print(info3)

函数的参数与调用

test(y=2,x=1) # 关键字调用:与形参顺序无关
test(1,2) # 位置参数调用:必须与形参一一对应
test(3, z=2, y=6) # 关键字调用必须在位置调用之后

  • *args:接受N个位置参数,转换成元组形式

    def test1(x, *args):
    print(x)
    print(args)

    test1(1, 2, 3, 4, 5, 6, 7) # 按顺序赋值, 1传给x,其他以元组传给args
    test(
    [1, 2, 4, 5, 5]) # args=tuple([1,2,3,4,5])

  • **kwargs:接受N个关键字参数,转换成字典的方式

    def test4(name, age=18, *args, **kwargs):
    print(name)
    print(age)
    print(args)
    print(kwargs)

    test4('alex', age=34, sex='m', hobby='tesla')

进度条输出

import sys,time

for i in range(20):
sys.stdout.write("#")
sys.stdout.flush()
time.sleep(0.1)

作业

作业1:博客

作业2:编写登录接口

输入用户名密码
输入正确后显示欢迎界面
输错三次锁定

作业3:多级菜单

三级菜单
可依次选择进入各子菜单
需要列表、字典知识点

作业4:购物车

用户入口:
1.txt.商品信息存在文件里
2.用户记录保存在文件里
商家入口:
1.txt.添加商品
2.修改商品名称

posted @ 2019-03-31 18:17  Jerome12138  阅读(370)  评论(0)    收藏  举报