欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

Day6和Day7

程序员文章站 2022-06-15 12:58:23
Day6 元组(1)元组和列表类似,也可以包含多种形式的元素,但是元组创建之后不能对其进行修改。(2)创建元组元组使用小括号,也可以什么都不用,但是中间必须用逗号隔开。如果元组只包含一个元素,在元素的后边必须用逗号做标记,否则括号会被认为是运算符使用。......

Day6 元组
(1)元组和列表类似,也可以包含多种形式的元素,但是元组创建之后不能对其进行修改。
(2)创建元组
元组使用小括号,也可以什么都不用,但是中间必须用逗号隔开。如果元组只包含一个元素,在元素的后边必须用逗号做标记,否则括号会被认为是运算符使用。也可以创建多维的元组
(3)更新和删除一个元组
元组中的元素不能赋值
(4)相关操作符
连接操作符+,用来首尾拼接,重复操作符*,用复制拼接
+=和*=这种增强的赋值运算符也可以使用。
元组也可以使用标准的比较操作符(<、<=、==、!=、>=、>)
(5)其他功能
t.count( x) 返回对象x在元组中出现的次数
t.index(x) 是返回对象再元组中出现的最左边的位置,当元组中不包含x的时候,则产生ValueError的异常。
(5)解压元组
解压元组就是把元组中的元素一个一个的提取出来,一定要每个元素都要有对应的名称。
如果有很多量不需要,是可以把多个变量丢给一个变量,但是要加上 *号,但是在进行解压的时候,不能出现多个*,会报错。

第一题:
写出下面代码的执行结果和最终结果的类型,并分析为什么会出现这样的结果。
1)(1, 2)*2

 a=(1,2)*2
 print(a,type(a))
(1, 2, 1, 2) <class 'tuple'>

分析:此时是元组,*2应该同列表类似
2)(1, )*2

a=(1,)*2
print(a,type(a))

结果:(1, 1) <class 'tuple'>
分析:括号里边虽然只有一个元素,但是后边有逗号,为元组。
3)(1)*2

a=(1)*2
print(a,type(a))

结果:2 <class 'int'>
此时括号被认为是运算符,不是元组
第二题:
这个过程属于平行赋值,也属于拆包。这个赋值的过程,其实也就是拆包的过程,将元素的信息由变量接收它。但是在拆包的过程中,必须将右侧的所有信息全部拆完。所以如果没有可变参数的话,左侧的参数个数一定要等于右侧列表/元组内元素个数。平行赋值即等号左右两边的变量和值可以是多个,但是要保证数量一致。a,b=1,2即a=1,b=2
可迭代对象拆包时,怎么赋值给占位符?
在可迭代对象拆包时,使用_(单个元素),*_(连续多个元素)进行占位
Day7 字符串
基础知识
(1)字符串的创建
定义:使用固定不变的数据类型表示的,其中存放Unicode字符序列。??????这是啥?
创建:单引号或者双引号都行。但是如果在字符串内部还需要输入单引号或者双引号,就需要加转义符号或者用三引号了。
三引号""" xxxxxxx """,字符串中可以包含换行符、制表符以及其他特殊字符。
如果多行输入不用三引号,还有很多种形式,具体参考《Python程序开发指南第三版》
(2)字符串的切片与引用
切片会写成start:end 这种形式,注意在索引的时候,会包含start的元素,但是不会包括end对应的元素。和那个range一个样。
其他的索引可以从左往右,也可以从右往左。最后一个元素是-1.
(3)常用内置方法
Day6和Day7

第一题:
1)怎么批量替换字符串中的元素?
replace(old, new [, max]) 把 将字符串中的old替换成new,如果次数指定了,则替换不超过max次
2)怎么把字符串按照空格进行拆分?
split(str="", num) 不带参数默认是以空格为分隔符切片字符串,如果num参数有设置,则仅分隔num个子字符串,返回切片后的子字符串拼接的列表。
3)怎么去除字符串首位的空格?
lstrip([chars]) 截掉字符串左边的空格或指定字符。
或者使用
第二题:
实现isdigit函数

def isdigit(string):
    L=len(string)
    a=0
    for i in string:
        if (i >= '0' and i <= '9'):
            a=a+1
        else:
            print("False")
            break
        if a==L:
            print('True')
    return()

第三题:(还存在问题)

class Solution:
    def longestPalindrome(self, s: str) -> str:
        k = len(s)
        self.res = ""
        def sett(i,j):
            while i >= 0 and j < k and s[i] == s[j]:
                i -= 1
                j += 1
            if len(self.res) < j - i -1 :
                self.res = s[i+1:j]
        for i in range(k):
            sett(i,i)
            sett(i,i+1)
        return self.res

本文地址:https://blog.csdn.net/zssenen/article/details/107643848

相关标签: python 经验分享