1.用户输入一个数字,判断一个数字是否为一个水仙花数,水仙花数是一个三位数,三位数的每一位三次方的和还等于这个数,那么这个数就是一个水仙花数

#eg:1^3+5^3+3^3=153
number=input("please input number:")
if number.isdecimal():
if len(number)==3:
x1=int(number[0])
x2=int(number[1])
x3=int(number[2])
if x1**3+x2**3+x3**3==int(number):
print("其为水仙花数")
else:
print("不是水仙花数")
else:
print("数字不正确")
else:
print("请输入三位数合法数字")

2.将list=[“周大苏打”,“周对手的防守”,“马虎他”,“周星星”]中首字母是周字的删除

list=["周大苏打","周对手的防守","马虎他","周星星"]
#这里有坑,因为在列表的删除过程中,删除一个元素其他会前移,会出现问题,所以采用倒叙删除
for i in range(len(list)-1,-1,-1):
if list[i][0]=="周":
list.pop(i)
print(list)

3.车牌分块区分,现给出车牌,根据车牌的信息,分析的各省车牌持有量

'''
学习中遇到问题没人解答?小编创建了一个Python学习交流QQ群:725638078
寻找有志同道合的小伙伴,互帮互助,群里还有不错的视频学习教程和PDF电子书!
'''
cars=["鲁A2444","鲁B1233","京B8989M","黑C49678","黑C46555","沪B25041"]
locals={"沪":"上海","黑":"黑龙江","鲁":"山东","鄂":"湖北","湘":"湖南","京":"北京"}
#车牌分块区分,现给出车牌,根据车牌的信息,分析的各省车牌持有量
countlist={}
for i in cars:
if locals[i[0]] not in countlist:
countlist[locals[i[0]]]=1
else:
countlist[locals[i[0]]]=countlist[locals[i[0]]]+1
print(countlist)
----------------------------------------------------------
#升级版
countlist={}
for i in car:
countlist[locals[i[0]]]=countlist.get(locals[i[0]],0)+1
print(countlist)

4.通过文件形式将txt格式的商品价格,商品数量,商品名字以列表嵌套字符串的形式表现

dic={}
list1=[]
with open ("a.txt",encoding="utf-8",mode="r") as f1:
for line in f1:
line=line.strip("\n").split(" ")
dic["name"]=line[0]
dic["price"] = line[1]
dic["count"] = line[2]
list1.append(dic)
print(list1)

5.需求:

  • 页面显示序号+商品名称+商品价格
  • 用户如果输入选择的商品序号,然后打印商品名称及商品价格
  • 如果用户输入的商品序号有误,则提示输入有误,并重新输入
  • 用户输入Q,或者q,退出程序
server = [
{"name": "服务器1", "price": 10000},
{"name": "服务器2", "price": 10500},
{"name": "服务器3", "price": 10700},
{"name": "服务器4", "price": 10800},
]
while True:

for index,dic in enumerate(server):
print(index,dic["name"],dic["price"])
number=input("请输入商品序号:").strip()
if number.isdecimal():
number=int(number)
if 0<number<len(server):
print(server[number-1]["name"],server[number-1]["price"])
else:
print("你输入的超出了范围")
elif number.upper()=="Q": break
else:
print("你输入的为非法字典")

6.dict={“name”:“zhu”,“time”:“fdsf”,.}

判断dict中“name"值是否在字典中

dict={"name":"zhu","time":"fdsf"}
print("name" in dict.keys())

7.循环提示用户,并将输入内容追加到列表中(如果输入N或n则停止循环)

list=[]
while 1:
username=input("请输入用户名:")
if username.upper()=="Q":break
else:
password=input("输入密码:")
dic={}
dic["name"]=username
dic["password"]=password
list.append(dic)
print(list)

8.需求:

(1.读出下列程序结果

v1={"k1":"v1","k2":[1,2,3]}
v2={"k1":"v1","k2":[1,2,3]}
result=v1==v2
result1=v1 is v2
print(result,result1)
#结果True False

因为不论是同代码的缓存机制还是小数据池缓存机制都只只用于bool int str三种数据类型

(2.读出下列的程序结果

v1="dfsfsf"
v2=[1,2,4,v1]
v1="fsfdfsfsdfs"
print(v2)
#结果[1, 2, 4, 'dfsfsf']

原因解释是这里是字符串,不可以变得数据结构,然后在V1赋值的时候相当于开辟了一个新的数值地址,因为不可变还是V2还是指向了v1运来值的地址

(3.读出下列的程序结果

list=[]
dict={}
for i in range(10):
dict["user"]=i
list.append(dict)
print(list)
#结果[{'user': 9}, {'user': 9}, {'user': 9}, {'user': 9}, {'user': 9}, {'user': 9}, {'user': 9}, {'user': 9}, {'user': 9}, {'user': 9}]
list=[]
for i in range(10):
dict = {}
dict["user"]=i
list.append(dict)
print(list)
#结果[{'user': 0}, {'user': 1}, {'user': 2}, {'user': 3}, {'user': 4}, {'user': 5}, {'user': 6}, {'user': 7}, {'user': 8}, {'user': 9}]

解释,前面因为最后一步对字典进行了更改,后面因为每次添加的列表都是一个新的字典,所以数字不是重复的

9.设定一个理想的数字比如88,让用户输入数字,如果比88大,则显示猜测的结果大;如果比66小,则显示猜测的结果小了,给用户三次猜测机会,如果显示猜测正确退出循环,如果没有猜测正确,则自动退出循环,显示“你太蠢了”

number=88
count=0
while count<3:
inputnumber=int(input("请输入数字:"))
if inputnumber>number:
print("结果大了")
elif inputnumber<number:
print("结果小了")
else:
print("恭喜你猜对了")
break
count+=1
else:
print("你太蠢了")

10.求1-2+3-4+5…99的和

count=1
s=0
while count<100:
if count%2==0:
s=s-count
else:
s=s+count
count+=1
print(s)

11.写一个登录认证脚本,包括用户名,密码,验证码,如果输入三次失败,系统退出,输入正确显示登录成功。

count=0
while count<3:
username=input("please input your username:")
password=input("please input your password:")
code="abcd"
your_code=input("please input your code:")
if your_code==code:
if username=="xiaoming"and password=="123":
print("success!")
break
else:
print("your uesename or password is error!")
count=count+1
else:
print("your code is error!!")
count+=1
exit("You've logged in three times")

12.输出1~100所有数字

#方法一比较傻瓜式
count=0
flag=True
while flag:
if count==100:
flag=False
else:
count=count+1
print(count)
#方法二
number=0
while number<100:
number=number+1
pint(number)

13.输出1~100中的所有偶数:%

count=2
while True:
print(count)
count=count+2
if count==102:
break