Day - 03
01_字符串常用方法_大小写
判断字符串 变成‘标题’
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:]]
“”"
02_字符串判断练习_变量名是否合法
变量名是否合法?
1.变量名可以由字母,数字或下划线组成
2.变量名只能以字母或下划线开头
s = ‘[email protected]’
1.判断变量名的第一个元素是否为字母或下划线: s[0]
2.如果第一个元素符合条件,判断除了第一个元素的其他元素:s[1:]
for循环:依次遍历字符串的每一个元素
for i in 'hello':
if i.isalpha():
print(i)
1.变量名的第一个字符是否为字母或下划线
2.如果是,继续判断(4)
3.如果不是,报错,不合法
4.依次判断除了第一个字符之外的其他字符
5.判断这个字符是否为数字或下划线
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'
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
“”"
列表的创建
“”"
数值类型:int float (long)
布尔型
字符串
列表(list)
“”"
数组:存储同一种数据类型的集和 scores=[1,2,33,44]
列表(打了激素的数组):可以存储任意数据类型的集和
#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) #随机打乱列表
print(li)
列表的特性
service = ['http','ssh','ftp']
#索引
#正向索引
print(service[0])
#反向索引
print(service[-1])
#切片
print(service[::-1]) # 列表的反转
print(service[1::]) # 除了第一个之外的其他元素
print(service[:-1]) # 除了最后一个之外的其他元素
#重复
print(service * 3)
#连接
service1 = ['mysql','firewalld']
print(service + service1)
#成员操作符
print('firewalld' in service)
print('ftp' in service)
print('firewalld' not in service)
print('ftp' not in service)
#列表里面嵌套列表
service2 = [['http',80],['ssh',22],['ftp',21]]
#索引
print(service2[0][0])
print(service2[-1][1])
列表练习01
根据用于指定月份,打印该月份所属的季节。
提示: 3,4,5 春季 6,7,8 夏季 9,10,11 秋季 12, 1, 2 冬季
列表练习02
假设有下面这样的列表:
names = [‘fentiao’,‘fendai’,‘fensi’,‘fish’]
输出的结果为:‘I have fentiao,fendai,fensi and fish’
在这里插入图片描述
列表元素的增加
service = ['http', 'ssh', 'ftp']
#1.
#print(service + ['firewalld'])
append:追加,追加一个元素到列表中
service.append('firewalld')
print(service)
extend:拉伸,追加多个元素到列表中
service.extend(['hello','python'])
print(service)
insert:在索引位置插入元素
service.insert(0,'firewalld')
print(service)
列表元素的删除
"""
In [1]: li = [1,2,3,4]
In [2]: li.pop()
Out[2]: 4
In [3]: li.pop(0)
Out[3]: 1
"""
service = ['http', 'ssh', 'ftp']
#remove
#service.remove('ftp')
#print(service)
#service.remove('https')
#print(service)
claer:清空列表里面的所有元素
#service.clear()
#print(service)
del(python关键字) 从内存中删除列表
#del service
#print(service)
#print('删除列表第一个索引对应的值:',end='')
#del service[1]
#print(service)
print('删除前两个元素之外的其他元素:',end='')
del service[2:]
print(service)
列表元素的修改
service = ['ftp','http', 'ssh', 'ftp']
通过索引,重新赋值
service[0] = 'mysql'
print(service)
通过slice(切片)
service[:2] = ['mysql','firewalld']
print(service)
列表元素的查看
service = ['ftp','http', 'ssh', 'ftp','ssh','ssh']
查看元素出现的次数
print(service.count('ftp'))
查看制定元素的索引值(也可以指定范围)
print(service.index('ssh'))
print(service.index('ssh',4,8))
排序查看(按照ascii码进行排序)
print(service.sort(reverse=True))
print(service)
对字符串排序不区分大小写
phones = ['alice','bob','harry','Borry']
phones.sort(key=str.lower)
phones.sort(key=str.upper)
print(phones)
列表练习
“”"
stack = [1,2,3,4]
栈的工作原理:先进后出
入栈
出栈
栈顶元素
栈的长度
栈是否为空
队列的工作原理:先进先出
入队
出队
队头
队尾
队列是否为空
显示队列元素
“”"
stack = [ ]
info = """
栈操作
1.入栈
2.出栈
3.栈顶元素
4.栈的长度
5.栈是否为空
"""
while True:
print(info)
choice = input('请输入选择:')
if choice == '1':
item = input('入栈元素:')
stack.append(item)
print('元素%s入栈成功' %(item))
elif choice == '2':
# 先判断栈是否为空
if not stack:
print('栈为空,不能出栈')
else:
item = stack.pop()
print('元素%s出栈成功' %(item))
elif choice == '3':
if len(stack) == 0:
print('栈为空,无栈顶元素')
else:
print('栈顶元素为%s' %(stack[-1]))
elif choice == '4':
print('栈的长度为%s' %(len(stack)))
elif choice == '5':
if len(stack) == 0:
print('栈为空')
else:
print('栈不为空')
elif choice == 'q':
print('欢迎下次使用')
break
else:
print('请输入正确的选择')
用户管理系统
“”"
1). 系统里面有多个用户, 用户信息目前保存在列表里面;
users = [‘root’, ‘westos’]
passwds = [‘123’, ‘456’]
2). 用户登陆(判断用户登陆是否成功):
1). 判断用户是否存在?(inuser in users)
2). 如果存在:
1). 判断用户密码是否正确?
(先找出用户对应的索引值, 根据passwds[索引值拿出该用户的密码)
如果正确: 登陆成功, 退出循环;
如果密码不正确, 重新登陆, 总共有三次登陆机会
3). 如果不存在:
重新登陆, 总共有三次登陆机会
“”"
trycount = 0
while trycount < 3:
inuser = input('用户名:')
inpasswd = input('密码:')
# 尝试次数加1
trycount += 1
if inuser in users:
# 判断用户密码是否正确
index = users.index(inuser)
passwd = passwds[index]
if inpasswd == passwd:
print('%s登陆成功' % (inuser))
break
else:
print('%s登陆失败:密码错误' % (inuser))
else:
print('用户%s不存在' % (inuser))
else:
print('已经超过3次机会了~')
用户管理系统02
- 后台管理员只有一个用户: admin, 密码: admin
- 当管理员登陆成功后, 可以管理前台会员信息.
- 会员信息管理包含:
1.添加会员信息
2.删除会员信息
3.查看会员信息
4.退出
inuser = input('请输入管理员姓名:')
inpasswd = input('请输入密码:')
print('管理员登陆'.center(50,'*'))
users = ['root','westos']
passwds = ['123','456']
if inuser == 'admin' and inpasswd == 'admin':
print('管理员登陆成功')
print('会员管理'.center(50,'*'))
print("""
操作目录:
1.添加会员信息
2.删除会员信息
3.查看会员信息
4.退出
""")
while True:
choice = int(input('请输入你的选择:'))
if choice == 1:
print('添加会员信息'.center(50,'*'))
adduser = input('请输入会员名:')
if adduser in users:
print('用户已经存在')
else:
addpasswd = input('请输入密码:')
users.append(adduser)
passwds.append(addpasswd)
print('%s用户添加成功' %(adduser))
elif choice == 2:
print('删除会员信息'.center(50, '*'))
deluser = input('删除会员名:')
delindex = users.index(deluser)
users.remove(deluser)
passwds.pop(delindex)
elif choice == 3:
print('查看会员信息'.center(50, '*'))
print('\t用户名\t密码')
usercount = len(users)
for i in range(usercount):
print('\t%s\t%s' %(users[i],passwds[i]))
elif choice == 4:
print('bye~')
exit()
else:
print('请输入正确选择')
else:
print('管理员登陆失败')