#习题1
#a:实现用户输入用户名和密码,当用户名为seven且密码为123时,显示登录成功,否则登录失败!
while 1:
name = input('请输入用户名: ')
psw = input('请输入密码: ')
if name == 'seven' and psw == '123':
print('登陆成功')
break
else:
print('登陆失败')
break
#b实现用户输入用户名和密码,当用户名为seven且密码为123时,显示登录成功,否则登录失败,失败时允许重复输入三次
count=1
while count <= 3:
name = input('请输入用户名: ')
psw = input('请输入密码: ')
if name == 'seven' and psw == '123':
print('登陆成功')
break
else:
print('登录失败')
count+=1
continue
#c实现用户输入用户名和密码,当用户名为seven或alex且密码为123时,显示登录成功,否则登录失败,失败时允许重复输入三次
count=1
while count <= 3:
name = input('请输入用户名: ')
psw = input('请输入密码: ')
if name == 'seven' and psw == '123':
print('登陆成功')
break
elif name == 'alex' and psw == '123':
print('登陆成功')
break
else:
print('登录失败')
count+=1
continue
#习题2
#a使用while循环实现输出2-3+4-5+6...+100的和
res=0
count=2
while count <= 100:
if count%2 == 1:
res-=count
else:
res+=count
count+=1
print(res)
#b使用for循环和range实现输出1-2+3-4+5-6...+99的和
res=0
for i in range(1,100):
if i%2== 1:
res+=i
else:
res-=i
i+=1
print(res)
#c使用while循环实现输出1,2,3,4,5 7,8,9 11,12
res=1
while res <=12:
if res == 6 or res ==10:
res+=1
continue
print(res)
res+=1
#d使用while循环实现输出1-100内的所有奇数
res=1
while res <= 100:
if res%2 == 1:
print(res)
else:
res+=1
continue
res+=1
#e使用while循环实现输出1-100内的所有偶数
res=1
while res <=100:
if res%2 == 0:
print(res)
else:
res+=1
continue
res+=1
#练习三
#a移除name变量对应的值的两边的空格,并输入移除有的内容
# name='alex'
# print(name.strip())
#b判断name变量对应的值是否以"al"开头,并输出结果
# name='alex'
# print(name.startswith('al')) #True
#c判断name变量对应的值是否以"x"结尾,并输出结果
# name='alex'
# print(name.endswith('x')) #True
#d将name变量对应的值中的"l"替换为"p",并输出结果
# name='alex'
# print(name.replace('l','p'))
# e.将name变量对应的值根据"l"分割,并输出结果
# name='alex'
# print(name.split('l'))
# f.请问,上一题e分割之后得到的值是什么类型
# name='alex'
# print(type(name.split('l')))
# g.将name变量对应的值变大写,并输出结果
# name='alex'
# print(name.upper())
# h.将name变量对应的值变大小写,并输出结果
# name='alex,ALex'
# print(name.upper())
# print(name.lower())
# i.请输出name变量对应的值的第2个字符?
# name='alex'
# print(name[1])
# j.请输出name变量对应的值的前3个字符?
# name='alex'
# print(name[0:3])
# k.请输出name变量对应的值的后2个字符?
# name='alex'
# print(name[-2:])
# l.请输出name变量对应的值中"e"所在的索引位置?
# name='alex'
# print(name.find('e'))
#练习四:写代码,有如下列表,按照要求实现每一个功能
# li = ['alex','eric','rain']
# a.计算列表长度并输出
# print(len(li))
# b.列表中追加元素"seven",并输出添加后的列表
li.append('seven')
print(li)
# c.请在列表的第1个位置插入元素"Tony",并输出添加后的列表
li.insert(0,'Tony')
print(li)
# d.请修改列表第2个位置的元素为"Kelly",并输出修改后的列表
li[1]='kelly'
print(li)
# e.请删除列表中的元素"eric",并输出修改后的列表
li.remove('eric')
print(li)
# f.请删除列表中的第2个元素,并输出删除元素的值和删除元素后的列表
print(li.pop(1))
print(li)
# g.请删除列表中的第3个元素,并输出删除元素后的列表
li.pop(2)
print(li)
# h.请删除列表中的第2至4个元素,并输出删除元素后的列表
li = ['alex','eric','rain','lina']
del li[1:5]
print(li)
# i.请将列表所有的元素反转,并输出反转后的列表
li.reverse()
print(li)
#*竖三角形
l='*'
for i in range(1,10):
print(i*l)
#*倒竖三角
#方法1
l='*'
i=9
while i > 0:
print(i*l)
i-=1
#方法2
for i in range(1,12):
for j in range(1,12-i):
print('*',end='')
print()
#取出列表中的名字,年龄,出生的年,月,日
data=['alex',49,[1900,3,18]]
print(data[0],data[1],data[2][0],data[2][1],data[2][2])
#去掉重复
names=['egon','alex','egon','wupeiqi']
print(list(set(names)))
#去掉重复,且保证列表顺序与原来保持一致
names=['egon','alex','egon','wupeiqi']
res=[]
for i in names:
if i not in res:
res.append(i)
print(res)
#去掉重复,且保证列表顺序与原来保持一致
names=[[1,2],3,[1,2],4]
res=[]
for i in names:
if i not in res:
res.append(i)
print(res)
#统计s='hello alex alex say hello sb sb'中每个单词的个数
s='hello alex alex say hello sb sb'
l=(list(s.split(' ')))
s1=set(l)
for i in s1:
print(i,l.count(i))
#练习一:
# if True or False and False:
# print('yes')
# else:
# print('no')
#输出结果为?为什么?
# 输出结果为yes,因为 False and False = False,True or False = True
# if (True or False) and False:
# print('yes')
# else:
# print('no')
#输出结果为?为什么?
# 输出结果为no,因为 True or False = True , True and False = False
#练习二:编写if多分支,猜老男孩的年纪
oldbpy_age=67
while True:
age=input('请输入老男孩的年纪: ')
age=int(age)
if age == oldbpy_age:
print('恭喜你猜对了')
break
elif age < oldbpy_age:
print('猜小了,傻逼')
continue
else:
print('猜大了傻逼')
#练习三:用户输入用户名密码验证,验证通过后进入子循环,输入命令,命令若为q,则退出所有循环
tag=True
while tag:
name = input('请输入用户名: ')
psw = input('请输入密码: ')
if name == 'sam' and psw == '123':
print('登陆成功')
else:
print('请重新输入: ')
continue
while tag:
cmd = input('请输入命令(q退出): ')
if cmd =='q':
tag = False
else:
print('输入的命令为: ',cmd)
continue
#练习四:循环取出元组中所有元素:方式一:while和for(按照索引),方式二:不按照索引的方式
t=(1,2,3,4,5,6,7,8,9)
s=0
while s < len(t):
print(t[s])
s+=1
t=(1,2,3,4,5,6,7,8,9)
for i in t:
print(t[i-1])
# # 方式二、
for i in t:
print(i)
#练习五:循环读取列表以及子列表中所有元素
l=[1,2,[3,4],[5,6]]
for i in l:
# print(i)
if type(i) == list:
for j in i:
print(j)
else:
print(i)
#练习六:打印
'''
*
***
*****
*******
'''
l='*'
for j in range(1,8,2):
l1 = j*l
print(l1.center(7,' '))
#练习七:打印
'''
*****
***
*
'''
l='*'
l1=6
for i in range(1,6,2):
l2=(6-i)*l
print(l2.center(5,' '))
#练习八:打印
'''
*
**
***
****
*****
'''
l='*'
for i in range(1,6):
l1=i*l
print(l1.ljust(5,' '))
#练习九:打印
'''
******
*****
****
***
**
*
'''
for i in range(1,7):
for j in range(1,8-i):
print('*',end='')
print()
#练习十:编写登陆接口
# 基础需求:
# 让用户输入用户名密码
# 认证成功后显示欢迎信息
# 输错三次后退出程序
res=1
while res<=3:
name=input('请输入用户名: ')
psw = input('请输入密码: ')
if name == 'sam' and psw == '123':
print('登陆成功')
break
else:
print('登陆失败,请重新登录')
res+=1
continue
#数据类型练习题:
练习一:有十进制数n=10
转成二进制
转成八进制
转成十六进制
n=10
print(bin(n)) #二进制
print(oct(n)) #八进制
print(hex(n)) #十六进制
#练习二:与用户交互,要求用户输入年龄和薪资,将用户输入的年龄转成整形,将用户输入的薪资转成浮点型
res =1
while res <2 :
nl=input('请输入年龄: ')
nl=int(nl)
xz=input('请输入薪资: ')
xz=float(xz)
print(type(nl))
print(type(xz))
res+=1
#练习三:
'''
用户输入用户名,年纪,工作,爱好,格式化输出如下内容(使用%s和format两种方式)
------------ info of Alex Li -----------
Name : Alex Li
Age : 22
job : Teacher
Hobbie: girl
------------- end -----------------
'''
# 方式一
l='Name:{},Age:{},Job:{},Hobbie:{}'
for i in range(1,2):
name=input('请输入用户名: ')
age=input('请输入年纪: ')
job=input('请输入工作: ')
hobbie=input('请输入爱好: ')
# l=l.format(name,age,job,hobbie)
print(name.center(30,'-'))
print('Name: %s\nAge: %s\nJob: %s\nHobbie: %s'%(name,age,job,hobbie))
e='end'
print(e.center(30,'-'))
#方式二
l='Name:{z},Age:{x},Job:{c},Hobbie:{v}'
e='end'
name=input('请输入用户名: ')
age=input('请输入年纪: ')
job=input('请输入工作: ')
hobbie=input('请输入爱好: ')
l=l.format(z=name,x=age,c=job,v=hobbie)
l1=list(l[0:].split(','))
print(name.center(30,'-'))
for i in l1:
print(i)
print(e.center(30,'-'))
#练习四:
s='alex say hello'
切片取出第say
print(s[5:8])
切片取出倒数后两个字符
print(s[-2:])
#练习五:
# 编写循环,让用户输入年纪,如果输入为空,或者不为数字,则重新输入
while True:
age = input('请输入年纪: ')
if age.isspace() == True or age.isdigit() == False:
print('请重新输入')
continue
else:
print('您的年纪是:',age)
break
#练习六:
# 用列表模拟上电梯的流程(队列)
# 循环生成一个1000个值的列表(入队)
# 循环取走这个1000个值(出队)
l=[]
for i in range(1,1001):
l.append(i)
print(l)
for j in range(1,1001):
print(l.pop(0))
# 用列表模拟把衣服放箱子里,然后取衣服的流程(堆栈)
# 循环生成一个1000个值的列表(入栈)
# 循环取走这个1000个值(出栈)
l=[]
for i in range(1,1001):
l.append(i)
print(l)
for j in range(1,1001):
print(l.pop())
#练习七:
dicta={'a':1,'b':2,'c':3,'d':'hello'}
dictb={'b':3,'c':2,'d':'world','f':10}
两字典相加,不同的key对应的值保留,相同的key对应的值相加后保留,如果是字符串就拼接(字符串拼接'hello'+'world'得'helloworld')
{'a': 1, 'b': 5, 'c': 5, 'd': 'helloworld', 'f': 10}
dictc=dicta
for i in dictb:
if i in dictc:
dictc[i]=dictb[i]+dictc[i]
else:
dictc[i]=dictb[i]
print(dictc)