1使用while 循环输入1,2,3,4,5,6,,8,9,10

count = 0
while count<10:
count+=1
if count ==7:
continue
print(count)

  

count = 0
while count<10:
count+=1
if count ==7:
pass
else:
print(count)

2.求1——100的所有数的和

sum =0
count = 0
while count<=100:
count+=1
sum = sum +count print(sum)

3.输出1——100的奇数

count = 0
while count<100:
count+=1
if count %2 == 1:
print(count)
continue

4.求100以所有奇数相加

count = 0
sum = 0
while count<100:
count+=1
if count %2 == 1:
sum = sum +count print(sum) 

5.求1-2+3-4+5......+99的所有数的和

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

6.简单的用户登陆(三次机会重试)

i =0
while i<3:
user_name = input("请输入您的用户名")
password = int(input("请输入您的密码"))
if user_name == 'zzz' and password ==123:
print("登录成功")
break
else:
print('请重新输入')
i +=1
if i ==3:
print("您的用户已经冻结")
break  

加强版:

user_name ='zzz'
password = 123
i =0
while i<3:
user1_name = input("请输入您的用户名")
password1 = int(input("请输入您的密码"))
if user1_name == user_name and password1 ==password:
print("登录成功")
break
else:
print('登录失败,您还有%d此登录的机会'%(2-i))
if (2-i) ==0:
result = input("是否还需要继续输入(Yes or NO):")
if result == 'Yes':
i = 0
continue
i+=1
if i ==3:
print("您的用户已经冻结") else:
print("欢迎下次光临")

注册

print("请开始您的注册")
id_name = input('请输入您要注册的用户名')
id_password = input('请输入您要注册的密码')
print('恭喜您,注册成功')
with open('123.txt','w+',encoding='utf-8') as f:
# f.writelines(id_name+ '\n')
# f.writelines(id_password+'\n')
f.write('{}\n{}'.format(id_name,id_password))
f.seek(0)
# f.read()
passge_lis = f.readlines()
# print(passge_lis)
user_name = passge_lis[0].strip()
password = int(passge_lis[1].strip())
print(user_name,password)

  

6 1-2+3-4...............+98-99 除去88 ,把所有的数都相加起来

sum = 0
i = 0
j=-1
while i<99:
i+=1
j=-j
if i ==88:
j=-j
continue
else:
sum = sum + i*j
print(sum) 
sum = 0
i = 0
j=-1
while i<99:
i+=1
if i ==88:
continue
else:
j = -j
sum = sum + i*j print(sum)

7. li= [1,2,3,'alex',[2,5,'x'],'asas']  把每一个列表中的元素都遍历出来,包括列表中的列表

li= [1,2,3,'alex',[2,5,'x'],'asas']

for i in li:
if type(i) == list:
for u in i:
print(u)
else:
print(i) for i in range(len(li)):
if type(li[i]) == list:
for j in li[i]:
print(j)
else:
print(li[i])

8

lis = [2,3,'k',['qwe',20,['k',['tt',3,'1']],89],'ab','adv']
#将列表中的数字变成字符串的时候:直接替换;先删除在添加
lis.remove(3)
lis.insert(1,"100")
# 将列表中的字符串变成数字的时候:直接替换;先删除在添加;或者是先replace 变成字符串后在转化为数字
lis[3][2][1][2]=int(lis[3][2][1][2].replace("1","101")) print(lis)

9 1查找列表li中的元素,移除每个元素的空格,2并找出以’A’或者’a’开头,并以’c’结尾的所有元素,3并添加到一个新列表中,最后循环打印这个新列表。

li = ['taibai ','alexC','AbC ','egon',' Ritian',' Wusir','  aqc']

lis =[]
for i in li:
s =i.strip()
if (s.startswith("A") or s.startswith("a"))and s.endswith("c"):
lis.append(s) for i in li:
s =i.strip(' ')
if s[0].upper() == "A" and s[-1] == "c":
lis.append(s)
print(lis)

10 # 开发敏感词语过滤程序,提示用户输入评论内容,如果用户输入的内容中包含特殊的字符:# 敏感词列表 li = ["苍老师","东京热",”武藤兰”,”波多野结衣”]# 则将用户输入的内容中的敏感词汇替换成***,并添加到一个列表中;# 如果用户输入的内容没有敏感词汇,则直接添加到上述的列表中

li = ["苍老师","东京热","苍老师","波多野结衣"]

conten = input("请输入内容:")
b = []
for i in li :
if i in conten:
#n = len(i)
#conten = conten.replace(i,"*"*n)
     conten = conten.replace(i,"*")     
b.append(conten)
print(b)

 

#错误的版本

li = ["苍老师","东京热","苍老师","波多野结衣"]
conten = input("请输入内容:")
b = []
for i in li :
if i in conten:
n = len(i)
new_data = conten.replace(i,"*"*n) #内容要重新放在循环过程中判断。
b.append(new_data) #这里添加不能放在在循环体内
else:
b.append(conten)
print(b)

10 用一行代码改变a和b的值 

a=1
b=2 a,b = b,a #类似dict中的k,v
print(a,b)

11. 输入任意的一串字母+数字。计算出数字的个数。注意连在一起的数字为一个整体。例如:35sdsadwdada656ds123sdsadad99  一共有4个数字。

info = input("<<<")  #'sasda6565sdsa797asd1543' ---< '    6565    797   1543'

for i in info:
if i.isalpha():
info=info.replace(i," ")
num = info.split() #' 6565 797 1543' ------> ['6565', '797', '1543']
print(len(num))

12有如下值li= [11,22,33,44,55,66,77,88,99,90],将所有大于 66 的值保存至字典的第一个key中,将小于 66 的值保存至第二个key的值中即: {'k1': 大于66的所有值列表, 'k2': 小于66的所有值列表}

li= [11,22,33,44,55,66,77,88,99,90]
dic ={'k1':[],'k2':[]} for i in li:
if i>66:
dic['k1'].append(i)
elif i==66:
continue
else:
dic['k2'].append(i) print(dic)
li= [11,22,33,44,55,66,77,88,99,90]
dic ={}
a=[]
b=[] for i in li:
if i>66:
a.append(i)
elif i==66:
continue
else:
b.append(i) dic.setdefault('k1',a)
dic.setdefault('k2',b)
print(dic)  

13

'''
输出商品列表,用户输入序号,显示用户选中的商品
商品 li = ["手机", "电脑", '鼠标垫', '游艇']
要求:1:页面显示 序号 + 商品名称,如:
1 手机
2 电脑

2: 用户输入选择的商品序号,然后打印商品名称
3:如果用户输入的商品序号有误,则提示输入有误,并重新输入。
4:用户输入Q或者q,退出程序。 '''
li = ["手机", "电脑", '鼠标垫', '游艇'] while 1: for i in li:
index = li.index(i)+1
print('{}\t\t{}'.format(index,i)) #\t 空格 \n 换行 num = input('请输入选择的商品序号:')
if num.isdigit():
num = int(num)
if num >0 and num<= len(li):
print(li[num-1])
else:
print("请输入有效的数字:")
elif num.upper() == 'Q':
print('欢迎下一次购物')
break
else:
print('请输入数字')

14 购物车 (有点小问题,不完整)

#购物车

li =[
{'name':'苹果','price':'10'},
{'name':'香蕉','price':'20'},
{'name':'西瓜','price':'30'},
] shopping_cars = {}
all_money = 0
print('欢迎来到虚拟超市') while 1:
for k,j in enumerate(li):
print('序号:{}\t商品名称:{}\t商品的价格:{}'.format(k+1,j['name'],j['price'])) goods_num = input("请输入您要购买的商品的序号:")
if goods_num.isdigit():
if int(goods_num)>0 and int(goods_num) <= len(li):
print('商品名称:{}\t商品的价格:{}'.format(li[int(goods_num)-1]['name'],li[int(goods_num)-1]['price']))
goods_digit = input("请输入您所购买的商品的数量")
if goods_digit.isdigit():
if int(goods_digit)>0:
goods_money = int(goods_digit) * int(li[int(goods_num)-1]['price'])
all_money = goods_money + all_money
print('商品名称:{}\t商品的数量:{}\t总价钱:{}'.format(li[int(goods_num)-1]['name'],goods_digit,goods_money))
if li[int(goods_num)-1]['name'] in shopping_cars:
while 1 :
choose = input("请您对您的商品做出改变的序号(0为增加数量;1为减少数量,3为删除商品):")
if choose == '0':
shopping_cars[li[int(goods_num)-1]['name']] = int(shopping_cars[li[int(goods_num)-1]['name']]) + int(goods_digit)
break
elif choose =='1':
shopping_cars[li[int(goods_num) - 1]['name']] = int(shopping_cars[li[int(goods_num) - 1]['name']]) - int(goods_digit)
all_money = all_money -2*goods_money
break
#elif choose == '3': #有问题
#all_money = all_money -1*goods_money
#del shopping_cars[li[int(goods_num)-1]['name']]
#break
else:
print('请输入有效的序号')
continue
else:
shopping_cars[li[int(goods_num)-1]['name']] = goods_digit
print('购物车的商品:{}'.format(shopping_cars))
go_on = input("是否付款( Y(y) or N(n) ):")
if go_on.upper() == 'Y':
all_money1 = all_money
print('购物车的商品:{}'.format(shopping_cars))
print("购物车里所有商品总计为{}元".format(all_money1))
have_money = input("请您付款(元):")
if all_money <= int(have_money):
print("本次购物成功,谢谢您的光临")
going = input("是否继续购物( Y(y) or N(n):")
if going.upper() == 'Y':
all_money =0
shopping_cars.clear()
continue
else:
break
else:
print('您的余额不足')
break
else:
continue
else:
print('请输入有效的数字')
else:
print("输入有误,请输入数字")
else:
print('请输入有效的数字')
else:
print("输入有误,请输入数字")

  

作业:

#作业;处理文件,用户指定要查找的文件和内容,将文件中包含要查找内容的每一行都输出到屏幕

# def func(filename,content):
# with open(filename,encoding='utf-8') as f :
# # while 1:
# # line = f.readline()
# for line in f:
# if content in line:
# yield line
#
# g = func('file','python')
#
# for i in g :
# print(i.strip())

  

时间差

自己的版本:

# 计算时间差
# '2017-09-11 08:30:00' ----'2017-09-12 11:00:00' import time star_time = time.strptime('2017-09-11 08:30:00',"%Y-%m-%d %H:%M:%S")
end_time = time.strptime('2017-09-12 11:00:00',"%Y-%m-%d %H:%M:%S")
new_star_time = time.mktime(star_time)
new_end_time = time.mktime(end_time)
new_time = new_end_time - new_star_time
print(new_time) #秒
struc_time = time.localtime(new_time)
time = time.strftime("%H(h)%M(m)%S(s)",struc_time)
print(time) # 小时;分钟;秒钟 10(h)30(m)00(s)

老师的版本: 

import time
true_time=time.mktime(time.strptime('2017-09-11 08:30:00','%Y-%m-%d %H:%M:%S'))
time_now=time.mktime(time.strptime('2017-09-12 11:00:00','%Y-%m-%d %H:%M:%S'))
dif_time=time_now-true_time
struct_time=time.gmtime(dif_time)
print('过去了%d年%d月%d天%d小时%d分钟%d秒'%(struct_time.tm_year-1970,struct_time.tm_mon-1,
struct_time.tm_mday-1,struct_time.tm_hour,
struct_time.tm_min,struct_time.tm_sec))

 

随机的验证码 (4位) 

 自己的版本:

#随机4位的验证码  #有限的循环一般用range
import random
def func():
ret_lis = []
for i in range(4) :
num = str(random.randint(0,9))
arip_num = random.randint(65,90) #[65,90] 生产数字, 字母 = chr(数字) #随机生产字母 用 ascii 码
arp = chr(arip_num) #字母= chr(数字) ret = random.choice([num,arp])
ret_lis.append(ret) ret = " ".join(ret_lis)
return ret print(func())
#自己写的版本是把取到的4个元素放到列表后在转化为str

 老师的版本:

#循环组合
import random def v_code(): code = ''
for i in range(5): num=random.randint(0,9)
alf=chr(random.randint(65,90))
add=random.choice([num,alf])
code="".join([code,str(add)]) #循环一次组合一次 return code print(v_code())

 

计算器大作业

计算:a = ' 1 - 2 * ( ( 6 0 -3 0 -(40/5) * (9-2*5/3 + 7 /3*99/4*2998 +10 * 568/14 )) - (-4*3)/ (16-3*2) )'

要求:先计算括号里面的,在根据四则运算来计算;用的正则表达式的知识

import re

def del_backet(x): return x.strip('()')

def sovle(x):
if '+-' in x : return x.replace('+-','-')
if '-+' in x : return x.replace('-+','-')
if '--' in x : return x.replace('--','+')
if '++' in x : return x.replace('++','+')
else: return x def work(x):
if '/'in x:
i,j = x.split('/')
return str(float(i) / float(j))
if '*' in x:
i, j = x.split('*')
return str(float(i) * float(j)) def many_num(flat): #9-2*5/3 + 7 /3*99/4*2998 +10 * 568/14
while 1:
ret = re.search('\d+\.?\d*[*/]-?\d+\.?\d*',flat) # 2*5;10/3;.....
if ret:
ret = ret.group() #40/5;2*5;10/3
new_ret = work(ret) #8;10;10/3
flat = flat.replace(ret, new_ret) # 40/5 --->8; 9-3.33333 + 7 /3*99/4*2998 +10 * 568/14
flat = sovle(flat)
# 55+55-5+4
else:
# ret = re.findall('-?\d+\.?\d*', flat) #[55,55,-5,5] 只要把数字匹配出来,累加就可以了,用findall拿到一个列表
ret = re.finditer('-?\d+\.?\d*', flat) #迭代器
n_ret = [i.group() for i in ret] #列表的推导式
num = 0
for i in n_ret:
num += float(i)
return str(num) def cla_func(a):
while 1:
r = a.replace(' ','') #去空格
no_backet = re.search('\([^()]+\)',r)
if no_backet:
no_ret = no_backet.group() #(9-2*5/3 + 7 /3*99/4*2998 +10 * 568/14 )
flat = del_backet(no_ret) # 40/5 #9-2*5/3 + 7 /3*99/4*2998 +10 * 568/14
new_flat = many_num(flat) # 40/5 #9-2*5/3 + 7 /3*99/4*2998 +10 * 568/14
a = r.replace(no_ret,new_flat)
a = sovle(a)
else:
ret = many_num(r) #没有空格后
return ret if __name__ == '__main__':
ret =cla_func(input('>>>'))
#a = ' 1 - 2 * ( ( 6 0 -3 0 -(40/5) * (9-2*5/3 + 7 /3*99/4*2998 +10 * 568/14 )) - (-4*3)/ (16-3*2) )'
print(ret)

  

 有一个类的定义

1.初始化多个不同的对象

2.求最高的age的对象的name

# class Person:
# def __init__(self,name,age):
# self.name = name
# self.age = age
#
# l = [] #对象
# for i in range(10,21):
# l.append(Person('alex%s'%(i),i))

  

# ne_age = max([i.age for i in l]) #内置函数
#
# for i in l:
# if i.age == ne_age:
# print(i.name)

  

# obj1 = max(l,key=lambda obj:obj.age) # 直接拿到对象  !!!
print (obj1.name)

 

有四个数字:1,2,3,4,能组成多少个不相同且无重复数字的三位数?,分别是多少?

#有4个数字:1,2,3,4;能组成多少个互不相同且无重复数字的三位数字?分别是多少? #循环嵌套
# def with_num():
# n = 0
# for i in range(1,5): #百位
# for j in range(1, 5): #十位
# for k in range(1, 5): #个位
# if i==j or i==k or j==k:
# continue
# n+=1
# print(n)
# yield (str(i)+str(j)+str(k)) #
# for i in with_num():
# print(i)

  

假设有100个person的对象,若两个对象的obj1,obj2的name和sex属性相同,则我们认为两个对象为同一个对象,已知一个列表中有100个对象,对这100个对象进行去重。

提示: 内置方法

# class Person:
# def __init__(self,name,age,sex):
# self.name = name
# self.age = age
# self.sex = sex
#
# def __eq__(self, other):
# if self.name == other.name and self.sex == other.sex:
# return True
#
# def __hash__(self):
# return hash(self.name + self.sex)
#
# obj_lis = []
#
# for i in range(5):
# obj_lis.append(Person('alex',i,'nan'))
#
# print(set(obj_lis)) #set 去重 依赖于__hash__;__eq__

  

#面试题

"""
有一个列表[11, 2, 3, 3, 7, 9, 11, 2, 3],去重并且保持原来的顺序.
""" l1 = [11, 2, 3, 3, 7, 9, 11, 2, 3]
ret = list(set(l1))
print(ret)
ret.sort(key=l1.index) # 按值在l1中的索引进行排序
print(ret) l2 = [
{"name": "alex", "age": 36},
{"name": "GoldBoss", "age": 30},
{"name": "xiaoyima", "age": 18}
]
#内置函数与匿名函数的结合
l2.sort(key=lambda x: x["age"])
print(l2)

 

去除多余嵌套的列表

list1 = [11, [22, 3], [4, ], [55, 66], 8, [9, [7, [12, [34, [26]]]]]]
# 去除多余嵌套的列表,得到[11, 22, 3, 4, 55, 66, 8]
list1 = [ 8, [9, [7, [12, [34, [26]]]]]]
# 去除多余嵌套的列表,得到[11, 22, 3, 4, 55, 66, 8]
def f(x):
ret = []
for b in x: # 1
if isinstance(b, list):#[2,[3]]
for a in f(b): # f(b)递归,直到递归到同一级的列表,比如对于list1来说,最后递归到最内层[26];取最内部的数;然后在
# 一层一层的往上取返回值,添加到列表里面;
ret.append(a)
# pass
# f(b) 没有拿取递归的返回值;
else:
ret.append(b)
return ret # def func(x):
# return [a for b in x for a in func(b)] if isinstance(x, list) else [x] ret = f(list1)
# ret = func(list1)
print(ret) #isinstance(obj,class) #来判断这个obj的类型是否为class ,类似与type()

  

 

  

Python作业的更多相关文章

  1. Python作业第一课

    零基础开始学习,最近周边的同学们都在学习,我也来试试,嘿嘿,都写下来,下次不记得了还能来看看~~ Python作业第一课1)登陆,三次输入锁定,下次不允许登陆2)设计一个三级菜单,菜单内容可自行定义, ...

  2. Python作业-选课系统

    目录 Python作业-选课系统 days6作业-选课系统: 1. 程序说明 2. 思路和程序限制 3. 选课系统程序目录结构 4. 测试帐户说明 5. 程序测试过程 title: Python作业- ...

  3. python作业ATM(第五周)

    作业需求: 额度 15000或自定义. 实现购物商城,买东西加入 购物车,调用信用卡接口结账. 可以提现,手续费5%. 支持多账户登录. 支持账户间转账. 记录每月日常消费流水. 提供还款接口. AT ...

  4. (转)Python作业day2购物车

    Python作业day2购物车 原文:https://www.cnblogs.com/spykids/p/5163108.html 流程图: 实现情况: 可自主注册, 登陆系统可购物,充值(暂未实现) ...

  5. Python作业之三次登陆锁定用户

    作业之三次登陆锁定用户 作业要求如下: 1. 输入用户名和密码 2. 认证成功提示欢迎信息 3. 认证失败三次锁定用户 具体代码如下: 方法1: import os#导入os模块 if os.path ...

  6. python作业高级FTP

    转载自:https://www.cnblogs.com/sean-yao/p/7882638.html 作业需求: 1. 用户加密认证 2. 多用户同时登陆 3. 每个用户有自己的家目录且只能访问自己 ...

  7. python作业简单FTP(第七周)

    作业需求: 1. 用户登陆 2. 上传/下载文件 3. 不同用户家目录不同 4. 查看当前目录下文件 5. 充分使用面向对象知识 思路分析: 1.用户登陆保存文件对比用户名密码. 2.上传用json序 ...

  8. python作业学员管理系统(第十二周)

    作业需求: 用户角色,讲师\学员, 用户登陆后根据角色不同,能做的事情不同,分别如下 讲师视图 管理班级,可创建班级,根据学员qq号把学员加入班级 可创建指定班级的上课纪录,注意一节上课纪录对应多条学 ...

  9. python作业(第十一周)基于RabbitMQ rpc实现的主机管理

    作业需求: 可以对指定机器异步的执行多个命令 例子: >>:run "df -h" --hosts 192.168.3.55 10.4.3.4 task id: 453 ...

随机推荐

  1. 11.vue 数据交互

    vue new Vue({ el,选择器 string/obj 不能选择html/body data, methods, template string/obj //生命周期 -- 虚拟DOM 1.初 ...

  2. 已知长度为n的线性表采用顺序结构,写一算法删除该线性表中所有值为item的元素

    /** * @author:(LiberHome) * @date:Created in 2019/2/27 23:34 * @description: * @version:$ */ /*已知长度为 ...

  3. CentOS使用systemctl daemon-reload报错Error getting authority: Error initializing authority: Error calling StartServiceByName for org.freedesktop.PolicyKit1: Timeout was reached (g-io-error-quark, 24)解决办法

    CentOS修改了系统启动文件后需要重载报错 systemctl daemon-reload Error getting authority: Error initializing authority ...

  4. java_Arrays.sort()方法

    这个方法位于util包里,可以传入任一类型数组,默认按照字典序升序排序 如果要按照降序排序,直接写一个循环来颠倒顺序就好了 源码如下 String[] name = {"1",&q ...

  5. POJ3461 Oulipo 字符串

    正解:kmp/哈希 解题报告: 传送门! 这题其实就kmp板子,,,用来复习下kmp的太久没打了QAQ 所以kmp做法就不港了放个代码就是了QAQ #include<algorithm> ...

  6. eclipse web module版本问题:Cannot change version of project facet Dynamic Web Module to 2.5.

    Description    Resource    Path    Location    TypeCannot change version of project facet Dynamic We ...

  7. Linux. 计划任务 时间格式

    Linux. 计划任务 时间格式 在linux中执行指令:cat /etc/crontab 结果,如下图所示: 结果一目了然,不多说. 如有问题,欢迎纠正!!! 如有转载,请标明源处:https:// ...

  8. proto 2 语法

    一.proto文件 PB的定义是通过proto文件进行定义的,一个标准的类型如下: message SearchRequest { required string query = 1; optiona ...

  9. C# AsyncCallback异步回调用法示例

    using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threa ...

  10. Nginx+keepalived 双机热备(主从模式)

    负载均衡技术对于一个网站尤其是大型网站的web服务器集群来说是至关重要的!做好负载均衡架构,可以实现故障转移和高可用环境,避免单点故障,保证网站健康持续运行.关于负载均衡介绍,可以参考:linux负载 ...