【python练习题4】循环结构while+for-in *+*外卖随机程序

一、换钱的交易

题干:一个百万富翁碰到一个陌生人,陌生人找他谈了一个换钱的计划.该计划如下:我每天给你10万,而你第一天给我一元钱,第二天我仍给你十万,你给我二元钱,第三天我仍给你十万,你给我四元钱......你每天给我的钱是前一天的两倍,直到满n(0<=n<=30)天.百万富翁非常高兴,欣然接受了这个契约.请编写一个程序,计算这n天中,陌生人累计给了富翁多少钱,富翁累计给了陌生人多少钱.
检验例子:30天      富翁3000000        陌生人1073741823元.


sor = int(input())
i = 1
stranger=1
rich_man = 100000
for j in range(1,sor):
    stranger += (i*2)#1.3  2.7  3.15
    rich_man += 100000
    i = i*2#2   4   8
print(rich_man)
print(stranger)

二、找到最大最小的数

题干:用户输入若干整数,试找出其中的最大数和最小数。

输入样例:

5
 89 62 96 74 52 

输出样例:

96 52

num_count = int(input())
num_str = map(int,input().split(" "))
num_str = list(num_str)
num_str.sort()
print(int(num_str[num_count-1]),int(num_str[0]))

 三、 分别统计输入中字母、数字的个数

分别统计标准输入中字母、数字字符个数。从标准输入中读取一个字符串,可以包含任意字符。分别输出字符串中字母(大小写字母都要进行统计)、数字个数,相邻数字之间用一个空格区分,输出末尾没有空格。

word_str = input()
num_list = 0
word_list = 0
for i in word_str:
    if('0'<=i<='9'):
        num_list += 1
    if('A'<=i<='Z' or 'a'<=i<='z'):
        word_list +=1
print(word_list,num_list)

四、 求水仙花数

题干:输入一个正整数N(N大于等于100小于等于999),求出100~N之间的所有水仙花数。所谓  的水仙花数是:如果一个三位数的个位数、十位数、百位数的立方和等于该数自身,就称这个数为水仙花数。输入一个正整数N。输出从100到N之间的所有水仙花数,每个数以回车结束。

N = int(input())
for i in range(100,N+1):
    ge = i%10
    a = i-ge
    shi = (a//10)%10
    bai =i//100
    ge **=3
    shi **=3
    bai **=3
    if(i == ge+shi+bai):
        #print(ge,shi,bai,)
        print(i)


五、素数判断

由键盘当输入一个整数n,对它进行判断,当为素数时,输出1.否则,输出0.控制台输入一个整数。控制台输出判断结果0或者1.

num =int(input())
a =list()
for i in range(2,num+1):
    flag = True#2-7
    for j in range(2,i):#
        if(i%j == 0):
            flag = False
            #print("1")
            break#if(i ==1 or i == num):

    if (flag):
        a.append(i)
    else:
        pass
if(a[len(a)-1] == num):
    print("1")
else:
    print("0")

此题与之前写过的一个题有异曲同工之妙,可以再次去看看详细揣摩一下。(第二个)

https://blog.csdn.net/weixin_52451652/article/details/126809521?spm=1001.2014.3001.5502icon-default.png?t=M85Bhttps://blog.csdn.net/weixin_52451652/article/details/126809521?spm=1001.2014.3001.5502

六、外卖随机

每天很多人都有不知道吃饭时刻吃什么,那么为了解决这个烦恼我们就将它托付给无情的代码吧,当机立断一些

import random

txt_path = input("请输入txt的文件的path:")
txt = open(f'{txt_path}','r',encoding='utf-8');
name_list = [];
for i in txt:
    i = i.replace('\n','')
    name_list.append(i)
print(name_list)
txt.close()
while True:
    if(len(name_list) == 0):
        print("结束!");
        break;
    num = random.randint(0,len(name_list)-1);
    a = input("按下空格退出,按下其他键继续:")
    if(a == '\0'):
        print('结束!')
        break
    else:
        print(f'本次选中的是:{name_list[num]}')
    an = input("您对结果是否满意,若满意则按下X/x,不满意则请按q/Q:")
    if(an == 'q' or an == 'Q'):
        continue
    if(an == 'x' or an == 'X'):
        break

这里我们使用了open()打开我们输入的文件地址(这个文件写着所有外卖的名字或者相干信息)这里讲一下这个open()函数

file = open(file_name [, mode='r' [ , buffering=-1 [ , encoding = None ]]])

此格式中,用 [] 括起来的部分为可选参数,即可以使用也可以省略。其中,各个参数所代表的含义如下:

  • file:表示要创建的文件对象。
  • file_name:要创建或打开文件的文件名称,该名称要用引号(单引号或双引号都可以)括起来。需要注意的是,如果要打开的文件和当前执行的代码文件位于同一目录,则直接写文件名即可;否则,此参数需要指定打开文件所在的完整路径。
  • mode:可选参数,用于指定文件的打开模式。可选的打开模式如表 1 所示。如果不写,则默认以只读(r)模式打开文件。
  • buffering:可选参数,用于指定对文件做读写操作时,是否使用缓冲区(本节后续会详细介绍)。
  • encoding:手动设定打开文件时所使用的编码格式,不同平台的 ecoding 参数值也不同,以 Windows 为例,其默认为 cp936(实际上就是 GBK 编码)

剩下的我们只要将生成的随机数来断定我们吃饭吃什么吧!

同时为了怕你挑我们还增加了函数的可持续性,如果不满意我们继续随机,我们可以看到每次随机的外卖是不一样的,因此也不必担心关掉后会不会有影响。

如果觉得想给别人的话,可以封装成.exe文件然后发送给别人

  • 2
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

K-Pioneer

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值