python基础--字符串的常用方法和列表

字符串的常用方法

判断字符串 变成‘标题’

In [1]: 'Hello'.istitle()
Out[1]: True
In [2]: 'hello'.istitle()
Out[2]: False

In [7]: 'heLLo'.islower()	##判断是否全部为小写
Out[7]: False
In [8]: 'heLLo'.isupper()	##判断是否全部是大写
Out[8]: False

将字符串全部变为大写

In [3]: 'hello'.upper()
Out[3]: 'HELLO'

将字符串全部变为小写

In [4]: 'heLLo'.lower()
Out[4]: 'hello'

In [5]: 'heLLo'.title()       ###变成标题
Out[5]: 'Hello'

In [6]: 'heLLo'.swapcase()			##大小写互相转换
Out[6]: 'HEllO'



"""
[[:digit:]] [[:alnum:]]
[[:upper:]] [[:lower:]]
[[:space:]]
"""

字符串的判断 练习

变量名是否合法?
1.变量名可以由字母,数字或下划线组成
2.变量名只能以字母或下划线开头

1.判断变量名的第一个元素是否为字母或下划线: s[0]
2.如果第一个元素符合条件,判断除了第一个元素的其他元素:s[1:]

for循环:依次遍历字符串的每一个元素

for i in 'hello':
	if i.isalpha():
	print(i)

1.变量名的第一个字符是否为字母或下划线
2.如果是,继续判断(4)
3.如果不是,报错,不合法
4.依次判断除了第一个字符之外的其他字符
5.判断这个字符是否为数字或下划线

while True:
	s = input('变量名:')
	if s == 'exit':
		print('欢迎下次使用')
		break
	if s[0].isalpha() or s[0] == '_':
		for i in s[1:]:
			if not(i.isalnum() or i =='_'):
				print('%s变量名不合法' %(s))
				break
		else:
			print('%s变量名合法' %(s))				
	else:
		print('变量名不合法')

在这里插入图片描述

python的一些内置方法

In [1]: min(2,4)
Out[1]: 2

In [2]: max(2,4)
Out[2]: 4

In [3]: sum(range(1,101))
Out[3]: 5050

In [4]: sum(range(2,101,2))
Out[4]: 2550

In [5]: sum(range(1,101,2))
Out[5]: 2500

#枚举:返回索引值和对应的value值
In [8]: for i,v in enumerate('hello'):
   ...:     print(str(i) + '--------->' + v)
   ...:
0--------->h
1--------->e
2--------->l
3--------->l
4--------->o


In [9]: s1 = 'abc'

In [10]: s2 = '123'

zip() 函数用于将可迭代的对象作为参数,将对象中对应的元素打包成一个个元组,然后返回由这些元组组成的列表。

如果各个迭代器的元素个数不一致,则返回列表长度与最短的对象相同,利用 * 号操作符,可以将元组解压为列表。

 In [11]: for i in zip(s1,s2):
        ...:     print(i)
        ...:
    ('a', '1')
    ('b', '2')
    ('c', '3')
    
In [12]: for i in zip(s1,s2):
    ...:     print(''.join(i))
    ...:
a1
b2
c3

In [13]: for i in zip(s1,s2):
    ...:     print('-'.join(i))
    ...:
a-1
b-2
c-3

列表的创建

列表(打了激素的数组):可以存储任意数据类型的集和

li = [1,2.2,True,'hello']
print(li,type(li))

列表里面是可以嵌套列表的

li = [1,2,3,False,'python',[1,2,3,4,5]]
print(li,type(li))

import random
li = list(range(10))
random.shuffle(li)     ###shuffle方法将列表随即排序
print(li)

列表的特性

listname = [‘http’, ‘ssh’, ‘ftp’]

索引

正向索引

print(listname[0])

反向索引

print(listname[-1])

切片
列表的反转

print(listname[::-1])

输出除了第一个之外的所有元素

print(listname[1::])

输出除了最后一个元素之外的所有元素

print(listname[:-1])

重复

print(listname * 3)

连接

listname2 = ['80','22','21']

print(listname + listname2)

成员操作符

print('80' in listname)

print('ftp' in listname)

列表里面嵌套列表

listname3=[['htp',80],['ssh',22],['http',80]]

索引

print(listname3[0][0])
print(listname3[2][1])

列表练习

输出i have fentiao,fendai,densi and fish
代码 :

 names = ['fentiao','fendai','fensi','fish']
 print('i have ' +','.join(names[:3])+' and ' +names[-1])

在这里插入图片描述

根据用于指定月份,打印该月份所属的季节。
提示: 3,4,5 春季 6,7,8 夏季 9,10,11 秋季 12, 1, 2 冬季

month = int(input('Month:'))
if month in [3,4,5]:
    print('春季')
elif month in [6,7,8]:
    print('夏季')
elif month in [9,10,11]:
    print('秋季')
else:
    print('冬季')

在这里插入图片描述

列表元素的增加

nbastar=['curry','kobe','durant']
append:追加一个元素到列表的末尾
nbastar.append('james')
print(nbastar)
['curry', 'kobe', 'durant', 'james']

#extend:追加多个元素到列表的末尾,用新列表去扩展原来的列表

nbastar.extend(['green','klay'])
print(nbastar)
['curry', 'kobe', 'durant', 'james', 'green', 'klay']

#insert:在索引位置插入元素

nbastar.insert(0,'jordan')
print(nbastar)
['jordan', 'curry', 'kobe', 'durant', 'james', 'green', 'klay']

列表元素的删除

pop:弹出列表中的一个元素,默认是最后一个

nbastar.pop()
print(nbastar)

remove:删除列表中的元素

nbastar.remove('durant')
print(nbastar)

清空列表中的元素

nbastar.clear()
print(nbastar)

del 从内存中删除列表

del nbastar
print(nbastar)

删除列表中第一个索引对应的值

del nbastar[1]
print(nbastar)

删除列表中前两个元素之外的所有值

del nbastar[2:]
print(nbastar)

列表元素的修改和查看

nbastar=['curry','kobe','durant']

通过索引,重新赋值

   nbastar[2]='jordan'
    print(nbastar)

通过切片

nbastar[:2]=['james','jordan']
print(nbastar)
nbastar=['curry', 'kobe', 'durant', 'james', 'green', 'klay']

查看元素出现的次数

print(nbastar.count('curry'))

查看指定元素的索引值(也可以指定范围)

print(nbastar.index('james'))
print(nbastar.index('green',4,8))

排序查看(按照ascii码值进行排序)

print(nbastar.sort(reverse=True))
print(nbastar)

对字符串不区分大小排序

nbastar.sort(key=str.upper)
nbastar.sort(key=str.lower)
print(nbastar)

列表练习–栈

栈的工作原理:先进后出

stack = []
info = """
    1.入栈
    2.出栈
    3.栈顶元素
    4.栈的长度
    5.栈是否为空
"""

while True:
    print(info)
    choice = input('请输入要进行操作的数字:')
    if choice == '1':
        num = input('请输入要加入的元素:')
        stack.append(num)
        print('%s元素加入成功' %num)
    elif choice == '2':
        if len(stack) == 0 :
            print('栈为空,不能出栈')
        else:
            num = stack.pop()
            print('%s出栈成功' %num)
    elif choice == '3':
        if not stack:
            print('栈为空,没有栈顶元素')
        else:
            print('栈顶元素为%s' %(stack[-1]))
    elif choice == '4':
        print(len(stack))
    elif choice == '5':
        if len(stack)==0:
            print('栈为空')
        else:
            print('栈不为空')
    elif choice == 'q':
        print('退出!')
        break
    else:
        print('请输入正确数字')

在这里插入图片描述

列表练习–队列

队列的工作原理:先进先出

"""
queue = []
info = """
    1.入队
    2.出队
    3.队头
    4.队尾
    5.队列是否为空
"""
while True:
    print(info)
    option = input('请输入要操作的数字:')
    if option == '1':
        num = input('请输入入队的元素:')
        queue.append(num)
        print('%s元素入队成功' % num)
    elif option == '2':
        if not queue:
            print('队列为空,不能出队')
        else:
            num = queue.pop(0)
            print('%s出队成功' %num)
    elif option == '3':
        if len(queue)==0:
            print('队列为空,没有队首元素')
        else:
            print('队头元素为%s' %(queue[0]))
    elif option == '4':
        if len(queue)==0:
            print('队列为空,没有队尾元素')
        else:
            li = len(queue)
            print('队尾元素为%s' %queue[li-1])
    elif option == '5':
        if len(queue)==0:
            print('队列为空')
        else:
            print('队列不为空')
    elif option == 'q':
        print('退出')
    else:
        print('请输入正确的数字')

在这里插入图片描述

列表练习–登陆程序

用户有三次尝试登陆的机会,用户名和密码分别存储在两个列表里,一一对应

users = ['user1', 'user2']
passwds = ['westos', 'redhat']
a = 0
while a < 3:
    inuser = input('请输入用户名:')
    inpasswd = input('请输入密码:')
    a += 1
    if inuser in users:
        index = users.index(inuser)
        passwd = passwds[index]
        if passwd == inpasswd:
            print('登录成功')
            break
        else:
            print('登录失败,密码错误,你还有%s次机会' % (3 - a))
    else:
        print('用户不存在')
else:
    print('你的机会用完了!')

在这里插入图片描述

列表练习–管理员登陆程序

要求:
1.后台管理员只有一个用户:admin,密码:admin
2.当管理员登录成功后,可以管理前台用户信息
3.会员信息管理包括:
1.添加会员信息
2.删除会员信息
3.查看会员信息
4.退出
“”"

print('管理员登录'.center(50,'*'))
inuser = input('用户名:')
inpasswd = input('密码:')

users = ['user1','user2']
passwds = ['123','456']
info="""
     操作目录
    1.添加会员信息
    2.删除会员信息
    3.查看会员信息
    4.退出
"""
if inuser == 'admin' and inpasswd == 'admin':
    print('登录管理界面成功'.center(50,'*'))
    print(info)
    while True:
        option = input('请输入要进行的操作:')
        if option == '1':
            print('添加会员信息:'.center(50,'*'))
            adduser = input('添加的会员名:')
            if adduser in users:
                print('会员名已经存在!')
            else:
                addpasswd = input('密码:')
                users.append(adduser)
                passwds.append(addpasswd)
                print('会员%s添加成功' %adduser)
        elif option == '2':
            print('删除会员信息:'.center(50, '*'))
            deluser = input('请输入要删除的会员名:')
            if deluser not in users:
                print('没有此会员!!')
            else:
                deluserindex=users.index(deluser)
                users.remove(deluserindex)
                passwds.pop(deluserindex)
                print('会员%s删除成功' %deluser)
        elif option == '3':
            print('查看会员信息:'.center(50, '*'))
            print('\t会员名\t密码')
            usercount = len(users)
            for i in range(len(users)):
                print('\t%s\t%s' %(users[i],passwds[i]))
        elif option == '4':
            print('退出!')
        else:
            break
            print('请输入正确的数字操作!')
else:
    print('管理员登录失败!')

在这里插入图片描述

center方法实现打印菱形

n = int(input('请输入:'))
for i in range(1, n,2):
    print(('*' * i).center(3 * n))
for i in range(n, 0, -2):
    print(('*' * i).center(3 * n))

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/m0_37206112/article/details/84503420