python每日练习0730

"""
1、 现有面包、热狗、番茄酱、芥末酱以及洋葱,数字显 示有多少种订购组合,
其中面包必订,0 不订,1 订,比如 10000,表示只订购面包
"""
count = 0
for b in '1':
    for h in '01':
        for f in '01':
            for t in '01':
                print(b+h+f+t)
                count += 1

print("一共有%s种组合" %count)

"""
2、输入 5 个名字,排序后输出
"""
name_list = ['Lucy','Tom','Arm','HOOT','Aood']
result = sorted(name_list)
print(result)

"""
3、实现一个简单的单词本
- 功能:
- 可以添加单词和词义,当所添加的单词已存在,让用户知道;
- 可以查找单词,当查找的单词不存在时,让用户知道;
- 可以删除单词,当删除的单词不存在时,让用户知道;
- 以上功能可以无限制操作,直到用户输入 bye 退出程序。
"""

info = '''
add:add the word and word mean
find:find the word
del:delete the word
bye:quit the program
'''
print(info)
word_dict = {}
while 1:
    commant = input("请输入指令:")
    if commant == 'bye':
        break
    if commant == 'add':
        word = input("请输入需要添加的单词:")
        word_mean = input("请输入单词的意思:")
        if word not in word_dict:
            word_dict[word] = word_mean
        else:
            print("the word is already exists")
    elif commant == 'find':
        word = input("请输入您需要查找的单词:")
        if word in word_dict:
            print(word_dict[word])
        else:
            print("the word is not exists")
    elif commant == 'del':
        word = input("请输入需要删除的单词:")
        if word not in word_dict:
            print("the word is not exists")
        else:
            del word_dist[word]


"""
4、输入一个正整数,输出其阶乘结果
"""
n = int(input("请输入一个正整数:"))
res = 1
for i in range(1,n+1):
    res *= i

print(res)

#5、输入 3 个数字,以逗号隔开,输出其中最大的数
nums = input("请输入3个数字,以,隔开")
nums_list = nums.split(',')
nums_int_list = list(map(int,nums_list))
print(nums_int_list)
max_num = nums_iny_list[0]
for i in nums_int_list:
    if i > max_num:
        max_num = i

print(max_num)


# 6、求两个正整数 m 和 n 的最大公约数
result = []
m = 100
n = 550
for i in range(2,m+1):
    if m % i == 0 and n % i == 0:
        result.append(i)

for j in range(2,n+1):
    if m % j == 0 and n % i == 0:
        result.append(j)


print(result)
print(max(result))


#第二章:控制流
#习题 1:设定一个用户名和密码,用户输入正确的用户名和 密码,则显示登录成功,
# 否则提示登录失败,用户最多失败3 次,否则退出程序。
#提示:使用 while 或者 for 来限定重试的次数,
username = 'feng'
pwd = '123456'

for i in range(3):
    input_username = input('please input username:') #input需要放在循环题里面
    input_pwd = input('please input password:')
    if input_username == username and input_pwd == pwd:
        print('secessfull login!')
    else:
        print('username or pws is error')

    if i == 2:
        print('times is off')
        


#习题 2:自己实现一个函数,在一句话中查找某个单词的算发,存在返回索引号,否则返回 False
s = 'I am a good good girl ~~ I can fly~~'
def findWord(s,word):
    res = []
    if not isinstance(s,str) or not isinstance(word,str):
        return None
    length = len(word)
    if word not in s:
        return False
    for i in range(len(s)):
        if s[i:i+length] == word:
            res.append(i)
    return res


print(findWord(s,'good'))
print(findWord(s,'I'))
print(findWord(s,'AAA'))
print(findWord(s,5))


#习题 3:随机生成一个整数,1-100 之间你最多猜 5 次,
# 如果猜大了,提示大了小了,提示小了,猜对了,提示猜中。
# 5 次都没猜中,就猜没猜中。
import random
random_num = random.randint(1,100)

for i in range(5):
    input_num = int(input('please input number:'))
    if input_num == random_num:
        print("恭喜~~猜对啦~~")
    elif input_num > random_num:
        print("猜大了~~")
    elif input_num < random_num:
        print("猜小了")
    if i == 4:
        print('times is out')
        
        
#习题 4:使用 while,计算随机数之和,超过 100 的时候,停止程序。
# 随机数 1-20 的范围产生,要求记录一下产生的随机数,以及最后的和,以及随机数的个数。
import random
random_num_list = []
sum_num = 0
while sum_num < 100:
    #sum_num = 0
    random_num = random.randint(1,20)
    random_num_list.append(random_num)
    for i in random_num_list:
        sum_num += i

print("产生的随机数是:",random_num_list)
print("产生的随机数之和是:%s" %sum_num)
print("产生的随机数的个数是:%s" %len(random_num_list))

#习题 5:遍历一个列表中的嵌套列表和元组的所有元素
# 将 1-12 的数字进行输出![[[1,2,3],4,5],7,8,(9,10,(11,12))]
s = [[[1,2,3],4,5],7,8,(9,10,(11,12))]
for i in s:
    if isinstance(i,(list,tuple)):
        for j in i:
            if isinstance(j,(list,tuple)):
                for v in j:
                    print(v)
            else:
                print(j)
    else:
        print(i)

#习题 6:判断一个数是否是素数
def isprime(n):
    for i in range(2,n):
        if n % i == 0:
            return False
    else:
        return True

print(isprime(5))
print(isprime(50))


#习题 7:求 100 以内的素数和
result =[]
for i in range(1,101):
    if isprime(i):
        result.append(i)

print(result)

#习题 8:用户输入多个数字,
# 当输入偶数的时候求和,输 入奇数,不求和,输入.(一个点)的时候结束求和,打印求 和结果
sum_num = 0
while 1:
    num = input("请输入一个正整数:")
    if num =='.':
        break
    if int(num) % 2 == 0:
        sum_num += int(num)
    if int(num) % 2 != 0:
        pass

print("输入的数字之和是:%s" %sum_num)

#习题 9:嵌套循环输出 10-50 中个位带有 1-5 的所有数字:
#方法 1:数字和 10 取余,判断是否大于 0 并且小于等于 5
#方法 2:将数字转换为 str,取各位的字符判断字符是否在 1-5 内。
#方法 3:拼接数字
for i in range(10,51):
    if 0 < i % 10 <= 5:
        print(i, end =' ')


for i in range(10,51):
    if str(i)[-1] in '12345':
        print(i,end =' ')


for i in range(1,5):
    for j in range(1,6):
        print(str(i) + str(j))



#习题 10、 用户输入不同的数据,当输入的数据达到 3 个数 字的时候,求和结束程序。
# (数字可以是整数)
result = 0
for i in range(3):
    num = int(input("请输入数字:"))
    result += num

print(result)

#需要考虑输入的是不是数字
result = 0
for i in range(3):
s = input("请输入:")
if s not in '0123456789':
pass
else:
result += int(s)

print(result)

原文地址:https://www.cnblogs.com/ff-gaofeng/p/11269964.html