9.4 总结

9.4 总结

元组

  1. 元组(tuple)
        和列表是类似的
            列表是可变的有序序列;元组是不可变的有序序列
        什么时候使用元组?  数据元素确定 且不会再发生变化 就可以使用元组
        例如: 31天的月份  1 3 5 7 8 10 12
    
  2. 元组可以被获取,但是不能被修改。

元组与列表区别

  1. 元组的数据标记是(), 列表的是[]
    提高运算符优先级的时候 也是使用()

  2. 注意: 一元组[元组中有1个数据]定义的时候 元素后面必须加上逗号, 否则会识别成提高表达式优先级 就不是元组类型的

    nums = (11)
    nums1 = (11,)
    print(type(nums), type(nums1)) # <class 'int'> <class 'tuple'>
    
  3. 元组不支持被修改

    nums = [11, 23, 45, 67, 87, 29, 45]
    nums[0] = 19    # 列表可以被修改
    
    num = [1, 2, 3, 5, 6, 7, 8, 9]
    print(num[-1])   # 9
     
    nums = (11, 23, 45, 67, 87, 29, 45)
    # nums[0] = 19  # 元组不支持元素被修改的
    
    
    
    TypeError: 'tuple' object does not support item assignment
      类型错误: 元组对象不支持项赋值
    
  4. 打包赋值:当给一个变量 赋值的时候使用逗号分隔开多个数据 这个多个数据进行打包的操作 打包成元组赋值给变量

    values = 11, 23, 45, 61, 72, 38, 49
    print(type(values))  # <class 'tuple'>
    

    解包: 把一个容器中多个数据赋值给多个变量

    a, b = 11, 23
    print(a, b)
    
    for item in enumerate([12, 34, 56, 71]):
        print(item)  # (0, 12)  将位置和该位置的元素组合成元组 放在一个新的容器A中    这个A就是一个二维容器
    

字符串

  1. 字符串是容器型数据,里面的元素都是字符[长度为1的字符串]
    ‘a’ ‘b’ ’ ’ ‘0’
不可变的有序序列
  1. 字符串只能获取不能修改
s = 'hello everyone'
print(len(s))    # 14
print([2])       # [2]
print(s[0])     # h

s[0] = "H"
TypeError: 'str' object does not support item assignment
  类型错误:  'str'对象不支持项赋值
  1. 字符串的一些操作

    获取的操作
    1. 字符串数据.find(子串)
    查找子串第一次出现的位置

    s = 'hello everyone'
    pos = s.find('e')
    print(pos)  # 1
    
    1. 字符串数据.rfind(子串)
      查找子串最后一次出现的位置
    pos = s.rfind('e')
    print(pos)  # 13
    
    1. 字符串数据.count(子串)
      统计子串出现的次数
    count = s.count('e')
    print(count)    # 4
    

字符串转换的操作

  1. 转换的操作
    将字符串中的相关符号进行转换 【因为字符串不可变 产生的数据是影响不了原本的数据 都是产生的是一个新的数据】
  2. 字符串数据.upper() 将字母变大写
    字符串数据.lower() 将字母变小写
    字符串数据.swapcase() 将大写变小写 将小写变大写
    字符串数据.title() 每个单词首字母大写 【单词:没连接在一起的就视作一个新的单词】
    字符串数据.capitalize() 首字母大写 其他小写
s = 'hello everyone'
new_s = s.upper()
# print(s, new_s)
#
# new_s1 = new_s.lower()
# print(new_s1)

new_s2 = new_s.title()
# print(new_s2)  # Hello Everyone
#
new_s3 = new_s2.swapcase()
print(new_s3)
#
# new_s4 = new_s3.capitalize()
# print(new_s4)
  1. 判断的操作
    1. 是否以指定内容开头
    字符串数据.startswith(指定内容)

    1. 是否以指定内容结尾
      字符串数据.endswith(指定内容)

    2. 判断是否是纯数字
      字符串数据.isdigit()

    3. 判断字符串的内容是否为纯字母
      字符串数据.isalpha()

    4. 判断字符串的内容是否为数字或字母
      字符串数据.isalnum()

    5. 判断字符串中的字母是否为大写
      字符串数据.isupper()

    6. 判断字符串中的字母是否为小写
      字符串数据.islower()

      s = 'Hello Everyone'
      print(s.startswith('H'))
      print(s.endswith('one'))
      
      print(s.isalnum())  # False
      print(s.isalpha())  # False
      print(s[0].isupper())  # True
      print(s[-3:].islower())  # True
      
      print('123'.isdigit())
      
      print('abc12'.isdigit())
      
  2. 字符串的切割与拼接
    切割:
    字符串数据.split(切割符)
    将指定切割符为切割点 把字符串分成N份, 结果是一个列表 存储多个子串
    拼接:
    ‘拼接符’.join(容器型数据)
    使用拼接符将容器中的元素拼接在一起
    注意:容器中的元素必须是字符串类型的 底层实现的时候 使用的是 +号运算
    +在字符串中完成的字符串拼接 只能拼接字符串类型的

data = "hello my age is 18, my birthday is September 5th."
print(data.split(' '))
# ['hello', 'my', 'age', 'is', '18,', 'my', 'birthday', 'is', 'September', '5th.']

nums = [18, 34, 56, 71, 29]
# 使用+号将其拼接在一起
print('+'.join(nums))

TypeError: sequence item 0: expected str instance, int found
类型错误:   序列项0:期望的str实例,找到int
# 人家期待的是字符串 但是获取的却是整型
# 拼接之前转化成字符串

字符串的格式化

  1. 字符串格式化
    在指定宽度中居中显式 字符串.center(宽度, 占位符)
    在指定宽度中居左显式 字符串.ljust(宽度, 占位符)
    在指定宽度中居右显式 字符串.rjust(宽度, 占位符)
s = 'hello'
print(s.center(10, '*'))
print(s.ljust(10, '*'))
print(s.rjust(10, '*'))
  1. 将未知的数据格式化拼接在字符串文本中
    目的:将非字符串类型的数据与字符串类型的数据进行拼接
print('年龄' + 17)

TypeError: can only concatenate str (not "int") to str
TypeError:只能将str(不是"int")连接到str
# 只能字符串与字符串进行拼接

拼接方式

  1. 将数据转化为字符串类型

    print(‘年龄’ + str(17))

  2. 使用字符串中 % 运算符 【% 在数字运算是取余】
    先生成文本 在未知的位置使用占位进行占位,再对字符串进行%, 给占位的符号赋值
    占位符:
    %s — 可以填充任意类型的数据
    %d — 填充的是整型数据
    可以单独再进行格式化操作
    %0nd === n代表的是数字显式的宽度 不足n位 左边补充0
    %05d ====> 10 ====> 显式的时候 为 00010
    %f — 填充的浮点型数据
    可以再单独格式化
    %.nf === n代表的是保留小数的位数
    %.3f ====> 3.1415926 ===>显式为 3.142

    content = '%s年%s月有%s天' % (year, month, day)
    print(content)
    
  3. 字符串数据.format()

先生成字符串文本数据,未知数据的地方使用 {}进行占位 调用字符串的format操作 给占位符进行赋值
有几个占位符 传递就有几个值
如果对数据有特殊的格式 在{}操作
{:0nd} 按照n位填充
{:.nf} 保留n位小数

info1 = '学号为{:06d}的{}, 年龄是{}, 考试成绩为{:.1f}'.format(sid, name, age, score)

print(info1)
  1. 是方式3的简化 使用f修饰字符串

​ f修饰完字符串 可以直接在{}的位置填充对应的数据值

​ 要修饰数据 {数据:0nd} {数据:.nf}

info2 = f'学号为{sid:06d}{name}, 年龄是{age}, 考试成绩是{score:.1f}'
print(info2)

字典

  1. 存储一天温度变化记录 使用的一个列表进行存储的

    7点 9点 11点 2点 4点 6点
    为了更方便表达数据的含义,可以使用字典来进行存储
    {key:value, key:value}
    会给每一个数据设置标记, 通过标记名获取对应的数据值

    字典是使用键值对进行数据的存储,是通过键定位值的,要求键是不允许重复的, 键的内容一旦确定不允许发生变换

    字典是无序的可变序列
    无序:代表元素没有位置编号,也就是不同过下标获取数据 只能通过键获取数据值
    可变:数据值可以修改 可以增加新的键值对 删除键值对

air_temp = {'7点': 17, '9点': 20, '11点': 26, '14点': 30, '16点': 25, '18点': 22}
print(air_temp)

print(air_temp['11点'])  # 26

print(air_temp['10点'])   # KeyError: '10点'  没有就报错

# 获取数据值推荐方式

print(air_temp.get('11点'), air_temp.get('10点'))   # 26 None

# 获取键值对的个数

print(len(air_temp))  # 6

# 添加新的键值对

air_temp.setdefault('19点', 20)  # 影响的是原数据
print(air_temp)

# 移除键值对

air_temp.pop('11点')
print(air_temp)

# 修改

air_temp['19点'] = 18
print(air_temp)

# 全删
air_temp.clear()
  1. 遍历

​ 直接遍历字典 遍历的是字典中的键 [直接对字典进行成员操作 获取的是键]

air_temp = {'7点': 17, '9点': 20, '11点': 26, '14点': 30, '16点': 25, '18点': 22}

for ele in air_temp:
    print(ele, air_temp.get(ele))
    
# 等价于    
print(air_temp.keys())  # 字典中所有的键 
# dict_keys(['7点', '9点', '14点', '16点', '18点', '19点'])

for k in air_temp.keys():
    print(k)            # 也是拿出所有键
 
# 单独拿值
print(air_temp.values())  # dict_values([17, 20, 30, 25, 22, 20])
for v in air_temp.values():
    print(v)
    
# 获取字典中键值组合
print(air_temp.items())  # dict_items([('7点', 17), ('9点', 20), ('14点', 30), ('16点', 25), ('18点', 22), ('19点', 20)])

for item in air_temp.items():
    print(item)
print('============')

for k, v in air_temp.items():
    print(k, v)        # 既能拿到键,又能拿到值
    
# 修改
air_temp["19点"] = 18
print(air_temp)

词频统计

词/字符/数字 出现的个数 或者对数据进行归类
s = 'good good study day day up'
print(s)
统计每个字符出现的个数  字符-个数 ====》 使用字典类型展示数据
思路:
1.遍历字符串  获取每个字符
2.把字符出现的个数存储字典中  字符与个数的信息   【字符为键  个数为值】
把遍历到的字符作为键  个数作为值存放于字典中
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
首先,OpenSSH是一款用于安全远程登录和文件传输的软件。离线升级意味着在没有互联网连接的情况下,通过使用本地存储介质进行升级。 要进行OpenSSH的离线升级,我们需要按照以下步骤进行操作: 1. 下载升级所需的OpenSSH软件包:在可供下载的OpenSSH软件包中,选择与您当前安装版本相对应的最新版本。确保下载的软件包是正确和完整的。 2. 将下载的软件包传输到离线机器上:您可以使用U盘、DVD或其他存储介质将下载的软件包从联网机器传输到离线机器上。 3. 在离线机器上备份现有的OpenSSH配置和相关文件:在升级之前,确保备份OpenSSH的配置文件(如sshd_config)和其他相关文件。以防需要还原配置或者出现意外情况。 4. 安装升级的OpenSSH软件包:使用离线机器上的安装工具(如rpm、dpkg或者自带的安装脚本),安装下载的OpenSSH软件包。根据安装工具的要求,提供软件包的路径,然后按照提示进行安装。 5. 配置OpenSSH:在升级完成后,您可能需要手动调整新版本OpenSSH的配置文件,以使其与之前的配置相匹配。检查和更新必要的配置项,如端口号、密钥设置和访问控制等。 6. 启动新版本的OpenSSH:在完成配置后,使用相应的命令启动新安装的OpenSSH服务。确保服务已成功启动,并进行必要的测试和验证。 总结来说,OpenSSH的离线升级需要下载适当的软件包、传输到离线机器、备份配置文件、安装软件包、配置和启动新版本。通过这些步骤,您可以成功将OpenSSH升级到9.4版本,即使在没有互联网连接的环境下。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值