python,day05笔记

上周内容回顾

  • 数据类型

    布尔值bool
    	is_delete
        is_status
       
    元组tuple
    	t = (1,2,3,4,5)
        # 当容器类型里面只有一个元素的时候也应该将逗号加上
        
    集合set
    	s = {1,2,3,4,5,6,7,8}
    
  • 可变类型与不可变类型

    id()
    可变(列表、字典)
    	值改变内存地址不变
        
    不可变(整型、浮点型、字符串)
    	值改变内存地址肯定变
    
  • 与用户交互

    获取用户输入
    	input
        # input获取到的数据都是字符串类型
       
    输出结果
    	print
        # 可以一次性输出多个元素,逗号隔开即可
    
  • 格式化输出

    占位符:%s(可以给任意数据类型占位)、%d(只能给数字占位)
    
    'my name is %s and my age is %s'%('jason',18)
    # 字符串里面有几个占位符,后续在给数据的时候就需要有几个真实数据
    
  • 运算符

    基本算数运算符
    	+
        -
        *
        /
        //
        %
        **
     
    增量赋值
    	x += 1
        x -= 1
        x *= 1
        x /= 1
     
    链式赋值
    	a = b = c = 666
        
    交叉赋值
    	m = 10
        n = 999
    	方式1:利用中间变量
            tmp = m
            m = n
            n = tmp
        方式2:交叉赋值
            m,n = n,m
     
    解压赋值
    	l = [11,22,33]
        # 默认情况下左右两边个数一定要相等
        a,b,c = l
        # 打破限制
        a,*_,b = l
        
    逻辑运算
    	and
        	多个条件必须都成立
        or 
        	只要有一个成立
        not
        	取反操作
         
    身份运算
    	is
        	判断地址是否相等
        ==
        	判断值是否相同
        值相等内存地址可能不等
        内存地址如果相等值肯定相等
    
  • 代码的缩进

    python中利用代码的缩进来表示代码的从属关系
    并不是所有的代码都可以有子代码的权限
    
    属于同一个代码的多个子代码,子代码之间的缩进必须是相同的
    
    # 遇到冒号说明接下来的代码需要缩进
    
  • 流程控制之if判断

    固定句式
    	if 条件1:
            代码1
            代码2
        elif 条件2:
            代码1
            代码2
        elif 条件3:
            代码1
            代码2
        else:
            代码1
            代码2
    """
    哪个条件成立就走哪个下面的子代码
    其他的都不会执行
    上述这些语句只会运行一个
    """
    

今日内容概要

  • if判断结束

  • 循环结构之while循环

  • 循环结构之for循环

  • 数据类型的内置方法

  • 字符编码

    理论非常的多,结论非常的少

今日内容详细

if判断

# if的嵌套(代码的缩进以及子代码从属关系)
# 如果女人的年龄小于28岁并且是漂亮的则上去要微信
# 如果给了则去看电影吃饭逛街 然后天黑了......
age = 26
is_beautiful = True
is_success = True
if age < 28 and is_beautiful:
    print('小姐姐加个微信呗')
    # 二次判断
    if is_success:
        print('我们去吃饭看电影逛街...天黑了')
    else:
        print('打扰了')
else:
    print('不好意思认错人了')

循环结构之while循环

while true:
	username = input('username:')
	password = input('password:')
	# 判断用户名和密码是否正确
	if username == 'jason' and password == '123':
		print('登陆成功')
	else:
		print('登录失败')

#固定句式
while 条件:
	!@$!@
	!%#$%
	...

"""
当条件成立的时候会执行while子代码,子代码运行完毕之后
会再次回到条件判断处,判断条件是否成立,如果成立则继续执行
直到条件判断不成立,while循环结束
"""

# while + break
# 当用户输入错误可以反复输入,但是一旦用户输入正确则立刻结束while循环
# while True:
#    username = input('username>>>:')
#     password = input('password>>>:')
#     # 判断用户名和密码是否正确
#     if username == 'jason' and password == '123':
#         print('登录成功')
#         # 立刻结束while循环
#         break
#     else:
#         print('用户名或密码错误')
"""
break 用于结束离它最近的哪个while循环
"""


# while + continue
# 循环打印1-10
# count = 1
# while count < 11:
#     print(count)
#     count += 1

# 循环打印1-10 不包括数字7
count = 1
while count < 11:
    if count == 7:
        count += 1
        # 不打印(结束当前循环 直接开始下一次循环)
        continue
    print(count)
    count += 1
"""continue:结束离它最近的本次while循环 直接开始下一次循环"""



# while嵌套
# 用户登录功能 当用户登录成功之后进入内部循环 获取用户的指令并执行
# while True:
    username = input('username>>>:')
    password = input('password>>>:')
    # 判断用户名和密码是否正确
    if username == 'jason' and password == '123':
        print('登录成功')
        # 进入内部循环
        while True:
            cmd = input('please input your command>>>:')
            print('正在执行您的命令:%s'%cmd)
            if cmd == 'q':
                print('欢迎下次使用')
                break
        break
    else:
        print('用户名或密码错误')

'''
break 用于结束离它最近的哪个while循环
'''

# while + continue
  循环打印1-10
  count = 1
  while count < 11:
      print(count)
      count += 1
      
# 循环打印1-10 不包括数字7
count = 1
while count < 11:
	if count == 7:
	   count += 1
	   #不打印(结束当前循环 直接开始下一次循环)
	   continue
	print(count)
	count += 1
''' continue:结束离它最近的本次while循环 直接开始下一次循环'''


# while嵌套
# 用户登录功能:当用户登录成功之后进入内部循环 获取用户的指令并执行
	while True:
		username = input('username:')
		password = input('password:')
		# 判断用户名和密码是否正确
		if (username == 'jason') and (pasword == '123')
			print('登录成功')
			# 进入内部循环
			while True:
				cmd = input('please input your command:')
				print('正在执行宁的命令:%s'%cmd)
				if cmd == 'q':
					print('欢迎下次使用')
					break
			break
		else:
			print('用户名或密码错误')

for循环

for循环能够做到的事情while循环都可以实现
但是for循环比while循环语法更加的简单

# 循环打印1-10
# count = 1
# while count < 11:
#     print(count)
#     count += 1

# for循环
# for i in range(1, 11):
#     print(i)
# for i in range(11):
#     print(i)
"""
range(1,11)  会产生一个范围序列  可以直接看成是[1,2,3,4,5,6,7,8,9,10]  顾头不顾尾
range(11)    括号里面如果只有一个数字 那么开头默认从0开始
"""
l = [111, 222, 333, 444, 555, 666, 777, 888]
# while
# count = 0
# while count < 8:
#     print(l[count])
#     count += 1
# 遍历集合中的所有数据类型

# for
for num in l:
    print(num)
"""
for循环不需要你自己给结束条件,for循环内部会自动结束
"""

# s = 'hello world'
# for i in s:
#     print(i)
# 遍历字符串中的所有字符

d = {
    'username': 'jason',
    'password': 123,
    'hobby': [111, 222]
}
# for循环字典的时候只会拿到字典的key  (key : value)
for i in d:
    print(i)

数据类型的内置方法

# 整型int
# 类型转换
# res = '123'
# print(type(res))
# 将字符串转换成整型
# res = int(res)
# print(type(res))
# 转换的时候需要注意 待转换的对象必须提前符合要转的数据类型格式
# res1 = 'hello'
# res1 = int(res1)  无法转

# 浮点型
res2 = '11.11'
# res2 = int(res2)  # 无法转
res2 = float(res2)  # float识别小数点 可以转


# 字符串
s = 'hello world'
# 类型转换  所有的数据类型都可以转换成字符
# str(123)
# str(11.11)
# str([1,2,3,4,5,6])
# str({'username':'jason','password':123})

# 索引取值
# print(s[0])
# 切片取值
# print(s[0:3])  # 从索引0开始切到索引2的为止  顾头不顾尾
# 步长(默认是1  2表示隔一个取一个)
# print(s[0:3:2])
# 统计长度
# print(len(s))  # 11

# 移除字符串首尾的字符
# username = input('username>>>:').strip()
# if username == 'jason':
#     print('登录')
# else:
#     print('失败')
# 字符串开头结尾有空格可以删除 strip()

# name = '   jason   '
# print(len(name))
# 11      			空格也算长度


# name = name.strip()  				# strip()  移除字符串首尾的空格
# print(len(name))
# name1 = '&&jas&&on&&'
# print(name1.strip('&'))  			# 括号内也可以自己指定移除首尾的字符
# print(name1.lstrip('&'))  		# jas&&on&&
# print(name1.rstrip('&'))  		# &&jas&&on

# 按照指定的字符切割字符串
# name_info = 'jason|123|read|China'
# res = name_info.split('|')  # split切割之后是一个列表数据类型
# print(res)  # ['jason', '123', 'read', 'China']
# res1 = name_info.split('|', maxsplit=1)  # 从左往右切割指定个数的字符
# print(res1)  # ['jason', '123|read|China']
# res2 = name_info.rsplit('|',maxsplit=2)  # 从右往左切割指定个数的字符
# print(res2)  # ['jason|123', 'read', 'China']

# 统计某个字符出现的个数
# info = 'name n a asd asdjklj a dsa dajd  dasd'
# print(info.count('a'))  # 8

# info1 = 'jason'
# 求出字符o的索引值
# print(info1.index('o'))  # 3
"""
如果你想要知道更多的字符串方法 
你只需要在pycharm中输入str加点即可查看
"""
# 字符串转大小写
# info = 'My NAME iS JasOn'
# print(info.upper())  # MY NAME IS JASON
# print(info.lower())  # my name is jason

# 字符串的格式化输出d
# 方式1  跟占位符
# res = 'my name is {} my age is {}'
# print(res.format('jason',18))
# 方式2  指定索引 并且前后个数可以不一致
# res = 'my name is {0} my age is {1} {0}{0}{0}'
# print(res.format('jason',18))
# 方式3: 指名道姓 并且前后个数可以不一致
# res = 'my name is {name} my age is {age} {name}{name}{name}'
# print(res.format(name='jason', age=18))

# 字典类型
# 类型转换
# res = dict(([1,2],(111,222)))
# print(res)  # {1: 2, 111: 222}
d = {
    'username': 'jason',
    'password': 123,
    'hobby': [111, 222, 333]
}
# 取值
# print(d['username'])
# print(d.get('username'))
# print(d['xxx'])  			# 没有直接报错
# print(d.get('xxx'))  		# None  不会报错 返回None提示信息

# 字典k:v键值对的个数
# print(len(d))  # 3

# 修改字典  键存在则修改 键不存在则添加新的
# d.update({'username': 'jasonDSB', 'age': 18})
# print(d)

# d['username'] = 'JasonNB'  # 键存在修改
# d['age'] = 18  # 键存在修改
# print(d)  # 无则添加

# 获取字典所有key
# print(d.keys())  # dict_keys(['username', 'password', 'hobby'])
# 获取字典所有value
# print(d.values())  # dict_values(['jason', 123, [111, 222, 333]])
# 获取字典的键值对 组织成元组的形式返回
# print(d.items())  # dict_items([('username', 'jason'), ('password', 123), ('hobby', [111, 222, 333])])



# 元组
t = (1, 2, 3, 4, 5, 6)
# print(len(t))
'''元组内元素不能被修改'''
# t[0] = 111  # 报错
'''拔高题'''
# t1 = (111, 222, 333, [11, 22])
# t1[-1].append(33)
# print(t1)  # (111, 222, 333, [11, 22, 33])
"""
A 报错
B (111, 222, 333, [11, 22, 33])
C (111, 222, 333, [11, 22,], 33)
"""


# 集合
"""集合内元素必须是不可变类型"""
# s1 = {[111,222],1,2,3,4}
# print(s1)  # 报错
# 去重  集合内不可能出现相同的元素
# s1 = {1,2,2,2,2,3,4,3,4,5,6,7,6,4,2,3,4,5,6,5,4}
# print(s1)  # {1, 2, 3, 4, 5, 6, 7}
# l = ['jason', 'jason', 'egon', 'tony', 'jason']
# # 将列表转换成集合
# s1 = set(l)
# l = list(s1)
# print(l)
# ↑ 列表 集合可以相互换数据类型

# 关系运算
f1 = {'jason', 'egon', 'tony', 'tank'}
f2 = {'jason', 'egon', 'kevin', 'tom'}
# 求两者共同的好友       				 交集∩
print(f1 & f2)  # {'jason', 'egon'}
# 求两者所有的好友						并集∪
print(f1 | f2)  # {'tony', 'egon', 'tank', 'kevin', 'tom', 'jason'}
# 求用户1的独有好友						1补集
print(f1 - f2)  # {'tony', 'tank'}
# 求用户2的独有好友
print(f2 - f1)  # {'kevin', 'tom'}
posted @ 2020-11-03 00:11  zmh。  阅读(63)  评论(0)    收藏  举报