当前位置: 移动技术网 > IT编程>脚本编程>Python > Day6和Day7

Day6和Day7

2020年07月30日  | 移动技术网IT编程  | 我要评论
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)常用内置方法
在这里插入图片描述

第一题:
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

如您对本文有疑问或者有任何想说的,请点击进行留言回复,万千网友为您解惑!

相关文章:

验证码:
移动技术网