day003|python基础回顾3

00 上节课回顾

"""
1、基本数据类型
数字类型
    int
    float
str
list:索引对应值
dict:key对应值
bool:
    1、显式的布尔值
        True
        False
        10 > 3
        'aaa' == 'aaa'
    2、隐式的布尔值
        所有数据类型的值都可以作为布尔值用
        0、空、None三类的隐式布尔值为False,其余均为True

2、基本运算符
    10 / 3
    10 // 3
    10 % 3
    10 ** 3

    x = 1
    x += 1
    x = y = z = 10
    x, y = y,x
    x, y, *_ = [1,2,3,4,5]

    > >=
    < <=
    == !=

    not
    and
    or

3、输入输出
    x = input()  # x = "xxx"
    print("%s %s\n" % (11,"aaa"),end="\n")

4、if判断
    if 条件1:
        ...
    elif 条件2:
        ...
    ...
    else:
        ...

5、while循环
    while 条件:
        ...

    结束while循环的两种方式:
        1、将条件改为False
        2、break终止本层循环

    while+else:
        else的子代码块会在循环正常结束后运行

    while+continue:
        结束本次循环,后续都不运行,直接进入下一次
"""
# 今日内容
# 1、循环嵌套练习题
# 2、for循环
# 3、基本数据类型及内置方法
#     数字类型
#     字符串

01 流程判断之for循环

# names = ['egon', 'lxx', 'xc', 'zjl']
# for i in names:
#     print(i)
#
# d = {"k1": 111, "k2": 222, "k3": 333}
# for x in d:
#     print(x, d[x])

# for:迭代循环
# 1、遍历值
# info = [["name", "egon"], ["age", 18], ["gender", "male"]]
# for x, y in info:
#     print(x, y)


# 2、range()
# l = [111, 222, 333]
# for i in l:
#     print('步骤1')
#     print('步骤2')
#     print('步骤3')

# for i in range(3):
#     print('步骤1')
#     print('步骤2')
#     print('步骤3')

# range(起始位,结束位,步长)
# range(10)  # 默认起始位为0,步长1
# range(10, 1, -1)  # 从大到小必须指定步长

# print(range(5))  # python3得到range(0,5) python2得到[0, 1, 2, 3, 4]  本质一样,但是更省内存空间


# l = [111, 222, 333, 444, 555]

# print(l[4])
# print(l[3])
# print(l[1])
# print(l[0])

# i = len(l) - 1
# while i > -1:
#     print(l[i])
#     i -= 1

# for i in range(len(l) - 1, -1, -1):
#     print(l[i])


# 3、for+enumerate
# l = [111, 222, 333, 444, 555]
# for i in enumerate(l):
#     print(i)

# 4、for+break
# for i in range(5):
#     if i == 3:
#         break
#     print(i)

# 5、for+continue
# for i in range(5):
#     if i == 3:
#         continue
#     print(i)

# 6、for+else  # 循环正常结束才会执行,否则不执行
# for i in range(5):
#     if i == 3:
#         break
#     print(i)
# else:
#     print("---------")
#
# for i in range(5):
#     if i == 3:
#         continue
#     print(i)
# else:
#     print("---------")

# 7、嵌套多层的for循环
# for i in range(3):
#     print("--------loop1------> %s" % i)
#     for j in range(5):
#         print("loop2--------> %s" % j)

02 可变与不可变类型

"""
1、可变类型(不可hsah类型)
    值改变的情况下,内存地址/id不变
    证明改变的就是原值,即可变类型
2、不可变类型(可hash类型)
    值改变的情况下,内存地址也变
    证明产生了新的值,即原值不可变
"""
# 1、可变类型的情况
x = 10
print(id(x))
x = 12
print(id(x))

# 2、不可变类型的情况
l = [111, 222]
print(id(l))
l[0] = 3333
print(id(l))

03 基本数据类型及内置方法之数字类型

# 1、整型int的基本使用
# 1.1 用途:年龄、等级、号码
# 1.2 定义方式
# age = 18  # age = int(18)
# 数据类型转换
# x = int("   103   ")  # 把纯数字组成的字符串转换成int类型(前后的空格无所谓,中间不能有空格)
# print(x, type(x))
# 1.3 常用操作及内置方法
# + - * / % > <=
# 2、总结
# 2.1 只能存一个值
# 2.2 是不可变类型


# 3、浮点型float基本使用
# 3.1 用途:身高、体重、薪资等
# 3.2 定义方式
# salary = 3.3  # salary = float(3.3)
# 数据类型转换
# x = float("   3.3    ")
# print(x, type(x))
# 3.3 常用操作及内置方法
# + - * / % > <=
# 4、总结
# 4.1 只能存一个值
# 4.2 是不可变类型
# x = 3.1
# print(id(x))
# x = 3.3
# print(id(x))


# 复数(了解)
# x = 2 + 3j
# print(x, type(x))
# print(x.real)
# print(x.imag)


# 进制
# 十进制:0~9
# 二进制:0~1
# 八进制:0~7
# 十六进制:0~9 a b c d e f

# 十进制<---二进制
# 1011
# 1*2^3 + 0*2^2 + 1*2^1 + 1*2^0
#   8   +   0   +   2   +   1   = 11
# 十进制<---八进制
# 1011
# 1*8^3 + 0*8^2 + 1*8^1 + 1*8^0
#  512  +   0   +   8   +   1   = 521
# 十进制<---十六进制
# 1011
# 1*16^3 + 0*16^2 + 1*16^1 + 1*16^0
#  4096  +    0   +   16   +   1   = 4113

# 十进制--->二进制(除二取余)
# 11
# 11/2=5-1
# 5/2=2-1
# 2/2=1-0
# 最终得到1011

# 十进制--->八进制(除八取余)
# 十进制--->十六进制(除十六取余)

print(bin(11))  # 十进制转二进制
print(oct(11))  # 十进制转八进制
print(hex(11))  # 十进制转十六进制

print(int("11", 2))   # 二进制转十进制
print(int("11", 8))   # 八进制转十进制
print(int("11", 16))  # 十六进制转十进制

04 基本数据类型及内置方法之字符串类型

# 1、字符串str的基本使用
# 1.1 用途:记录一些描述性质的内容,如国籍、名字、一段话等

# 1.2 定义方式
# msg = "abc"  # msg = str("abc")
# 数据类型转换
# res = str(111)  # 可以把所有类型转换成字符串类型
# print(res, type(res))

# 1.3 常用操作及内置方法
# 按索引取值(正向取+反向取):只能取
# msg = "hello world"
# print(msg[0])
# msg[0] = "H"  # 不能改

# 切片(顾头不顾尾,步长)
# msg = "hello world"
# print(msg[3:5])
# print(msg[3:8:2])
# print(msg[-1:2:-2])
# print(msg[::2])
# print(msg[-1::-1])

# 长度len:统计的是字符个数
# msg = "h e你"
# print(len(msg))  # 4(一个空格、一格中文字符都是一个字符)

# 成员运算in和not in
# msg = "hello world"
# print("he" in msg)          # True
# print("d" in msg)           # True
# print("hd" in msg)          # False
# print("hd" not in msg)      # True

# 移除空白strip(只会移除两边,不会移除内部)
# name = "          cc c       "
# print(name.strip())       # cc c
# print(name)               #           cc c
# name = "**********ccc***********"
# print(name.strip("*"))      # ccc
# x = "*-/+()=abc*(-)/*"
# print(x.strip("-+*/(=)"))   # abc
#
# name = input("username>>>:").strip()
# pwd = input("password>>>:").strip()
# if name == "ccc" and pwd == "123":
#     print("ok")
# else:
#     print("error")

# 切分split
# info = "root: 123: 2: 0"
# res = info.split(":", 1)
# print(res[0])
# print(res)

# 循环
# msg = "hello"
# for i in msg:
#     print(i)


# 2、总结
# 2.1 只存一个值
# 2.2 是有序的
# 2.3 不可变

05 test

# 打印九九乘法表
# for i in range(1, 10):
#     for j in range(1, i + 1):
#         print("%s*%s=%s" % (i, j, i * j), end=' ')
#     print()

# 打印金字塔
# 最高层 = 5
# 空格数 = max_level - current_level
# *号数 = 2 * current_level - 1
# max_level = 5
# for current_level in range(max_level):
#     for i in range(max_level - current_level):
#         print(' ', end='')
#     for j in range(2 * current_level - 1):
#         print('*', end='')
#     print()
posted @ 2020-11-19 22:23  drrug  阅读(102)  评论(0编辑  收藏  举报