作业

'''
. 尝试实现一个管理系统

=======通讯录管理系统=======
1.增加姓名和手机
2.删除姓名
3.修改手机
4.查询所有用户
5.根据姓名查找手机号
6.退出
'''
d = {}

print('=======通讯录管理系统=======')

print('1.增加姓名和手机')
print('2.删除姓名')
print('3.修改手机')
print('4.查询所有用户')
print('5.根据姓名查找手机号')
print('6.退出')
while True:
    c = int(input('请选择要执行的选项:'))
    if c == 1:
        name = input('请输入你的姓名:')
        d[name] = input('请输入你的手机:')
       
    #print(d)
    if c == 2:
        name1 = input('请输入要删除的姓名:')
        d.pop(name1)
        print('已删除')
    if c == 3:
        name=input('请输入要修改手机号的姓名:')
        num = input('请输入新的手机号:')
  d[name] = num
        print(d[name])
    if c == 4:
        for i in d.keys():
            print(i)
    if c == 5:
        name3 = input('请输入要查找的姓名:')
        print(d[name3])
    if c == 6:
        print('退出')
        break
'''
 随机产生密码:

在26个大小写字母和10个数字组成的列表中,随机生成10个8位密码



'''
import random

l = []
num = []
word = []


for i in range(0,10):
    num.append(i)
for j in range(65,91):
    word.append(chr(j))
for h in range (97,123):
    word.append(chr(h))
l = num + word
print (l)

for i in range(10):
    m = random.sample(l,8)
   
    print(m)
1.通过代码实现如下转换:

? 二进制转换成十进制:v = “0b1111011”

? 十进制转换成二进制:v = 18 

? 八进制转换成十进制:v = “011” 

? 十进制转换成八进制:v = 30 

? 十六进制转换成十进制:v = “0x12” 

? 十进制转换成十六进制:v = 87

'''
v =0b1111011
print(int(v))
v = 18
print(bin(v))
v = '011'
print(int(v))
v = 30
print(oct(int(v)))
v = 0x12
print(int(v))
v = 87
print(hex(int(v)))
'''
v1 = 1 or 3

v2 = 1 and 3

v3 = 0 and 2 and 1

v4 = 0 and 2 or 1

v5 = 0 and 2 or 1 or 4

v6 = 0 or Flase and 1
'''


v1 = 1

v2 = 3

v3 = 0

v4 = 1

v5 = 1

v6 = Flase
'''
7求结果: a. [ i % 2 for i in range(10) ] b. ( i % 2 for i in range(10) )
'''
a = [i % 2 for i in range(10)]#[0, 1, 0, 1, 0, 1, 0, 1, 0, 1]
print(a)

b = (i % 2 for i in range(10))#<generator object <genexpr> at 0x0000018E9F637B48>
print(b)
'''
8.求结果: a. 1 or 2 b. 1 and 2 c. 1 < (2==2) d. 1 < 2 == 2
'''
a = 1

b = 2

c = Flase

d = Flase

'''
1.请写出与 10 < cost < 50 等价的表达式
'''
10 < cost and cost < 50
2.Python3 中,一行可以书写多个语句吗?
可以,用空格隔开
Python3 中,一个语句可以分成多行书写吗?
可以 用\换行

'''
我们人类思维是习惯于“四舍五入”法,你有什么办法使得 int() 按照“四舍五入”的方
式取整吗?
可以
'''
s = eval(input('输入一个小数:'))
a = int(s + 0.5)
print(a)
.请用最快速度说出答案:not 1 or 0 and 1 or 3 and 4 or 5 and 6 or7 and 8 and 9
4
'''
5.爱因斯坦曾出过这样一道有趣的数学题:有一个长阶梯,若每步上2阶,
最后剩1阶;若每步上3阶,最后剩2阶;
若每步上5阶,最后剩4阶;若每步上6阶,最后剩5阶;只有每步上7阶,

最后刚好一阶也不剩。请编程求解该阶梯至少有多少阶?
'''
l = []
for i in range(500):
    if i % 2 ==1 and i % 3 == 2 and i % 5 ==4 and i % 6 == 5 and i % 7 == 0:
        
        l.append(i)
print('该楼梯至少有{}阶'.format(min(l)))
'''
6.假设有 x = 1,y = 2,z = 3,请问如何快速将三个变量的值互相交换?
'''
x = 1

y = 2

z = 3

x,y,z = z, x, y
print(x,y,z)
7.目测以下程序会打印什么?

   while True:

        while True:

            break

            print(1)

        print(2)

        break

   else:

        print(3)
输出 2 

'''
8.member.append(['竹林小溪', 'Crazy迷恋'])
和member.extend(['竹林小溪', 'Crazy迷恋']) 实现的效果一样吗?
'''
member = []
member.append(['竹林小溪','Crazy迷恋'])
print(member)
member.extend(['竹林小溪','Crazy迷恋'])
print(member)
# 效果不一样 ,append 是加入了一个元组,extend是加入了两个元素。
'''
9.请问如何将下边这个列表的'小笨蛋'修改为'小坏蛋'?

  list1 = [1, [1, 2,['小笨蛋']],3, 5, 8, 13, 18]
  '''
list1 = [1,[1,2,['小笨蛋']],3,5,8,13,18]
list1[1][2]='小坏蛋'
print(list1)
'''
10.要对一个列表进行顺序排序,请问使用什么方法?
'''
l = [8,9,7,5,6]
l.sort()
print(l)
'''
.要对一个列表进行逆序排序,请问使用什么方法?
'''
l = [1,2,3,4,5,6]
l.reverse()
print(l)

12.什么情况下你需要使用元组而不是列表?
  当元组和列表掉下水,你会救谁?
当需要对内容做增删改查的时候使用列表。当内容不需要做改变的时候用元组。
当元组和列表掉下水时,选择救列表,因为列表可以做增删改查,可以对其中的内容进行操作,有一定灵活性而元组则是不可更改的,更具稳定性。

13.x, y, z = 1, 2, 3 请问x, y, z是元组吗

不是 
元组的创建形式:
Tup1 = (’sss’,’aaa’)
Tup2 = (1,2,3)
Tup3 =’a’,’b’,’c’
所有多对象的,逗号分隔的,没有明确用符号定义的这些集合默认的类型是元组
'''
14.编写一个进制转换程序(提示,十进制转换二进制可以用bin()这个BIF):
'''
print('进制转换程序')



print('1.十进制转换为二进制')
print('2.十进制转换为八进制')
print('3.十进制转换为十六进制')
print('4.二进制转换为八进制')
print('5.二进制转换为十进制')
print('6.二进制转换为十六进制')
print('7.八进制转换为二进制')
print('8.八进制转换为十进制')
print('9.八进制转换为十六进制')
print('10.十六进制转换为二进制')
print('11.十六进制转换为八进制')
print('12.十六进制转换为十进制')
while True:
    a = input('请输入数值:')
    c = int(input('请选择转换方式:'))

    if c == 1:
        print(bin(int(a)))
    if c == 2:
        print(oct(int(a)))
    if c == 3:
        print(hex(int(a,)))
    if c == 4:
        print(oct(int(a,2)))
    if c == 5:
        print(int(a,2))
    if c == 6:
        print(hex(int(a,2)))
if c == 7:
        print(bin(int(a,8)))
    if c == 8:
        print(int(a,8))
    if c == 9:
        print(hex(int(a,8)))
    if c == 10:
        print(bin(int(a,16)))
    if c == 11:
        print(oct(int(a,16)))
    if c == 12:
        print(int(a,16))
        break
15.我们根据列表、元祖和字符串的共同特点,把它们三统称为什么?有什么共性
统称为序列 
1.都可以通过索引得到每一个元素
2.默认索引值从0开始(可以负数索引)
3.可以通过切片得到一个范围内的元素集合
可以进行(in  not  in   相加 相乘一个整型数  求索引值  求len  max  min 统计出现次数 .count)
'''
19.盒子里有3个红球,3个蓝色球,4个黄球,现刘柱要从盒子里拿出8个球,
问有多少种情况
'''
n = 0
for i in range(1,4):
    for j in range(1,4):
        for h in range(1,5):
            if i + j + h == 8:
                n +=1
                print('红球取{}个,蓝球取{}个,黄球取{}个,'.format(i,j,h))

print('共有%d种情况'%n)
'''
20.打印9 9乘法表
'''
for i in range(1,10):
    for j in range(1,i+1):
        print('{} * {} = {}'.format(j,i,i * j),end = ' ')
    print()
'''
21.猴子得到一堆桃,当天吃了一半之后,又多吃了1个。
以后每天,猴子都吃了剩余的一半桃子之后,又多吃一个。
在第10天,只剩下1个桃子。输出这堆桃最初有多少个
'''
s = 1
for i in range (9):
    s = (s + 1) * 2
    
print(s)

 

posted @ 2018-12-10 17:54  赵冀华  阅读(171)  评论(0编辑  收藏  举报