字符串的常用方法
判断字符串 变成‘标题’
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))