python解法_Python--多种题型方法解法

name = " aleX " 判断 name 变量对应的值是否以 "al" 开头,并输出结果

#第一种

name = 'alex'

if name[0:2] == 'al': #索引拿0,1 是否与name中的前两个索引变量值相同

print(True) #如果以al开头输出True

else:print(False) #否则输出False#第二种

name = 'alex'

if name.startswith('al'): #startswith()用法,括号内填写想要判断的是否是开头的变量值

print(True)else:print(False)

------------------------------------------------------------------------------------------------

获取子序列,仅不包含后一个字符。如:oldboy 则获取 oldbo; root 则获取 roo

name = 'oldboy'name= name[:-1] //切片 范围-1去最后一个print(name)

-----------------------------------------------------------------------------------------------

使用 While 和 For 循环分别打印字符串每个元素

FOR:

name= 'alex'

for i in name: #for循环循环打印alex字符串中每个元素,循环一次一个元素

print(i)while:

name= 'alex'c=0while c < len(name): #获取了字符串长度,变量c等于0与字符串长度对比,每次循环打印出c值索引位置的变量,直到C大于字符串长度 因为索引第一位是0所以第一次进循环是0

print(name[c])

c+= 1FOR RANGE:

name= 'alex'

for v in range(0,len(name)): #令v循环取出0到字符串长度的值,按照索引找到相应变量值循环打印

print(name[v])----------------------------------------------------------------------------------------------请用代码实现:li= [‘alex’,’eric’,’rain]利用下划线将列表的每一个元素拼接成字符串"alex_eric_rain"

#第一种方法:

li = ['alex','eric','rain']

v= '_'i= v.join(li) #.join()功能 使用方法 .前面是要迭代的链接字符串,后面是迭代的列表

print(i)#第二种方法:

li = ['alex','eric','rain']

msg= '' #先设定一个空字符串

is_first = True #设定一个开头为True的变量

for item in li: #item循环取出li列表的值

if is_first : #程序继续进行 #如果接下来当is_First = False时,程序第二次将进入else

tmp=item #第一次获取的值是tmp 不带任何符号

is_first = False #令is_First = False 使下次循环可以进入else

else:

tmp="_"+item #除了第一次is_First进入了第一个if中获得的值为item外,其他都是 "_"+item也就相当于再字符串前面加上迭代符

msg += tmp #msg 第一次为tmp 后为附带_item的tmp值相加

print(msg)

------------------------------------------------------------------------------------------

实现一个整数加法计算器:如:content =input('请输入内容:')#如用户输入:5+9 或 5+ 9 或 5 + 9 ,然后进行分割再进行计算

#第一种方法:

i=input('请输入内容:\n')

i= i.strip() #去空格

a,b = i.split("+") #用split(),以加号为标注分割,分割出是两个值

a = int(a) #分别取整

b =int(b)print(a+b)#第二种方法:

sum =0

c= input('请输入内容')

n= c.split('+') #n为切割后两个值的列表

for i inn:

i=i.strip()

sum+= int(i) #用for循环分别取出后取合

print(sum)

------------------------------------------------------------------------------------------

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

#第一种方法

i = [11,22,33,44,55,66,77,88,99,90]

dic={'k1':[],'k2':[]} #字典中创建两个空键值

for item in i: #item循环取出i中的值

if item < 66:

dic['k1'].append(item) #当item<66时候添加到字典中 为k1的key中

elif item >66:

dic['k2'].append(item) #上同

print(dic)#第二种方法

i = [11,22,33,44,55,66,77,88,99,90]

dic={} #创建空的字典

for item ini:if item < 66:if 'k1' not in dic: #第一次进来时,如果再字典中没有K1这个key

dic['k1'] = [item,] #创建k1并且将“item,”值添加进去

else:

dic['k1'].append(item) #否则添加的使item没有","

elif item >66:if 'k2' not indic:

dic['k2'] = [item,] #上同

else:

dic['k2'].append(item)print(dic)

-------------------------------------------------------------------------------------------

购物车功能要求:要求用户输入自己拥有总资产,例如:2000 显示商品列表,让用户根据序号选择商品,加入购物车购买,如果商品总额大于总资产,提示账户余额不足,否则,购买成功。

goods = [ {"name": "电脑", "price": 1999},

{"name": "鼠标", "price": 10},

{"name": "游艇", "price": 20},

{"name": "美女", "price": 998}, ]whileTrue:

z= input('请输入总资产') #由用户输入资产

if z.isdecimal(): #判断是否为数字

z = int(z) #判断使数字后取整

print('总资产为:%d'% z) #格式化取出总资产数值

break #输入完毕break跳出while

else: #如果输入的不是数字重新输入,跳回while

print('输入格式错误请输入数字:')

s= 1

for item ingoods:print(s,item['name'],item['price']) #打印商品列表,s初值为1,每次循环s+1,放在字典的名称和价格前面,每次打印出字典中的一组数值,前面的s跟着加一达到序号的效果

s += 1n=0whileTrue:

v= input("请输入要选择的商品序号:输入q结算")if v.strip().lower() == 'q': #将用户输入的数据去空格,变小写,判断是否为条件中的q

break #如果使的话,跳出循环,进入结算功能

elif v.isdecimal(): #如果用户输入的不是结算,判断是否使商品序号 ,判断是否为数字

v = int(v) #如果是的话取整

if v-1 < len(goods): #判断索引是否小于长度,如果小于的话输出序号,按照索引打印商品名称和价格,将价格相加

print(v,goods[v-1]['name'],goods[v-1]['price'])

n+= goods[v-1]['price']else:print('输入错误请重新输入:')if n >z:print('余额不足,缺少金额:%d'% (n-z))else:print('购买成功,所剩金额:%d'%(z-n))-----------------------------------------------------------------------------------------------------------分页显示内容

a. 通过for 循环创建 301条数据,数据类型不限,如:

alex-1alex1@live.com pwd1

alex-2 alex2@live.com pwd2 alex-3alex3@live.com pwd3 ...

PS: 可使用while循环自己创建

user_list=[] 循环,创建字典 {‘user’:’xxx’, ‘email’:’xxx’,’pwd’:’xxxx’},将创建的字典追加到列表中。

dic= [] #创建空列表

i = 1

while i <= 301: #创建一个可以输出301列数据的循环

li = {'name':"alex%d" % (i,), #创建列表li 其中由name emal等 ,由占位符可以按301条数据来创建最后一位数值

'emal':"emal@%d" %(i,),'pwd':"user%d" %(i,)}

dic.append(li)#添加进dic空列表中

i += 1

print(dic)

b. 提示用户 请输入要查看的页码,当用户输入指定页码,则显示指定数据

注意:

- 每页显示 10 条数据

- 用户输入页码是非十进制数字,则提示输入内容格式错误

whileTrue:

page=input('请输入页码\n') #输入页码

page=page.strip()if page.isdecimal(): #判断输入的是否是数字

page=int(page) #取整,好继续接下来的操作

start = (page - 1) * 10 #定义一个变量值为页码-1乘10 这样的话如果要查询 9页 就是 80页开始

end = page * 10 #90页结束刚好十条数据一页

page_user = dic[start:end] #定义列表范围

for item in page_user: #按照输入的页码循环打印

print(item)else:print('输入错误请重新输入:')

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值