21-8-13学习内容

昨日学习内容回顾

三大逻辑运算符

1.逻辑运算符
and 和
连接的多个条件必须同时满足结果,否则就是不成立

print (1<2 and 2>1 and 3<9)
# True

or 或

连接的多个条件只要满足一个即可。

print(1>2 or 5>1# True

not 对条件取反值
print(not True)

2.成员运算符 in
用来判断某个具体数据是否在一个整体内部

name_list=['aaa','bbb','ccc']
guess_name=input('name:')
print(guess_name in name_list )
# aaa True
# 111 false

也可以运用not

print(guess_name not in name_list )

3.身份运算符  id()

用来寻找 数据变量值存在于内存的内存地址。

# 两个变量值相等,id不一定相同
# id值相同,两个变量值一定相同。
==用来表示id相同,=指的是赋值内容

流程控制:

指的是执行程序的流程主要分为三种结构

1:顺序结构 指从上往下执行的代码叫做顺序结构

name=456
print(456)

2:分支结构 根据不同的执行条件执行不同的流程

  age='18'
    age=input('输入你的年龄')
    if age>'18':
        print('成人')
    elif age<'18':
        print('未成年')

# 在Python中,我们通过代码缩进的来表示从属关系:
# 如果上面的代码没有缩进 下面的代码缩进了 就表示下面的代码是属于上面的代码,下面的代码是否执行,就要取决于上面的代码。
# 通常首行缩进4个字符,属于同一个从属关系的代码必须保持相同的缩进量。如果上一行代码的结尾出现了: 那么下一行代码一定要缩进

# 不是所有的代码都能用有子代码。

3:while 语法结构 条件成立之后执行的循环体代码

time=1
while True:
    if time>3:
        print('机会用完')
        break
    age=(input('输入你的年龄 三次机会'))
    age=(int(age))
    if age >18:
        print('猜大了')
        time+=1
    elif age<18:
        print('猜小了')
        time+=1
    else:
        print('猜对了')
        break

 

---------------------------------------------------------------

今日内容概要

  • 循环结构之for循环

  • 数据类型的内置方法

  • 字符编码

  • 文件操作(代码操作文件读写)

for循环

name_list = ['jason', 'tony', 'kevin', 'jerry']
for name in name_list:
    print(name)

# 语法注释:

for 适合用于循环取值方面,

for 变量名 in 可迭代取值对象(字典,列表,元组等。)

for 循环不需要添加结束条件 会随着取值完毕自动结束。

  当值没有明确的类别时,可以取i ,k,j, item等。

eg:
res=‘hello Python’ for i in res: print(i)

 

 

 # for循环字符串会将字符串里面的单个字符赋值给变量名。

 

for循环应用于字典:

dict= {'name':'shw','hobby':'game','age':'25'}
for k in dict:
print(k)

 

 

 

 # for 循环字典只会取出字典的k值,无法取出v值

 

# 容器类型:内部可以存放多个元素数据的类型都可以称之为容器类型,如列表 字典 元组 集合。

在此基础上还可以对字符串进行循环取值。

range用法:
for
i in range(5): print(i) # 一个参数,默认为0-4 顾头不顾尾。
for i in range(0,5):
print (i) # 两个参数,第一个是起始位,包含在内,第二位是终止位,不包含。
for i inrange (0,250,25):
print (i)# 第三个参数指的是递增量。指定数字的间隔数。类似于产生一个等差数列。



  • 数据类型的内置方法

 # 整形 int的类型转换。

n=‘11print(int(n)) # 正确
n=‘11.11print(int(n))# 错误 无法转换11.11小数。
n=‘max’
print(int(n)) # 错误 ,数字意外无法转换。
print(bin(100))# 0b1100100
# 十进制转换成二进制。
print(oct(100))# 0o144
# 十进制转换成八进制。
print(hex(100))#0x64
# 十进制转换成16进制

# 若需其他进制抓换成十进制
print(int('0b1100100'),2print (int('0o144'),8)
print (int('0x64',16)
# 0b开头是2进制数,0o开头是8进制数,0x开头是16进制数。

"""
补充:用句点符 可以查看数据的所有方法,
数据类型.    
pycharm会自动列出该数据的所有方法。
"""

 

浮点型float:

数据类型转换。

n='11'
print(float(n)) # 11.0
n='11.11'
print(float(n)) # 11.11
n='max’
print(float(n)) # 错误不是数字类型。

字符串str的类型转换:

1:str可以将任意数据类型转换成字符串。

# 1.统计字符个数(len)
res='hello world'
print(len(res) # 11 空格也算一个字符
# 2.索引取值
res='hello world'
print(res[0])  # h
# 3.切片取值
res='hello world'
print(res[1:5])#  ello 从1的位置取到4的位置(顾头不顾尾)
# 4.步长
res='hello world'
print(res[1:8:2])# el o 从1的位置取到4的位置,每位间隔为1个
# 5.移除字符串首尾制定的字符  strip lstrip(左) rstrip(右)
name='$$max$$'
print(name.strip('$')) # max
print(name.lstrip('$')) # max$$
print(name.rstrip('$')) # $$max
# 例题:
name=input('输入你的姓名>>>').strip() # 如果条件后加了.strip括号内不加内容默认为删除空格
if name=='jason':
    print('输入成功')
else:
    print('输入错误')
# 6.按照制定的字符切割数据

res= 'max|123|read'
print(res.split('|')) # ['max','123','read']
print(res.split('|' ,maxsplit=1)) # ['max', '123|read']
print(res.rsplit('|' ,maxsplit=1)) # ['max|123', 'read']
# 7.大小写转换。
res='UT6Rd'
print(res.upper()) # UT6RD
print(res.lower()) # ut6rd
print(res.isupper()) # False
print(res.islower()) # False
print('name'.islower())# True
#8.判断字符串是否是纯数字。 可以用做程序的附加条件
print('123'.isdigit()) # true
print('11.56'.isdigit())# false
print('max123'.isdigit())# false
#9.统计某个数字出现的次数。
name='my name is max max max'
print(name.count('max')) # 3
#10.替换制定的字符。
name='my name is max max max'
print(name.replace('max','least')) # my name is least least least
print(name.replace('max','least',1))# my name is least max max 1指的是替换几个
#11.按照指定的字符拼接字符串
res=['max','shw','lalala']
print('-'.join(res)) # max-shw-lalala

列表list的类型转换:

# 只能够转for循环的数据类型。

print(list('hello world'))
# ['h', 'e', 'l', 'l', 'o', ' ', 'w', 'o', 'r', 'l', 'd']
# 1 统计元素的个数
 l1=[11,55,11.22,22]
print(len(l1)) # 4
#2 索引取值
l1=[1,0,55,'max']
print(l1[3]) # max
# 3 切片取值
l1=[1,0,55,'max'] 
print(l1[1:4]) # [0, 55, 'max'] 顾头不顾尾
# 4步长(设置间隔距离)
 l1=[1,0,55,'max']
print(l1[1:4:2]) # [0, 'max']  顾头不顾尾
# 5 添加元素
#5.1 尾部追加元素
 l1=[1,0,55,'max']
l1.append('lalala')
print(l1)  # [1, 0, 55, 'max', 'lalala']

 l1=[1,0,55,'max']
l1.append(['0111','222','33'])
print(l1) #  [1, 0, 55, 'max', ['0111', '222', '33']] #无论是什么数据类型都被认为一个元素# 5.2 指定位置插入位置
l1=[1,0,55,'max']
l1.insert(1,'[111,222])
[1, [111, 222], 0, 55, 'max'] # 1指的是位置
# 5.3 扩展列表
l1=[1,0,55,'max']
l1.extend([111,222])
print(l1) # [1, 0, 55, 'max', 111, 222]
# 6 删除元素
# 6.1通用的删除操作
l1=[1,0,55,'max']
del l1[0]
print(l1) # [0, 55, 'max']
# 6.2 弹出元素
l1=[1,0,55,'max']
name=l1.pop(3)
print(l1,name) # [1, 0, 55] max
# 6.3 删除元素
l1=[1,0,55,'max']
name=l1.remove('max')
print(l1,name) #[1, 0, 55] None

# 如何记住什么时候添加索引值或者是值
# 可以按住crtl+左键 对应操作例如‘remove’’ 如果是value就是填值 如果是index 就是填的索引值

 

 

 

 

 

#7.统计元素出现的次数
l1=[11,22,33,1,11,22,22,22]
print(l1.count(11))  # 2
#8 排序
l3 = [55, 44, 22, 33, 11, 99, 77, 88]
l3.sort()
print(l3) #[11, 22, 33, 44, 55, 77, 88, 99] 升序

l3 = [55, 44, 22, 33, 11, 99, 77, 88]
l3.sort(reverse=True)
print(l3)# [99, 88, 77, 55, 44, 33, 22, 11] 降序

#字典dict转换数据类型

#1 统计键值对个数
dict={'name':'max','age':'25','hobby':'game'}
print(len(dict)) # 3
# 2.索引取值
dict={'name':'max','age':'25','hobby':'game'}
print(dict.get('name')) # max 如果不键存在会出现none
# 3 设置值
dict={'name':'max','age':'25','hobby':'game'}
dict['name']='xam'
print(dict) # {'name': 'xam', 'age': '25', 'hobby': 'game'} 如果键存在就是修改

dict={'name':'max','age':'25','hobby':'game'}
dict['height']='180'
print(dict) # {'name': 'max', 'age': '25', 'hobby': 'game', 'height': '180'} # 如果键不存在就是新建
#4 删除值 (键值对需要是一个整体)
dict={'name':'max','age':'25','hobby':'game'}
res=dict.pop('name')
print(dict,'name') # {'age': '25', 'hobby': 'game'} name 弹出
# 5.三个小方法
dict={'name':'max','age':'25','hobby':'game'}
print(dict.keys())  # dict_keys(['name', 'age', 'hobby']) k值
print(dict.values())  # dict_values(['max', '25', 'game']) v 值
print(dict.items())   # dict_items([('name', 'max'), ('age', '25'), ('hobby', 'game')]) kv键值对

# 集合

# 集合内元素是无序的
   1.去重
        集合内不允许出现重复的元素 会自动去重
    2.关系运算
        交叉并集
            举例:共同好友 共同关注 共同点赞
# 1.求共同好友
s1={'max','jaxon','tony','jack'}
s2={'max','tim','jaxon','ada'}
print(s1&s2) # {'max', 'jaxon'}

 

 

# 2.求s1 独有的好友
s1={'max','jaxon','tony','jack'}
s2={'max','tim','jaxon','ada'}
print(s1-s2) # {'jack', 'tony'}
# 3.求s2独有好友
s1={'max','jaxon','tony','jack'}
s2={'max','tim','jaxon','ada'}
print(s2-s1) # {'ada', 'tim'}
# 4. 求两个人所有的好友
s1={'max','jaxon','tony','jack'}
s2={'max','tim','jaxon','ada'}
print(s2|s1) # {'jaxon', 'jack', 'ada', 'tony', 'max', 'tim'}
# 5.求两个各自独有的好友
s1={'max','jaxon','tony','jack'}
s2={'max','tim','jaxon','ada'}
print(s2^s1) # {'ada', 'jack', 'tim', 'tony'}
# 6. 父集 子集
s1={'max','jaxon','tony','jack'}
s2={'max','tim','jaxon','ada'}
print(s1<s2)  # False
 print(s1>s2) # False
 

----------------------------------------------------------------------------------------------------------------------

作业

1.l = [11,22,33,44,55,66,77,88,99]
将列表中大于60的存入字典k1键对应的列表中
小于60的存入字典k2键对应的列表中
d = {'k1':[],'k2':[]}

l = [11,22,33,44,55,66,77,88,99]
d = {'k1':[],'k2':[]}
for i in l:
    if i> 60:
        d['k1'].append(i)
    elif i<60:
        d['k2'].append(i)
        
print(d)

2.l = [11,22,33,22,11,22,66,55,77,99]
对列表元素进行去重

l = [11,22,33,22,11,22,66,55,77,99]
l=(set(l))
print(l)

3.关系运算
有如下两个集合,pythons是报名python课程的学员名字集合,linuxs是报名linux课程的学员名字集合
pythons={'jason','egon','kevin','ricky','gangdan','biubiu'}
linuxs={'kermit','tony','gangdan'}
1. 求出即报名python又报名linux课程的学员名字集合
2. 求出所有报名的学生名字集合
3. 求出只报名python课程的学员名字
4. 求出没有同时这两门课程的学员名字集合

#1
pythons={'jason','egon','kevin','ricky','gangdan','biubiu'}
linuxs={'kermit','tony','gangdan'}
print(pythons&linuxs)
#2
pythons={'jason','egon','kevin','ricky','gangdan','biubiu'}
linuxs={'kermit','tony','gangdan'}
print(pythons|linuxs)
# 3
pythons={'jason','egon','kevin','ricky','gangdan','biubiu'}
linuxs={'kermit','tony','gangdan'}
print(pythons-linuxs)
# 4 
pythons={'jason','egon','kevin','ricky','gangdan','biubiu'}
linuxs={'kermit','tony','gangdan'}
print(pythons^linuxs)

 

posted @ 2021-08-15 15:39  查无此人cxc  阅读(47)  评论(0编辑  收藏  举报