Python中的语句语法(二)

find

find作用:
返回字符串搜索的最小索引。
在这里插入图片描述
rfind: 返回最大索引
在这里插入图片描述

replace

在这里插入图片描述

center

在这里插入图片描述
在这里插入图片描述

复制,返回上一步

选中文字:
在这里插入图片描述
按 ctrl + d 自动复制到后面:
在这里插入图片描述
ctrl + z 返回上一步:
在这里插入图片描述
光标至于所在行:
在这里插入图片描述
ctrl + d :复制到下一行:
在这里插入图片描述

count

print('hello'.count('l'))        统计l 的数量
print('hello'.count('ll'))      统计ll的数量
print(len('hello'))              统计字符长度用len函数

在这里插入图片描述

分离split,连接join

分离
s = '172.25.254.250'
s1 = s.split('.')    以点为分隔符分开
print(s1)
print(s1[::-1])     倒叙

连接
date = '2019-04-15'
date1 = date.split('-')-为分隔符分开
print(date1)
print(''.join(date1))          无连接符
print('/'.join(date1))/为分隔符连接

在这里插入图片描述

练习:

给定一个字符串来代表一个学生的出勤纪录,这个纪录仅包含以下三个字符>: ‘A’ : Absent,缺勤 ‘L’ : Late,迟到 ‘P’: Present,到场 如果一个学生的出勤纪录中不超过一个’A’(缺勤)并且不超过两个连续的’L’(迟到), 那么这个学生会被奖赏。
你需要根据这个学生的出勤纪录判断他是否会被奖赏。 示例 1: 输入: “PPALLP” 输出: True 示例 2: 输入:
“PPALLL” 输出: False

s = input()
if s.count('A') <= 1 and s.count('LLL') == 0:
    print(True)
else:
    print(False)
print(s.count('A') <= 1 and s.count('LLL') == 0)

在这里插入图片描述
也可以改写为:
在这里插入图片描述
括号内条件的结果本来就为布尔值。True或Flase,我们可以直接打印出来。
练习二:

  • 题目描述:

给定一个句子(只包含字母和空格), 将句子中的单词位置反转,单词用 空格分割, 单词之间只有一个空格,前后没有空格。 比如:

  • 示例1:

  • 输入:hello xiao mi

  • 输出:mi xiao hello

li = input().split()
# print(li)   查看效果
# print(li[::-1])    查看效果
print(' '.join(li[::-1]))    最终命令

在这里插入图片描述
简化:

print(' '.join(input().split()[::-1]))

效果:
在这里插入图片描述
练习三:

  • 题目描述: 输入两个字符串,从第一字符串中删除第二个字符串中所有的字符。例如,>输入”They are students.”和”aeiou”, 则删除之后的第一个字符串变成”Thy r stdnts.”
s1 = input('s1:')
s2 = input('s2:')
for i in s1:
    if i in s2:
        s1 = s1.replace(i,'')
print(s1)

在这里插入图片描述
练习四:

  1. 设计一个程序,帮助小学生练习10以内的加法
    详情:
    - 随机生成加法题目;
    - 学生查看题目并输入答案;
    - 判别学生答题是否正确?
    - 退出时, 统计学生答题总数,正确数量及正确率(保留两>位小数点);
import random          导入随机数模块
count = 0              总答题数
right = 0			   答对数

while True:           死循环
    a = random.randint(0,9)      导入a,b
    b = random.randint(0,9)
    print('%d+%d' %(a,b))        题目
    question =  input('please inout your answer:(q for exit)')   用户回答
    result = a + b
    if question == str(result):         转换类型
        print('ok!')
        count +=1
        right +=1
    elif question == 'q':          退出选择
        print('exit')
        break
    else:
        print('Failed')
        count += 1
percent = right / count
print('测试结束,共回答%d道题,正确个数为%d,正确率为%.2f%%' %(count,right,percent * 100))

list(列表)数据类型

普通数组:
Z = [ 13,15,17]
只能存放同一类型数据。

列表:增强版的数组,可以存放任意类型的数据。,而且列表本事就是一个数据类型。
在这里插入图片描述

li = [1,1.2,True,'tom',[1,2,3,4,5]]
print(li)
print(type(li))

在这里插入图片描述

列表特性

service = ['http','ftp','ssh']

索引:

 print(service[0])
 print(service[-1])

在这里插入图片描述

切片:

 print(service[::-1])
 print(service[1:])
 print(service[:-1])

在这里插入图片描述
重复:
在这里插入图片描述
连接:
在这里插入图片描述
成员操作符:
在这里插入图片描述
在这里插入图片描述
迭代(循环遍历):
在这里插入图片描述
嵌套列表中的索引切片:

service2 = [['http','80'],['ssh','22'],['ftp','21']]
# index
print(service2[0][1])
print(service2[-1][1])

#slide
print(service2[:][1])
print(service2[:-1][0])

在这里插入图片描述

练习:

假定有下面这样的列表:
names = [‘fentiao’, ‘fendai’, ‘fensi’, ‘apple’]
输出结果为:‘I have fentiao, fendai, fensi and apple.’

ames = ['fentiao', 'fendai', 'fensi', 'apple']
print('I have ' + ', '.join(names[:-1]) + ' and ' + names[-1])

在这里插入图片描述

列表的添加

# tianjia
service = ['http','ftp','ssh']
print(service + ['firewall'])

#append
service.append('https')
print(service)

#extend
service.extend(['mysql','firewall'])
print(service)

#insert   在指定位置加入
service.insert(1,'samba')
print(service)

在这里插入图片描述

列表的删除

在 Python 列表中删除元素主要分为以下 3 种场景:
根据目标元素所在位置的索引进行删除,可以使用 del 关键字或者 pop() 方法;
根据元素本身的值进行删除,可使用列表(list类型)提供的 remove() 方法;
将列表中所有元素全部删除,可使用列表(list类型)提供的 clear() 方法。

>>> service = ['http','ftp','ssh']
>>> service
['http', 'ftp', 'ssh']
>>> service.pop()      pop弹出一个函数。
'ssh'
>>> service 
['http', 'ftp']        可以看见不见ssh了

由于企业中我们弹出的东西还存在于内存中,我们日后可能会用到,所以赋给一个变量。

>>> service = ['http','ftp','ssh']
>>> a = service.pop()
>>> a
'ssh'
>>> service
['http', 'ftp']

弹出指定位置。
在这里插入图片描述
###remove
直接删除列表中的值。
在这里插入图片描述
可以看到a为空值,因为ftp已经删除了
###从内存中删除 del
在这里插入图片描述
####根据索引删除

a = [1,2,3,4,5]
del a[2:4]
print a
del a[-1]
print a

在这里插入图片描述
####清空列表

  • a = [] :

    • 对于一般性数据量超大的list,快速清空释放内存,可直接用 a = [] 来释放。其中a为list。
  • del a[:]:

    • 对于作为函数参数的list,用上面的方法是不行的,因为函数执行完后,list长度是不变的,但是可以这样在函数中释放一个参数list所占内存: del a[:],速度很快,也彻底:

列表的更改

索引:
在这里插入图片描述
切片:
在这里插入图片描述

列表的查看

#chakan
service = ['http','ftp','nfs','http']
print(service.count('http'))         查看http个数
print(service.index('nfs'))          查看nfs所在位置
print(service.index('http',0,13))0~13字符间搜索http

在这里插入图片描述
有两个http,nfs在第三个,http在第一个。

列表的排序

#paixu
service = ['http','ftp','nfs','http']
service.sort()
print(service)

在这里插入图片描述
默认按照ASCII码排序。

In [13]: names = ['tom','mike','jerry','Jean']                                                                                              

In [14]: names                                                                                                                              
Out[14]: ['tom', 'mike', 'jerry', 'Jean']

In [15]: names.sort(key=str.lower)      按小写排序                                                                                                    

In [16]: names                                                                                                                              
Out[16]: ['Jean', 'jerry', 'mike', 'tom']

In [17]: names.sort(key=str.upper)                                                                                                          

In [18]: names                                                                                                                              
Out[18]: ['Jean', 'jerry', 'mike', 'tom']          可见无大小写的区别,都按ASCII码排序。

import random
li = list(range(10))      
print(li)
random.shuffle(li)      打乱li列表
print(li)

在这里插入图片描述
在这里插入图片描述
每次都不同。
练习:

  • 添加用户:
    1). 判断用户是否存在?
    2). 如果存在, 报错;
    3). 如果不存在,添加用户名和密码分别到列表中;

  • 删除用户
    1). 判断用户名是否存在
    2). 如果存在,删除;
    3). 如果不存在, 报错;

  • 用户登陆

  • 用户查看

    1. 通过索引遍历密码
  • 退出 “”" “”"

1.系统里面有多个用户,用户的信息目前保存在列表里面
users = [‘root’,‘westos’]
passwd = [‘123’,‘456’]
2.用户登陆(判断用户登陆是否成功
1).判断用户是否存在
2).如果存在
1).判断用户密码是否正确
如果正确,登陆成功,推出循环
如果密码不正确,重新登陆,总共有三次机会登陆
3).如果用户不存在
重新登陆,总共有三次机会

users = ['root','westos']
passwds = ['123','456']
trycount = 0       计数器

while trycount < 3:
    inuser = input('Username:') 
    trycount +=1
    if inuser in users:
    	inpasswd = input('Password:')
        index = users.index(inuser)      # user.index是找到inuser的对应下标,方便找到对应的密码
        passwd = passwds[index]
        if inpasswd == passwd:             
            print('User %s login success.' %inuser)
            break
        else:
            print('%s login failed:Password not correct.' %inuser)
    else:
        print('User %s not exist.' %inuser)
else:
    print('No more chance.')

在这里插入图片描述

练习2:

  1. 后台管理员只有一个用户: admin, 密码: admin
  2. 当管理员登陆成功后, 可以管理前台会员信息.
  3. 会员信息管理包含:
    添加会员信息
    删除会员信息
    查看会员信息
    退出目录
print('管理员登陆'.center(50,'*'))
inuser = input('Username:')
inpasswd = input('Password:')
users = ['root', 'westos']
passwds = ['123', '456']

if inuser == 'admin' and inpasswd == 'admin':
    print('管理员登陆成功')
    print('会员信息管理'.center(50,'*'))
    print("""
    目录:
        1.添加会员信息
        2.删除会员信息
        3.查看会员信息
        4.退出
    """)
    while True:
        choice = input('Please input your choice:')
        if choice == '1':
            print('添加会员信息'.center(50,'*'))
            newuser = input('Newuser Name:')
            if newuser in users:
                print('%s user is aready exist.')
            else:
                newpass = input('Newuser passwd:')
                users.append(newuser)
                passwds.append(newpass)
                print('添加会员%ssuccess' %newuser)
        elif choice == '2':
            print('删除会员信息'.center(50,'*'))
            deluser = input('Delete user:')
            delIndex = users.index(deluser)
            if deluser not in users:
                print('User%s not exist')
            else:
                users.remove(deluser)
                passwds.pop(delIndex)
            print('删除会员信息 %ssuccess' %deluser)
        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':
            exit()
        else:
            print('Plesae check your input')

else:
    print('Login failed')

在这里插入图片描述
练习三:
“”"
栈的工作原理
入栈 append
出栈 pop
栈顶元素     # 栈为先进后出,所以栈顶元素为最后一个进去的
栈的长度 len
栈是否为空 len == 0
“”"

info = """
栈的工作原理
 1.入栈 append
 2.出栈 pop
 3.栈顶元素 
 4.栈的长度 len
 5.栈是否为空 len == 0 
"""
print(info)
stack = []
while True:

    choice = input('your choice:')
    if choice == '1':
        item = input('please input item:')
        stack.append(item)
        print('%s 入栈 success' %item)

    elif choice == '2':
        if not stack:
            print('栈为空')
        else:
            item = stack.pop()
            print('%s 出栈 success' %item)
    elif choice == '3':
        if len(stack) == 0:
            print('栈为空')
        else:
            print('栈顶元素  is %s' %stack[-1])   #zuihouyige
    elif choice == '4':
        print('栈的长度 is %s' %(len(stack)))
    elif choice == '5':
        if len(stack) == 0:
            print('栈为空')
        else:
            print('栈 not 为空')
    elif choice == 'q':
        print('logout')
        break
    else:
        print('please check your input')

效果:
在这里插入图片描述

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值