精华内容
下载资源
问答
  • 主要为大家详细介绍了python实现随机加减法生成器,练手小项目,文中示例代码介绍非常详细,具有一定参考价值,感兴趣小伙伴们可以参考一下
  • 主要给大家介绍了关于Python3显示当前时间、计算时间差及时间加减法的相关资料,文中通过示例代码介绍非常详细,对大家学习或者使用Python3具有一定参考学习价值,需要朋友们下面来一起学习学习吧
  • Python加减法计算闯关小游戏源代码

    千次阅读 2020-05-28 15:09:13
    加法计算闯关小游戏,要求:1、两位数+两位数,2、答对一题加一分,答错一题减一分,3、答对十分即过关。 from random import randint level=0 #0级开始 while level<10: #当级别小于10级时 a=randint(0,...

    加法计算闯关的小游戏,要求:1、两位数+两位数,2、答对一题加一分,答错一题减一分,3、答对十分即过关。

    from random import randint
    
    level=0                    #0级开始
    
    while level<10:            #当级别小于10级时
    
        a=randint(0,100)       #随机生成两位数整数
    
        b=randint(0,100)
    
        c=input(f"{a}+{b}=")
    
        c=int(c)
    
        if c==a+b:             #计算结果正确
    
            level+=1           #级别加1
    
            print(f"答对啦!现在等级是{level}级,达到10级就胜利了!")
    
        else:                  #计算结果错误
    
            level-=1
    
            print(f"答错啦!现在等级是{level},达到10级就胜利了!再接再厉!")
    
    print(f"成功达到10级!挑战成功!棒棒哒!")
    

    减法闯关小游戏,对上面程序进行改造,需要注意进行减法前需对两个数字进行比较,以免出现负数。

    from random import randint
    
    level=0                    #0级开始
    
    while level<10:            #当级别小于10级时
    
        a=randint(0,100)       #随机生成两位数整数
    
        b=randint(0,100)
    
        if a>=b:
    
            c=input(f"{a}-{b}=")
    
            c=int(c)
    
            if c==a+b:             #计算结果正确
    
                level+=1           #级别加1
    
                print(f"答对啦!现在等级是{level}级,达到10级就胜利了!")
    
            else:                  #计算结果错误
    
                level-=1
    
                print(f"答错啦!现在等级是{level},达到10级就胜利了!再接再厉!")
    
    print(f"成功达到10级!挑战成功!棒棒哒!")
    

    有了这款加减法小游戏,就可以帮助小朋友提高数学了。
    更多Python源代码,请关注公众号:Python代码大全
    在这里插入图片描述

    展开全文
  • 时间戳的加减法-python

    2020-11-27 18:15:30
    在写过程中有用到时间戳加减法,故以此记录。 下面是主代码: # -*- coding:UTF-8 -*- import pandas as pd import os import datetime df_id = pd.read_excel('./跟踪商品.xlsx') file_lst = os.listdir('./...

    由于工作需要写一个跟踪产品调价前后销量变化的程序。
    在写的过程中有用到时间戳加减法,故以此记录。

    下面是主代码:

    # -*- coding:UTF-8 -*-
    import pandas as pd
    import os
    import datetime
    
    df_id = pd.read_excel('./跟踪商品.xlsx')
    file_lst = os.listdir('./database')
    
    def concat_file(file_lst):
        """
        ::合并数据源::
        """
        lst = []
        data_lst = []
        for i in file_lst:
            filename = './database' + '/' + i
            lst.append(filename)    # 获取文件名列表
        for x in lst:
            df = pd.read_excel(x)
            data_lst.append(df)     # 获取所有文件的Dataframe对象
        #df1 = pd.read_excel(file1)
        #df2 = pd.read_excel(file2)
        df3 = pd.concat(data_lst, axis=0)
        return df3
    
    def create_dict(data):
        """
        :将编码与调价日期构造为字典:
        """
        lst1 = data['产品编码'].tolist()
        lst2 = data['调价时间'].tolist()
        dic1 = dict(zip(lst1, lst2))
        return dic1
    
    def get_before_date(date):
        """
        :获取目标时间的前一周日期:
        """
        delta7 = datetime.timedelta(days=7)
        if type(date) == str:
            start_time = datetime.datetime.strftime(date, '%Y/%m/%d')
            end_time = start_time - delta7
        else:
            end_time = date - delta7
        return end_time
    
    def get_before_data(data, id_, dict_id):
        '''
        :以调价日期为分界线,获取调价前7天销量:
        '''
        sub_time = dict_id[id_]
        end_time = get_before_date(sub_time)
        df = data[(data['日期']>end_time) & (data['日期']<=sub_time)]
        df1 = df.groupby(['商品代码']).sum()
        try:
            df1 = df1.loc[id_]
            sub = df1['销售数量']
            #print('商品代码',df1)
        except KeyError:
            sub = 0.1
        return sub
    
    def get_after_date(date):
        """
        :获取目标时间的后一周日期:
        """
        delta7 = datetime.timedelta(days=7)
        #print(date)
        if type(date) == str:
            start_time = datetime.datetime.strftime(date, '%Y/%m/%d')
            end_time = start_time + delta7
        else:
            end_time = date + delta7
        return end_time
    
    def get_after(data, id_, dict_id):
        '''
        :以调价日期为分界线,获取调价后的销售数据,以周为单位:
        '''
        sub_time = dict_id[id_]
        end_time = get_after_date(sub_time)
        date_lst = data['日期'].tolist()
        sub_lst = []
        while end_time in date_lst:
            try:
                df = data[(data['日期']>sub_time) & (data['日期']<=end_time)]
                df1 = df.groupby(['商品代码']).sum()
                df1 = df1.loc[id_]
                sub = df1['销售数量']
            except KeyError:
                sub = 0.1
            sub_lst.append(sub)
            sub_time = end_time     # 起始日期等于上一周的终止日期
            end_time = get_after_date(end_time)
        return sub_lst
    
    def input_excel(sub, week_sub, id, dict):
        '''
        :将数据传入表格中:
        '''
        week_counts = len(week_sub)         # 获得该ID调价后的周数
        res = []
        result = []
        result.append(id)   # 传入产品id构建数组
        result.append(dict[id])
        result.append(sub)  # 传入产品调价前一周销量
        for i in week_sub:
            result.append(i)    # 传入调价后每周的销量
        data = pd.DataFrame()
        res.append(result)   
        data = data.append(res, ignore_index=True) # 构建Dataframe对象
        columns = ['产品编码', '调价时间','调价前一周销量']
        n = 1
        while n <= week_counts:
            columns.append(f'第{n}周')
            n += 1
        # print('columns:', columns)    
        data.columns = columns
        # print(data)
        return data
    
    def merge_excel(data, df):
        data = data.merge(df, how='outer') 
        print(data)
        return data
        
    if __name__ == "__main__":
        data = concat_file(file_lst)
        id_time = create_dict(df_id)
        lst = df_id['产品编码'].tolist()
        new_data = pd.DataFrame()
        new_df = df_id
        df_lst = pd.DataFrame()
        for i in lst:
            sub = get_before_data(data, i, id_time) 
            week_sub = get_after(data, i, id_time) 
            df = input_excel(sub, week_sub, i, id_time) 
            #new_df.drop_duplicates(subset=['产品编码','调价时间'],keep='last',inplace=True)
            df_lst = df_lst.append(df)
        dff = merge_excel(new_df, df_lst)
        dff.to_excel('./调价跟踪.xlsx')
    

    其中:

    delta7 = datetime.timedelta(days=7)
    

    此段代码则是将7天的时间长度存入变量,以便下文操作,当然,你可以是1、是3、是5、是30都行,此处为7主要是需求要求周期为一周。

     while end_time in date_lst:
            try:
                df = data[(data['日期']>sub_time) & (data['日期']<=end_time)]
                df1 = df.groupby(['商品代码']).sum()
                df1 = df1.loc[id_]
                sub = df1['销售数量']
            except KeyError:
                sub = 0.1
            sub_lst.append(sub)
            sub_time = end_time     # 起始日期等于上一周的终止日期
            end_time = get_after_date(end_time)
    

    由于需求是长期跟踪,没有明确结束时间,此处用while循环来判断一个产品在调价后一周期后的时间是否存在于数据源中来确定计算到第几周。

    展开全文
  • 儿子今年开始上幼小衔接, 老师布置作业是每天出20道加减法算术题. 一开始都是他妈妈给他出, 这几天放假, 这个任务就落到了我身上. 每天都要出20道题, 实在是太麻烦了, 身为一个码农, 当然是代码走起(好吧, ...

    儿子今年开始上幼小衔接, 老师布置的作业是每天出20道加减法算术题. 一开始都是他妈妈给他出的, 这几天放假, 这个任务就落到了我的身上.

    每天都要出20道题, 实在是太麻烦了, 身为一个码农, 当然是代码走起(好吧, 其实是搜索走起).

    网上有很多此功能的代码, 基本上都是生成类似于1+2=?的格式, 需要计算的部分都是等号右边的结果. 不过给儿子出的题, 老师要求的是对算术题填空, 类似于?+1=3的格式.

    将网上的代码稍加修改, 加上随机生成算术题中填空的代码, 这样以后就轻松啦

    # -*- coding: utf-8 -*-  
    """ 
    @author: DoraVemon
    @file: autogen_arith.py 
    @time: 2018/10/2 8:45 
    """
    
    import random
    from datetime import datetime
    
    
    def add_test(sum_value, count):
        '''
        返回指定个数(count)的计算题,以计算某数(sum_value)以内的加法
        :param sum_value: 指定某数以内(的加法)
        :param count: 随机生成多少题
        :return: 返回count个计算题
        '''
    
        questions = []
        count_temp = 0  # 计数器
    
        while True:
            i = random.randrange(0, sum_value)  # 随机生成 第一个加数
            j = random.randrange(1, sum_value + 1)  # 随机生成 和
            l = j - i  # 第二个加数
            if l > 0:
                # str_temp = str(i) + ' + ' + str(l) + '' + ' =    \n'
                # questions += str_temp
                questions.append((i, l, j))
                count_temp += 1
                if count_temp >= count:
                    break
    
        return questions
    
    
    def resort(quiz):
        rng_index = random.randint(0, 2)
        flag_addsub = random.randint(0, 1)
        if flag_addsub:
            str_temp = (str(quiz[0]) if rng_index != 0 else '(  )') + ' + ' \
                       + (str(quiz[1]) if rng_index != 1 else '(  )') \
                       + ' = ' \
                       + (str(quiz[2]) if rng_index != 2 else '(  )') + '\n'
        else:
            str_temp = (str(quiz[2]) if rng_index != 0 else '(  )') + ' - ' \
                       + (str(quiz[1]) if rng_index != 1 else '(  )') \
                       + ' = ' \
                       + (str(quiz[0]) if rng_index != 2 else '(  )') + '\n'
        return str_temp
    
    
    def main():
        sum_value, count = 10, 20  # 随机出20题,10以内的加减法
        text = ''
        quizs = add_test(sum_value, count)
        for quiz in quizs:
            text += resort(quiz)
        title = '%d以内加法算术题' % sum_value + datetime.now().strftime("_%Y%m%d") + '.txt'
        with open(title, "w") as f:
            f.write(text)
        f.close()
    
    
    if __name__ == '__main__':
        main()

     

     出来的题目是这样子的

    4 - (  ) = 1
    3 + (  ) = 9
    6 - 2 = (  )
    (  ) - 1 = 0
    7 - 7 = (  )
    7 - 2 = (  )
    4 - (  ) = 3
    9 - 4 = (  )
    4 + 1 = (  )

     

     

    转载于:https://www.cnblogs.com/techlynn/p/9736351.html

    展开全文
  • 机器中的加减法并不像我们实际生活中一样,带有正负号,比较容易运算,机器中只有0和1,那就需要一种算法来实现加减法运算。 首先,我们要明确目标是要进行带符号的数字(signed)进行加减法运算。 由于没有正负号,...

    机器中的加减法并不像我们实际生活中一样,带有正负号,比较容易运算,机器中只有0和1,那就需要一种算法来实现加减法运算。

    首先,我们要明确目标是要进行带符号的数字(signed)进行加减法运算。

    由于没有正负号,我们要采取一种措施来使某一位变为符号位,即最高位,如果是负数那么表示1,正数即为0,不再赘述。

    下面来表示几个数字,如:(在此,用8位来表示一个数字,即1Byte)

    1: 0000 0001

    -1:1000 0001

    0:0000 0000

    每个数字有三种表示形式:(过余码不介绍)

    1.原码

    2.反码(正数反码和原码相同):原码最高位符号位不变,其余位取反

    3.补码(正数补码和原码相同):原码最高位符号位不变,其余位取反加一

    由于原码中最高位用来表示符号位,所以表示范围为-127~+127,包含正0和负0

    而补码的表示范围为-128~+127

    这就导致了-128无法由补码转为原码,-128的补码表示为:1000 0000

    在计算中也可能产生溢出的情况,不过本文并未加以赘述。如127+127如果用补码运算并非254,因为原码表示范围有限,不过补码的意义就是对256进行同模运算,318和62对256是同模的,所以补码均为0011 1110,最高位溢出丢失。


    计算机中加法实则是补码的加法,减法也有多种方法。

    如:45+22->

    0010 1101

        + 0001 0110

       =  0100 0011->和为67的补码

    如 54+(-73)->

    0011 0110

       +  1110 1101

       =  1001 1001 -> 和为-103的补码

    减法也是同理:其实和加法相同,

    (1)采用减法表即可:

    - 01

    0 0-1

    1 10 

    如果产生-1则相应Carry Flag置1即可

    或者

    (2)采用加上一个负数的形式,具体如:

    1111 0000 - 0000 1111 = 1111 0000 + (-0000 1111),再求出相应补码进行运算

    (3)加上一个'最大值'

    何为最大值呢?例如,我们在进行十进制减法时,经常采取Borrow的方法,即借位,借位就是加上一个9

    如 253-176,计算的方法就是

    999-176 = 823

    253+823 = 1076

    1076+1-1000 = 77

    而当被减数小于减数时,如:176-253,为了避免借位,我们首先要从999中减去减数,

    999-253 = 746

    176+746 = 922

    922 - 999 ?我们已经意识到了,减去最大的数一定是个非正数,所以我们交换

    -(999 - 922)= -77

    而在二进制中借位如何表示呢?

    借用1111 1111一切问题迎刃而解,事实上,补码的意义就是在这种运算中得出的结论。一切步骤与十进制相似。


    附上python中求补码和加法的代码(python初学者),并没有编写补码求原码的过程,即需要减一求反码:

    #coding=gbk
    #将对应数字转换为二进制
    def orgin(num ):
        if num >= 0:
            dest_bin = ['0']
        else:
            dest_bin = ['1']
        num = abs(num)
        i = 64
        while(i):
            if( num/i ):
                temp = ['1']
                num -= i
            else:
                temp = ['0']
            dest_bin = dest_bin + temp
            i /= 2
        return dest_bin


    #转换为补码前要取反
    def inverse( org_num ):
        i = 1
        while(i < len(org_num)):
            if org_num[i] == '0':
                org_num[i] = '1'
            elif org_num[i] == '1':
                org_num[i] = '0'
            i += 1
        return org_num


    #进行补码的加法
    def add_bin( num1, num2):
        len1 = len(num1)
        sum_num = ['0']*len1
        carry_flag = 0
        while(len1 >= 0):
            len1 -= 1
            sum = int(num1[len1]) + int(num2[len1]) + carry_flag
            if sum == 0:
                pass
            elif sum == 1:
                sum_num[len1] = '1'
                carry_flage = 0
            elif sum == 2:
                carry_flag = 1
                sum_num[len1] = '0'
            elif sum == 3:
                carry_flag = 1
                sum_num[len1] = '0'
        return sum_num
            


    #转换相应的数字为补码         
    def tran( num ):
        print '%d:' % num
        if num == -128:
            return ['1']+['0']*7
        elif(num >= 0):
            return orgin(num )
        else:
            str_temp = orgin(num )
            str_temp = inverse(str_temp)
            str_temp = add_bin(str_temp, ['0']*7+['1'])
            return str_temp


    def display( num):
        for i in num:
            print i,
        print 


    if __name__ == '__main__':
        display(tran(1))
        display(tran(-127))
        display(tran(-128))
        display(tran(-127))
        display(tran(88))
        display(tran(0))

    展开全文
  • 实现两个数的加减法  2.回答者3次输错计算结果后,输出正确结果,并询问回答者是否继续 1.使用常规函数实现两个数的加减法游戏 代码如下: #!/usr/bin/env python # -*- coding: utf-8 -*- '''使用常规...
  • 同事家的小朋友上了一年级,学校布置作业要学习20以内的加减法运算,而且必须是有进位或者减位的。 比如18-9=9 或者7+6=13 觉得专门写一堆题目没啥意思,于是用python+tkinter写个小程序,然后用cx_freeze打包成...
  • 为了让外甥女练习算术,用python给她写了个自动出加减法的小程序。 该程序使用了文字转语音库pyttsx,程序运行时,会有相对应语音提示。pyttsx文档 为了防止小孩乱按键盘,导致非法输入,我添加了异常处理: def ...
  • 一、案例背景:同事家小孩子要上小学了,准备给小孩练习10以内加减法,为了解决出题烦恼,希望我用python帮他实现,并保存到word里。近期在学习python,就当练手了,以后我们家娃也能用。代码简单,讲一下思路,...
  • 前言 暑假开始了,作为一个学渣老爹,内心自然是崩溃。 一年级数学老师布置一项暑假...说干就干,一个小时后,出现了如下的代码,运行环境是python3。 import random string = "" for day in range(1, 61)
  • 一个合格的脚本,至少含有如下部分: ...练习1-10内数字的加减法 代码段: 1 #!/usr/bin/env python3 2 #-*- coding:utf-8 -*- 3 #filename = “算数游戏.py” 4 5 '''1到10之间的加减...
  • 题目描述 写一个函数,求两个整数之和,要求在函数体内不得使用+、-、*、/四则运算符号。 解题思路: 考察是或,与,异或运算,移位操作(计算机组成原理...Java代码: public class Solution { public int Ad
  • 减法: 输入以下代码: 1-2 1 1.0-2 1 乘法: 输入以下代码: 2*4 1 2.0*4 1 除法: 输入以下代码: 2/4 1 2.0/4 ...
  • 这是基于python写的一个小的程序,是20以内的加减法随机生成100道,看似简单,但通过少于20行代码的形式写出来却要在结构上下功夫。
  • python减乘除

    2021-03-03 14:09:51
    网上拔下来一段代码减法和除法不好。减法,有负数情况;除法,不能带小数,只能填写整除数。 import random count = 0 right = 0 while True: a = random.randint(1, 11) b = random.randint(1, 11) dict = ...
  • 目前可以实现简单的计算。计算前请重置,设计的时候默认数字是0,学了半天就做出来个这么个结果,bug不少。 python3.5 + PyQt5 +Eric6 在...#匹配整数或小数的加减法,包括了开头存在减号的情况 plus_minus = re.com
  • 减法: 输入以下代码: &gt;&gt;&gt;1-2 &gt;&gt;&gt;1.0-2 乘法: 输入以下代码: &gt;&gt;&gt;2*4 &gt;&gt;&gt;2.0*4 除法: 输入以下代码: ...
  • (高精度)大数加减法C++实现

    千次阅读 2020-03-12 12:26:03
    使用java和python的同学可以不用担心,Java有BigDecimal类可以实现,python可以直接实现。 好了下面我们直接上代码代码都有相应的注释,相信可以看懂的。 代码 #include <iostream> #include <vector>...
  • 大学初学python的感觉

    2020-11-22 09:06:20
    在最近的3周学习里我们学习了python的一些基本知识,对于一个不懂计算机的我来说还是比较困难的,学习了简单的加减法运算,画三角形,画史卢比,和写一些简单的程序。每次都要照着老师的码,不看什么都不会,但是我...
  • time库:Python的时间时钟处理

    千次阅读 2021-04-10 13:28:57
    目录前言获取各种时钟获取当前时间时间加减法处理时区 前言 time库运行访问多种类型时钟,这些时钟用于不同场景。本篇,将详细讲解time库应用知识。 获取各种时钟 既然time库提供了多种类型时钟,下面我们...
  • 这篇文章主要介绍了Python四种交换数值方法解析,文中通过示例代码介绍非常详细,对大家学习或者工作具有一定参考学习价值,需要...这个方法采用加减法来交换。不考虑效率,能达到交换效果就行 方法四
  • 本文内容是根据 莫烦Python 网站视频整理笔记,笔记中对代码的注释更加清晰明了, 同时根据所有笔记还整理了精简版思维导图, 可在此专栏查看, 想观看视频可直接去他网站, 源文件已经上传到主页中资源一栏中...
  • # 返回日期、时间、年、月、日、时、分、秒、星期的两种, 以及日期的加减法 v1 = datetime.now().date() v2 = datetime.now().time() v3 = datetime.now().year v4 = datetime.now().month v5 = datetime.now().day ...
  • 您可以将vmex.py用作终端命令来执行单独逐行字节码文件,而不是构造自己Machine类实例,然后将代码编写为Python字符串列表。 现在,只需将其放在文件中即可。 要在乘法计算器程序上对其进行测试,请键入python...
  • 2.新建functions包,在下面新建一个count.py实现简单加减法计算功能 3.新建一个case目录,存放测试用例(共4条用例) 1).test_add.py测试用例 2).test_sub.py测试用例 4.引入HTMLTestRunner生成报告:...
  • 题目表述 给定年月日,如2019/1/8,打印输出这一天是该年第几天。 输入格式: 共一行,为一个字符串,...pythondatime类是可以直接做加减法的,不要自己写了 import datetime list = list(map(int,input()....

空空如也

空空如也

1 2 3 4
收藏数 65
精华内容 26
关键字:

python的加减法代码

python 订阅