题目描述:计算字符串最后一个单词的长度,单词以空格隔开。
输入描述: 一行字符串,非空,长度小于5000。
输出描述: 整数N,最后一个单词的长度。
示例1:
输入:hello world
输出:5
方法一:完全使用字符串
str_input = input('输入一个字符串:').strip() #对输入的字符串进行左右去空格处理
len_str = 0
for char in str_input[::-1]:
if char == ' ':
break
else:
len_str +=1
print('最后一个单词的长度:%d'%(len_str))
方法二:使用list
str_input = input('输入一个字符串:').strip() #对输入的字符串进行左右去空格处理
list_str = str_input.split() #使用空格将字符串分割成一个列表形式.
print(len(list_str[-1]))
题目描述: 写出一个程序,接受一个有字母和数字以及空格组成的字符串,和一个字符,然后输出输入
字符串中含有该字符的个数。不区分大小写。
输入描述: 输入一个有字母和数字以及空格组成的字符串,和一个字符。 str_tmp = input("输入字符串")
list_tmp = str_tmp.split()
str1 = str()
char = str()
count = 0
for str1 in list_tmp[:-1]: #遍历列表除了,最后一个元素以外
for char in str1: #在每一个元素中寻找的字符中寻找与目标字符相符合的字符
if char == list_tmp[-1]:
count +=1
print(count)
示例1:
输入:YUANzhi1987
输出:zvbo9441987
Original_Password = []
dict_num = {'a':2,'b':2,'c':2,'d':3,'e':3,'f':3,'g':4,'h':4,'i':4,'j':5,'k':5,'l':5,'m':6,'n':6,'o':6,'p':7,'q':7,'r':7,'s':7,'t':8,'u':8,'v':8,'w':9,'x':9,'y':9,'z':9}
print(len(dict_num))
str_passwd = input('输入加密后的密码:')
if str_passwd.find(' ') == -1 and len(str_passwd) < 100:
for char in str_passwd[:]:
if char.isupper() and char != 'Z':
Original_Password.append(chr(ord(char.lower())+1))
elif char.islower():
Original_Password.append(str(dict_num[char]))
elif char == 'Z':
Original_Password.append('a')
else :
Original_Password.append(char)
Original_Password_str = ''.join(Original_Password)
print(Original_Password_str)
else:
print('密码带有非法字符空格!')
2
count = 0
in_num = int(input('输入一个3~1000整数:'))
if 3 <= in_num < 1000:
list_num = []
for i in range(1,in_num): #寻找在1~in_num之间的质数
for num in range(2,i): #判断数字i是不是质数,如果是质数,则将以该数为索引值的元素变为1,如果不是则将以该数为索引值的元素置0
if i%num == 0:
list_num.append(0)
break
else:
list_num.append(1)
half_len = len(list_num)//2
for i in range(half_len+1):
if list_num[i] == 1:
for j in range(half_len,len(list_num)-i):
if list_num[j] == 1:
if i + j+2 == in_num:
count +=1
print(count)
else:
print('输入一个3~1000整数')
ip_str = input('请输入IP地址')
if ip_str.find(' ') == -1:
ip_list = ip_str.split('.')
if len(ip_list) == 4:
for char in ip_list:
if not char.isdecimal() or int(char) > 255 or int(char) < 0:
print("NO")
break
else:
print("YES")
else:
print("NO")
else:
print("NO")
学生管理系统, 分为管理员登陆和学生登陆;
管理员登陆, 可以操作:
管理员密码修改;
添加学生的信息;
删除学生的信息;
修改学生的信息;
查询学生的信息(根据学号);
查看所有学生的信息;
退出系统;
学生登录:
查询个人信息;
修改密码;
学生信息包括:
学号, 姓名, 性别, 班级, 出生年月, 用户名, 密码
学生用户名和学号保持一致;
管理员信息包括: 用户名, 密码
administrator = {
'root':
{
'username':'root',
'passwd':'123456'
},
'teacher':
{
'username':'teacher',
'passwd':'123456'
}
}
user ={
'061501':
{
'username':'061501',
'passwd':'061501',
'studentId':'061501',
'name':'liya',
'gender':'1',
'student_class':'1602',
'birthday':'2000-01-15'
}
}
infor = """****学生管理系统****
1)管理员登录
2)学生登录
3)退出
"""
admin_menu = """ 管理员操作界面
1)密码修改
2)添加学生
3)删除学生
4)修改学生信息
5)查询学生的信息(根据学号)
6)查看所有学生的信息
7)返回上一层
8)退出系统"""
change_student_infor_menu = """
1)修改姓名
2)修改性别
3)修改班级
4)修改出生日期
5)修改密码
6)退出修改
"""
student_menu_str = """
1)查询个人信息;
2)修改密码;
3)返回上一层
4)退出系统
"""
user_login_str = {'administrator':None , 'user':None} #保存当前登陆的用户
def admin_change_passwd():
print('当前位置:管理员密码修改,退出请按q')
old_passwd = input('输入旧的密码:')
if old_passwd == 'q':
return
new_passwd = input('输入新的密码:')
if new_passwd == 'q':
return
new_passwd_confirm = input('再次确认新密码')
if new_passwd_confirm == 'q':
return
if old_passwd == administrator[user_login_str['administrator']]['passwd']:
if new_passwd == new_passwd_confirm:
administrator[user_login_str['administrator']]['passwd']= new_passwd
print('密码修改成功:')
else:
print('两次密码不一致')
else:
print('原始密码不正确:')
def add_student():
print('当前位置:注册用户')
studentId = input('请输入学号').strip()
if studentId and studentId not in user:
passwd = input("密码")
name = input('姓名:')
gender = input("性别(男-1 , 女-2)")
if not gender:
gender = None
else:
gender = int(gender)
student_class = input("班级:")
birthday = input('出生年月(年-月-日):')
user[studentId] = {
'username': studentId,
'passwd': studentId,
'studentId': studentId,
'name': name,
'gender': gender,
'student_class': student_class,
'birthday': birthday
}
print("注册成功")
else:
print("用户已经被注册")
def del_student():
print('当前位置:删除学生信息')
del_id = input('请输入要删除的学生的学号:')
if del_id in user:
del user[del_id]
else:
print('该学生不存在!')
#函数功能 :修改学生除账号,学号以外的所有信息
def change_student_infor():
studentId = input('请输入学号').strip()
print(change_student_infor_menu)
if studentId in user:
change_Oper = input('输入操作序号:')
while change_Oper != '6':
if change_Oper == '1':
newname = input('输入姓名:')
user[studentId]['name'] = newname
print('姓名修改成功')
elif change_Oper == '2':
newgender = input('性别(男-1 , 女-2)')
user[studentId]['gender'] = newgender
print('性别修改成功')
elif change_Oper == '3':
newstudent_class = input('班级:')
user[studentId]['student_class'] = newstudent_class
print('班级修改成功')
elif change_Oper == '4':
newbirthday = input('出生日期:')
user[studentId]['birthday'] = newbirthday
print('出生日期修改成功')
elif change_Oper == '5':
newpasswd = input('输入新的密码:')
newpasswd_confirm = input('再次确认新密码')
if newpasswd == newpasswd_confirm:
user[studentId]['passwd'] = newpasswd
print('密码修改成功!')
else:
print('两次密码不一致')
else :
print('%s错误的操作命令!!!' % (change_Oper))
change_Oper = input('输入操作序号:')
print(change_student_infor_menu)
else:
print('该学生不存在!')
# 查看学生的所有信息
def view_student_infor_one():
studentId = input('请输入学号').strip()
if studentId in user:
print(user[studentId])
else:
print('该学生不存在!')
# 查看所有学生的所有信息
def view_student_infor_all():
if user :
print(user)
else:
print('没有录入学生信息!')
# 管理员登录验证
def administrator_login():
count =0
while count < 3 :
admin_username = input('账号:')
if admin_username in administrator:
admin_passwd = input('密码:')
if admin_passwd == administrator[admin_username]['passwd']:
print('登陆成功')
user_login_str['administrator'] = admin_username #保存当前登陆的用户
return True
else:
print("密码不正确!!!")
return False
else:
print('不存在的管理员!!!')
return False
else :
print("尝试次数过多,退出!")
return False
def administrator_operation():
admin_Oper = input('输入操作序号:')
if admin_Oper == '1':
admin_change_passwd()
return True
elif admin_Oper == '2':
add_student()
return True
elif admin_Oper == '3':
del_student()
return True
elif admin_Oper == '4':
change_student_infor()
return True
elif admin_Oper == '5':
view_student_infor_one()
return True
elif admin_Oper == '6':
view_student_infor_all()
return True
elif admin_Oper == '7':
user_login_str['administrator'] = None #退出时将当前登录用户消除
return False
elif admin_Oper == '8':
exit(0)
else :
print('%s错误的操作命令!!!' % (admin_Oper))
return True
# 学生登录
def student_login():
count =0
while count < 3 :
student_username = input('账号:')
if student_username in user:
student_passwd = input('密码:')
if student_passwd == user[student_username]['passwd']:
print('登陆成功')
user_login_str['user'] = student_username #保存当前登陆的用户
return True
else:
print("密码不正确!!!")
return False
else:
print('不存在的学生学号!!!')
return False
else :
print("尝试次数过多,退出!")
return False
def student_operation():
student_Oper = input('输入操作序号:')
if student_Oper == '1':
view_student_self()
return True
elif student_Oper == '2':
student_change_passwd()
return True
elif student_Oper == '3':
user_login_str['user'] = None #退出时将当前登录用户消除
return False
elif student_Oper == '4':
exit(0)
else:
print('%s错误的操作命令!!!' % (student_Oper))
return True
# 学生查看自己的信息
def view_student_self():
print(user[user_login_str['user']])
# 学生修改自己密码
def student_change_passwd():
print('当前位置:学生修改自己密码,退出请按q')
old_passwd = input('输入旧的密码:')
if old_passwd == 'q':
return
new_passwd = input('输入新的密码:')
if new_passwd == 'q':
return
new_passwd_confirm = input('再次确认新密码')
if new_passwd_confirm == 'q':
return
if old_passwd == user[user_login_str['user']]['passwd']:
if new_passwd == new_passwd_confirm:
administrator[user_login_str['user']]['passwd']= new_passwd
print('密码修改成功:')
else:
print('两次密码不一致')
else:
print('原始密码不正确:')
def main():
while True:
print(infor)
Oper_str = input('输入操作序号:')
if Oper_str == '1':
if administrator_login():
mark_login = True
while mark_login :
print(admin_menu)
mark_login=administrator_operation()
elif Oper_str == '2':
if student_login():
stu_mark_login = True
while stu_mark_login :
print(student_menu_str)
stu_mark_login=student_operation()
elif Oper_str == '3':
exit(0)
else:
print('%s错误的操作命令!!!'%(Oper_str))
main()