001例:判断回文串:(字符串)
判断回文串:
1. 只考虑字母或者数字字符: 删除非字母或数字
2. 忽略字母的大小写: 统一转成大写或者小写
#encoding=utf-8 # python2需要
#string = 'A man, a plan, a canal: Panama.'
string = raw_input(">>: ")
#string = input(">>: ")
# 1. 只考虑字母或者数字字符: 删除非字母或数字
string1 = ''
for item in string:
if item.isalnum():
string1 += item
#print("删除非字母或数字:", string1)
# 2. 忽略字母的大小写: 统一转成大写或者小写
string2 = string1.lower()
#print("统一转成大写或者小写:"+string2)
# 3. 判断回文
print(string2 == string2[::-1])
002例:打印以**结尾的文件
结果:
003例:编写一个检查 Python 有效标识符的小脚本,名字是 idcheck.py(字符串)
要求:Python 标识符必须以字母或下划线开头
1). 只检查长度大于等于 2 的标识符
2). 以字母或者下划线开始
3). 后面要跟字母,下划线或者或数字
# 导入string模块
import string
while True:
#name = raw_input("请输入标识符: ")
name = input("请输入标识符: ")
if name == 'exit':
print("欢迎下次使用表示符检测器....")
exit(0) # 退出程序, 0代表的是正常退出
# 1). 只检查长度大于等于 2 的标识
if len(name) >= 2:
# pass # 占位符
# 2). 以字母或者下划线开始
if name[0] == '_' or name[0] in string.ascii_letters:
# pass # 占位符
# 3). 后面要跟字母,下划线或者或数字, hello@hhhh
for item in name[1:]:
if not (item == '_' or item in string.ascii_letters+string.digits):
print('Error: 后面没有跟字母,下划线或者数字')
break # 跳出循环
else: # 当正常遍历字符串结束,要执行的内容
print('OK: 正确的变量名')
else:
print('Error: 没有以字母或者下划线开始')
else:
print('Error: 长度小于2')
结果:
004例:用户输入字符串"hello xiao mi", 返回字符串信息"mi-xiao-hello"(字符串分割)
string = input(">> ")
print('-'.join(string.split()[::-1]))
string = "hello xiao mi"
# 1). 以空格为分隔符分割字符串
items = string.split(' ')
# 2). 对列表的所有元素通过切片的方式进行反转
items = items[::-1]
# 3). 通过join方法以'-'为连接符进行拼接
result = '-'.join(items)
print(result)
结果:
005例:编写一个函数来验证输入的字符串是否是有效的 IPv4 ?
1). IPv4 地址由十进制数和点来表示,每个地址包含4个十进制数,其范围为 0 - 255, 用(".")分割。
比如,172.16.253.1;
2). IPv4 地址内的数不会以 0 开头。比如,地址 172.16.254.01 是不合法的
#ip = '172.25.254.100'
ip = input('IP: ')
# 1). 判断是否为IPv4?是否为4段?
items = ip.split('.') # ['172', '25', '254', '100']
if len(items) == 4:
# 2). IPv4 地址由十进制数, 其范围为 0 - 255
for item in items: # item = '172', '25', '254', '100'
# IPv4 地址内的数不会以 0 开头。 (item.startswith('0') and len(item)!=1)
# '08' '0'
if not(0 <= int(item) <= 255) or (item.startswith('0') and len(item)!=1):
print('Error')
break
else:
print('OK')
else:
print('Error')
结果;
006例:机器人能否返回原点
moves = input(">> ")
print(moves.count('L') == moves.count('R') and moves.count('U') == moves.count('D'))
结果:
007例:项目-云主机管理系统(命名元组)
项目背景: 腾讯云服务器 CVM(Cloud Virtual Machine)是腾讯云提供的可扩展的计算服务。
使用 CVM 避免了使用传统服务器时需要预估资源用量及前期投入,帮助您在短时间内快速启动任意
数量的云服务器并即时部署应用程序。腾讯云 CVM 支持用户自定义一切资源:CPU、内存、硬盘、
网络、安全等等,并可以在需求发生变化时轻松地调整它们。
需求:
******************************************
***************云主机管理系统 ****************
******************************************
1). 添加云主机
2). 删除云主机
3). 修改云主机
4). 查看云主机
0). 退出系统
******************************************
云主机的属性信息:
id: 递增,主机id
IPv4: 主机IP
disk: 主机硬盘大小
memory: 主机内存大小
name: 主机别名
from collections import namedtuple
# 云主机管理系统菜单栏提示
from prettytable import PrettyTable
prompt = """
******************************************
***************云主机管理系统 ***************
******************************************
1). 添加云主机
2). 删除云主机
3). 修改云主机
4). 查看云主机
0). 退出系统
用户请选择操作:
******************************************
# 1). 选择那种数据类型存储云主机信息? str, tuple, list, 选择列表
hosts_db = [] # 存储所有主机信息的数据库列表
id = 0 # 云主机的id号, 是依次递增的
# 通过命名元组定义主机需要存储的信息
Host = namedtuple('Host', ['id', 'IPv4', 'disk', 'memory', 'name'])
# 2). 死循环,接收用户选择
while True:
choice = input(prompt)
# 如果用户选择为1, 则添加云主机
if choice == '1':
print("添加云主机".center(40, '*'))
id += 1 # id递增
IPv4 = input('主机IP(eg:172.25.254.197)>> ')
disk = input('主机硬盘大小(eg: 500G)>> ')
memory = input('主机内存大小(eg: 4G)>> ')
name = input('主机别名(eg: 数据库服务器)>> ')
# 将主机信息实例化为Host对象, 并添加到主机信息的数据库列表中
hosts_db.append(Host(id=id, IPv4=IPv4, disk=disk, memory=memory, name=name))
# 显示添加成功的信息
print("添加主机%s成功" %(name))
elif choice == '2':
print("删除云主机".center(40, '*'))
delete_id = int(input('要删除主机的id(eg:1)>> '))
for host in hosts_db:
if host.id == delete_id:
hosts_db.remove(host)
print("删除id=%s的云主机成功" %(delete_id))
break
else:
print("没有找到id=%s的云主机,删除失败" %(delete_id))
elif choice == '3':
# 如果我们的目标是定义一个高效的数据结构,而且将来会修改各种实例属性,那么使用 namedtuple 并不是最佳选择
# 修改云主机暂时不处理
pass
elif choice == '4':
print("查看云主机".center(40, '*'))
# 创建表并指定表头信息和格式
hosts_table = PrettyTable(field_names=['Id', "IPv4", 'Disk', 'Memory', 'Name'])
# # 遍历主机信息
for host in hosts_db:
# 按行添加数据
hosts_table.add_row(host)
# 打印表格
print(hosts_table)
elif choice == '0':
exit(0)
else:
print("请输入正确的选项")
结果:
/home/kiosk/anaconda3/base/bin/python /home/kiosk/mycode/day04_code/项目-云主机管理系统.py
******************************************
***************云主机管理系统 ****************
******************************************
1). 添加云主机
2). 删除云主机
3). 修改云主机
4). 查看云主机
0). 退出系统
******************************************
1
*****************添加云主机******************
主机IP(eg:172.25.254.197)>> 172.25.254.37
主机磁盘大小(eg:500G)>>500G
主机内存大小(eg: 4G)>> 4G
主机别名(eg: 数据库服务器)>> MyWeb
添加主机MyWeb成功
******************************************
***************云主机管理系统 ****************
******************************************
1). 添加云主机
2). 删除云主机
3). 修改云主机
4). 查看云主机
0). 退出系统
******************************************
4
*****************查看云主机******************
+----+---------------+------+--------+-------+
| Id | IPv4 | Disk | Memory | Name |
+----+---------------+------+--------+-------+
| 1 | 172.25.254.37 | 500G | 4G | MyWeb |
+----+---------------+------+--------+-------+
******************************************
***************云主机管理系统 ****************
******************************************
1). 添加云主机
2). 删除云主机
3). 修改云主机
4). 查看云主机
0). 退出系统
******************************************
1
*****************添加云主机******************
主机IP(eg:172.25.254.197)>> 1.1.1.1
主机磁盘大小(eg:500G)>>5g
主机内存大小(eg: 4G)>> 4g
主机别名(eg: 数据库服务器)>> daliu
添加主机daliu成功
******************************************
***************云主机管理系统 ****************
******************************************
1). 添加云主机
2). 删除云主机
3). 修改云主机
4). 查看云主机
0). 退出系统
******************************************
4
*****************查看云主机******************
+----+---------------+------+--------+-------+
| Id | IPv4 | Disk | Memory | Name |
+----+---------------+------+--------+-------+
| 1 | 172.25.254.37 | 500G | 4G | MyWeb |
| 2 | 1.1.1.1 | 5g | 4g | daliu |
+----+---------------+------+--------+-------+
******************************************
***************云主机管理系统 ****************
******************************************
1). 添加云主机
2). 删除云主机
3). 修改云主机
4). 查看云主机
0). 退出系统
******************************************
2
*****************删除云主机******************
要删除的主机id(eg:1)>>2
删除id=2的云主机
******************************************
***************云主机管理系统 ****************
******************************************
1). 添加云主机
2). 删除云主机
3). 修改云主机
4). 查看云主机
0). 退出系统
******************************************
4
*****************查看云主机******************
+----+---------------+------+--------+-------+
| Id | IPv4 | Disk | Memory | Name |
+----+---------------+------+--------+-------+
| 1 | 172.25.254.37 | 500G | 4G | MyWeb |
+----+---------------+------+--------+-------+
******************************************
***************云主机管理系统 ****************
******************************************
1). 添加云主机
2). 删除云主机
3). 修改云主机
4). 查看云主机
0). 退出系统
******************************************
008例:
s = input()
if len(s)>0:
ls = list(s.split())
print(len(ls[-1]))
else:
print(0)