Python练习题-1

最近这几天的学习总练习:

#! /usr/bin/env python
# -*- coding: utf-8 -*-
# Date: 2017/6/9
#练习一/1:实现用户输入用户名和密码,当用户名为seven且密码为123时,显示登录成功,否则失败.
# d = {‘seven‘:‘123‘}
# while True:
#     user = input(‘Enter your username:‘)
#     passwd = input(‘Enter your password:‘)
#     if not user and not passwd:
#         continue
#     elif user in d and passwd == d[user]:
#         print(‘login ok‘)
#         break
#     else:
#         print(‘login fail‘)
# 练习一/2:实现用户输入用户名和密码,当用户名为seven且密码为123时,显示登录成功,否则失败.允许失败是重复输入三次
# d = {‘seven‘:‘123‘}
# n = 0
# while n < 3:
#     user = input(‘Enter your username:‘)
#     passwd = input(‘Enter your password:‘)
#     if not user and not passwd:
#         continue
#     elif user in d and passwd == d[user]:
#         print(‘login ok‘)
#         break
#     else:
#         print(‘login fail‘)
#         n += 1
# 练习一/3:实现用户输入用户名和密码,当用户名为seven或alex且密码为123时,显示登录成功,否则失败.允许失败是重复输入三次
# d = {‘seven‘:‘123‘,‘alex‘:‘123‘}
# n = 3
# while n > 0 :
#     user = input(‘Enter your username:‘)
#     passwd = input(‘Enter your password:‘)
#     if not user and not passwd:
#         continue
#     elif user in d and passwd == d[user]:
#         print(‘login ok‘)
#         break
#     else:
#         n -= 1
#         print(‘You can also try to log in‘,n,‘times‘)

#练习二/1:使用while循环实现输出2-3+4-5+6...+100的和
# n = 2
# jsum = 0
# osum = 0
# while n < 101:
#     if n % 2 == 1:
#         jsum += n
#         n += 1
#     else:
#         osum += n
#         n += 1
# print(osum-jsum)
#练习二/2:使用for循环实现输出1-2+3-4+5-6..+99的和
# jsum = 0
# osum = 0
# for x in range(1,100):
#     if x % 2 == 1:
#         jsum += x
#     else:
#         osum += x
# print(osum-jsum)
#练习二/3:使用while循环实现输出1,2,3,4,5,7,8,9,11,12
# n = 1
# while n < 13:
#     if n == 6 or n ==10:
#         n += 1
#         continue
#     else:
#         print(n,end = ‘ ‘)
#         n += 1
#练习二/3:使用while循环实现输出1-100内的所有奇数
# n = 1
# while n < 101:
#     if n % 2 == 1:
#         print(n)
#         n += 1
#     else:
#         n += 1
#练习二/3:使用while循环实现输出1-100内的所有偶数
# n = 1
# while n < 101:
#     if n % 2 == 1:
#         n += 1
#     else:
#         print(n)
#         n += 1

# 练习三:
# name = " alex "
# a.移除name变量对应的值的两边的空格,并输入移除有的内容
# print(name.strip())
# b.判断name变量对应的值是否以"al"开头,并输出结果
# print(name.startswith(‘a1‘))
# c.判断name变量对应的值是否以"x"结尾,并输出结果
# print(name.endswith(‘x‘))
# d.将name变量对应的值中的"l"替换为"p",并输出结果
# print(name.replace(‘l‘,‘p‘))
# e.将name变量对应的值根据"l"分割,并输出结果
# print(name.split(‘l‘))
# f.请问,上一题e分割之后得到的值是什么类型
# print(type(name.split(‘e‘)))
# g.将name变量对应的值中变大写,并输出结果
# print(name.upper())
# h.将name变量对应的值中变大小写,并输出结果
# print(name.title())
# i.请输出name变量对应的值的第2个字符?
# print(name[1])
# j.请输出name变量对应的值的前3个字符?
# print(name[0:3])
# k.请输出name变量对应的值的后2个字符?
# print(name[0:-2])
# l.请输出name变量对应的值中"e"所在的索引位置?
# print(name.index(‘e‘))

# 练习四:
# 写代码,有如下列表,按照要求实现每一个功能
# li = [‘alex‘,‘eric‘,‘rain‘,‘abc‘,‘123‘,‘aaa‘]
# a.计算列表长度并输出
# print(len(li))
# b.列表中追加元素"seven",并输出添加后的列表
# li.append(‘seven‘)
# print(li)
# c.请在列表的第1个位置插入元素"Tony",并输出添加后的列表
# li.insert(1,‘Tony‘)
# print(li)
# d.请修改列表第2个位置的元素为"Kelly",并输出修改后的列表
# li[2]=‘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个元素,并输出删除元素后的列表
# del li[2:5]
# print(li)
# i.请将列表所有的元素反转,并输出反转后的列表
# li.reverse()
# print(li)

# 练习五:
#正左直角
# for i in range(10):
#     for j in range(0,i):
#         print(‘*‘,end = ‘ ‘)
#     print(‘‘)
#倒左直角
# for i in range(10):
#     for j in range(0,10-i):
#         print(‘*‘,end = ‘ ‘)
#     print(‘‘)
#倒三角
# for i in range(10):
#     for j in range(0,i):
#         print(end = ‘ ‘)
#     for k in range(0,10 - i):
#         print(‘*‘,end = ‘ ‘)
#     print(‘‘)
#正三角
# for i in range(10):
#     for j in range(0,10 - i):
#         print(end = ‘ ‘)
#     for k in range(0,i):
#         print(‘*‘,end = ‘ ‘)
#     print(‘‘)
#九九乘法表
# for i in range(1,10):
#     for j in range(1,i+1):
#         print(‘%s*%s=%s‘%(i,j,i*j),end = ‘ ‘)
#     print(‘‘)

# 练习六
#取出列表中的名字,年龄,出生的年,月,日
# data=[‘alex‘,49,[1900,3,18]]
# name,age,birthday = data=[‘alex‘,49,[1900,3,18]]
# print(name)
# print(age)
# print(birthday)

#去掉重复
# names=[‘egon‘,‘alex‘,‘egon‘,‘wupeiqi‘]
# name = set(names)
# print(name)

#去掉重复,且保证列表顺序与原来保持一致
# names=[‘egon‘,‘alex‘,‘egon‘,‘wupeiqi‘]
# tmp = []
# for n in names:
#     if n not in tmp:
#         tmp.append(n)
# print(tmp)

#去掉重复,且保证列表顺序与原来保持一致
# names=[[1,2],3,[1,2],4]
# tmp = []
# for n in names:
#     if n not in tmp:
#         tmp.append(n)
# print(tmp)

#统计s=‘hello alex alex say hello sb sb‘中每个单词的个数
# s=‘hello alex alex say hello sb sb‘
# l = s.split()
# st = set(l)
# for x in st:
#     print(x,‘的个数为‘,l.count(x))

# for x in s:
#     print(len(x))

#练习七
#not and or 的优先级是  not>and>or  既优先判断 not 没有not判断 and 没有and 最后判断 or,如果有括号先判断括号内的
# if True or False and False:
#     print(‘yes‘)
# else:
#     print(‘no‘)
#输出结果为?为什么?  True or False ===> True   结果为:yes

# if (True or False) and False:
#     print(‘yes‘)
# else:
#     print(‘no‘)

#输出结果为?为什么?  True and False ===> False   结果为:no

#练习八
#编写if多分支,猜老男孩的年纪
# age = int(input(‘Please enter your age:‘))
# tag = True
# while tag:
#     user_input = input(‘Please enter your answer:‘)
#     if user_input.isdigit():
#         user_input = int(user_input)
#     else:
#         continue
#     if int(user_input) > age:
#         print(‘Guess big!‘)
#     elif int(user_input) < age:
#         print(‘Guess small!‘)
#     elif int(user_input) == age:
#         print(‘Congratulations,you guessed it!‘)
#         tag = False

#练习九
#用户输入用户名密码验证,验证通过后进入子循环,输入命令,命令若为q,则退出所有循环
# d = {‘abc‘:‘123‘}
# tag = True
# while tag:
#     user = input(‘Please enter your username:‘)
#     passwd = input(‘Please enter your password:‘)
#     if user in d and passwd  == d[user]:
#         while tag:
#             cmd  = input(‘>>:‘)
#             if cmd == ‘q‘:
#                 tag = False
#                 print(‘exit‘)
#             else:
#                 print(cmd)

#练习十
#循环取出元组中所有元素:方式一:while和for(按照索引),方式二:不按照索引的方式
# t=(1,2,3,4,5,6,7,8,9)
# n = 0
# while n < len(t):
#     print(t[n])
#     n += 1
#
# for x in range(len(t)):
#     print(t[x])
#
# for x in t:
#     print(x)

#练习十一
#循环读取列表以及子列表中所有元素
# l=[1,2,[3,4],[5,6]]
# for l in l:
#     if type(l) == list:
#         for s in l:
#             print(s)
#     else:
#         print(l)

#练习十二#数据类型练习题:
# 有十进制数n=10
# 转成二进制
# print(bin(10))
# 转成八进制
# print(oct(10))
# 转成十六进制
# print(hex(10))

#练习十三
#与用户交互,要求用户输入年龄和薪资,将用户输入的年龄转成整形,将用户输入的薪资转成浮点型
# age = int(input(‘Plese enter your age:‘))
# salary = float(input(‘Please enter your salary:‘))
# print(‘age:‘,age,‘salary:‘,salary)

#练习十四
# 用户输入用户名,年纪,工作,爱好,格式化输出如下内容(使用%s和format两种方式)
# ------------ info of Alex Li -----------
# Name  : Alex Li
# Age   : 22
# job   : Teacher
# Hobbie: girl
# ------------------ end -----------------

# name = input(‘Please enter your name:‘)
# age = input(‘Please enter your age:‘)
# job = input(‘Please enter your job:‘)
# hobby = input(‘Please enter your hobbies:‘)
# print(‘------------ info of %s -----------‘%name)
# print(‘‘‘Name:%s
# Age:%s
# Job:%s
# Hobby:%s
# ‘‘‘%(name,age,job,hobby),end = ‘‘)
# print(‘------------------ end -----------------‘)

# print(‘------------ info of %s -----------‘%name)
# info = ‘‘‘Name:{a}
# Age:{b}
# Job:{c}
# Hobby:{d}
# ‘‘‘
# print(info.format(a = name,b = age,c = job,d = hobby),end = ‘‘)
# print(‘------------------ end -----------------‘)

#练习十五
# s=‘alex say hello‘
# 切片取出第say
# s = s.split()
# print(s[1])
# 切片取出倒数后两个字符
# s = s.split()
# print(s[1:3])

#练习十六
# 编写循环,让用户输入年纪,如果输入为空,或者不为数字,则重新输入
# tag = True
# while tag:
#     age = input(‘Please enter your age:‘)
#     if age.isdigit():
#         print(‘age:‘,age)
#         tag = False

# 练习十七
# 用列表模拟上电梯的流程(队列)
#     循环生成一个1000个值的列表(入队)
#     循环取走这个1000个值(出队)
# l = []
# n = 0
# for x in range(1000):
#     l.append(x)
# while n < 1000:
#  print(l.pop(0))
#  n += 1

# 用列表模拟把衣服放箱子里,然后取衣服的流程(堆栈)
#     循环生成一个1000个值的列表(入栈)
#     循环取走这个1000个值(出栈)
# l = []
# n = 0
# for x in range(1000):
#     l.append(x)
# while n < 1000:
#  print(l.pop())
#  n += 1

#练习十八
# 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}
# d = {}
# d.update(dicta)
# for k2,v2 in dictb.items():
#     if k2 not in d:
#         d[k2] = v2
#     elif k2 in d:
#         d[k2] = d[k2]+v2
# print(d)

#练习十九   #此题egon老师未出完.
#alex发表了朋友圈:
# alex_msg=‘‘‘
#     我想淫一首小诗
#     歌颂我的同桌
#     她乌黑的头发
#     好像一直炸毛鸡
# ‘‘‘
#
#eogn发表了朋友圈:
# egon_msg=‘‘‘
#     总有文盲装文艺
# ‘‘‘
# comments={
#     alex_msg:{
#         ‘author‘:‘alex‘,
#         ‘comments‘:[
#             (‘wupeiqi‘,‘真傻比‘),
#             (‘元昊‘,‘确实傻比‘),
#             (‘egon‘,‘同上‘)
#         ],
#         ‘thumb_counts‘:3,
#     },
#     egon_msg:{
#         ‘author‘:‘egon‘,
#         ‘comments‘:[
#             (‘alex‘,‘说谁呢‘),
#             (‘元昊‘,‘你被开除了‘),
#             (‘wupeiqi‘,‘好刺激‘)
#         ],
#         ‘thumb_counts‘:2,
#     },
# }
#
#循环打印出朋友圈内容
# tag = True
# while tag:
#     cmd = input(‘查看朋友圈?(y/n)‘)
#     if cmd == ‘y‘:
#         for k1,v1 in comments.items():
#             print(k1)
#             for k2,v2 in v1.items():
#                 if type(v2) == list:
#                     for u,s in v2:
#                         print(‘%s:%s‘%(u,s))
#                 elif type(v2) != list:
#                     print(‘%s:%s‘%(k2,v2))
#                     tag = False
时间: 2024-10-11 14:08:40

Python练习题-1的相关文章

Python练习题 024:求位数及逆序打印

[Python练习题 024] 给一个不多于5位的正整数,要求:一.求它是几位数,二.逆序打印出各位数字. ---------------------------------------------- 这题如果不用递归,实在太简单了!!!代码上: str = input('请输入一个不多于5位的正整数:') print('这个数字是%s位数,逆序为%s.' % (len(str), str[::-1])) 输出结果如下: 请输入一个不多于5位的正整数:45931这个数字是5位数,逆序为13954

python练习题:循环打印嵌套列表

好久没写博文了,添加一个练习题,选自<head_first_python>~~ python列表:以中括号开始和结束"[]":列表项以逗号","分隔开,使用赋值操作符"="赋予一个标识符.如: movies=["the holy",1975,"terry jones",91,["graham",["michael","john",&qu

Python练习题 028:求3*3矩阵对角线数字之和

[Python练习题 028] 求一个3*3矩阵对角线元素之和 ----------------------------------------------------- 这题解倒是解出来了,但总觉得代码太啰嗦.矩阵这东西,应该有个很现成的方法可以直接计算才对-- 啰嗦代码如下: str = input('请输入9个数字,用空格隔开,以形成3*3矩阵:') n = [int(i) for i in str.split(' ')] #获取9个数字 mx = [] #存储矩阵 for i in ra

Python练习题 027:对10个数字进行排序

[Python练习题 027] 对10个数字进行排序 --------------------------------------------- 这题没什么好说的,用 str.split(' ') 获取输入的10个数字,然后用 lst.sort() 就完成排序了.代码如下: s = input('请输入10个数字,以空格隔开:') n = [int(x) for x in s.split(' ')] n.sort() print(n) 输出结果如下: 请输入10个数字,以空格隔开:3 23 4

Python练习题 023:比后面的人大2岁

[Python练习题 023] 有5个人坐在一起,问第五个人多少岁?他说比第4个人大2岁.问第4个人岁数,他说比第3个人大2岁.问第三个人,又说比第2人大两岁.问第2个人,说比第一个人大两岁.最后 问第一个人,他说是10岁.请问第五个人多大? ----------------------------------------------------- 这题真是--用心算就能算出来好吗?好吧,应该又是要训练递归函数,最近这几题总是跟递归纠缠不清.不过,似乎慢慢理解了递归函数的写法了.本题代码如下:

Python练习题 003:完全平方数

[Python练习题 003]一个整数,它加上100后是一个完全平方数,再加上168又是一个完全平方数,请问该数是多少? ------------------------------------------------- 所谓的“完全平方数”,就是开完根号仍然是整数. 数学渣是这么思考的:假设这个数 i 在10000以内.第一步:x = sqrt(i+100).如果 x == floor(x),则证明 x 是个整数.第二步道理也相同,但要记得把 x**2 把根号还原回来,再加上 168,然后再来

Python练习题 016:猴子吃桃

[Python练习题 016] 猴子吃桃问题:猴子第一天摘下若干个桃子,当即吃了一半,还不瘾,又多吃了一个.第二天早上又将剩下的桃子吃掉一半,又多吃了一个.以后每天早上都吃了前一天剩下的一半零一个.到第10天早上想再吃时,见只剩下一个桃子了.求第一天共摘了多少. -------------------------------------------------- 这题得倒着推.第10天还没吃,就剩1个,说明第9天吃完一半再吃1个还剩1个,假设第9天还没吃之前有桃子p个,可得:p * 1/2 -

Python练习题 009:水仙花数

[Python练习题 009] 打印出所有的“水仙花数”,所谓“水仙花数”是指一个三位数,其各位数字立方和等于该数本身.例如:153是一个“水仙花数”,因为153=1的三次方+5的三次方+3的三次方. ---------------------------------------------------------------------- 这题也是送分题,只要能把任意三位数的百位.十位.个位拆解出来就好办了.思路:将任意3位数除以100再向下取整,即可得到百位数.将这个3位数减去(百位数*10

Python练习题 025:判断回文数

[Python练习题 025] 一个5位数,判断它是不是回文数.即12321是回文数,个位与万位相同,十位与千位相同. ----------------------------------------------- 做题做到现在,这种题目已经很轻车熟路了.希望下一题能增加点难度啊~~~ x = input('请输入一个5位数:') if x[0] == x[4] and x[1] == x[3]: print('%s是个回文数' % x) else: print('%s不是回文数' % x) 输

Python练习题 015:一颗自由落地的球

[Python练习题 015] 一球从100米高度自由落下,每次落地后反跳回原高度的一半,再落下.求它在第10次落地时,共经过多少米?第10次反弹多高? ---------------------------------------------------------- 这题其实都可以笔算出来,因为也就是落地10次.看网上给出的结果也是五花八门,也不知道自己算的对不对,请大神们赐教. 我的思路是:除了第1次从100米高度落下,其余的9次都经历了"反弹-落地"的过程,每个过程来回走过的长