取余运算 C和python的区别

今天看书发现python与C的负数取余运算结果不同,查资料理解.

取余运算的算法是相同的  r = a- n*(a/n)   n!=0

 r是余数,a是被除数,n是除数.n不能为0,否则都会报错.

负数取余运算的区别在于除法的取整方向不同,C语言从C99开始规定向0取整,python规定向负无穷取整.

python    a%n的符号与n相同
-11//4          #值为-3
-11%4  ->  (-11) -4*(-11//4) =1     #值为1
C语言      a%n的符号与a相同
-11/4         //值为-2
-11%4      (-11) - 4*(-11/4) =-3   //值为-3

 

转载于:https://www.cnblogs.com/Triomphe/p/9370073.html

好的,我选择使用PyQt5库来实现一个科学计算器。以下是代码: ```python import sys from PyQt5.QtWidgets import QApplication, QMainWindow, QWidget, QPushButton, QGridLayout, QLineEdit, QVBoxLayout class Calculator(QWidget): def __init__(self): super().__init__() # 设置窗口标题和大小 self.setWindowTitle("Scientific Calculator") self.resize(300, 400) # 设置计算器的布局 self.layout = QVBoxLayout() # 添加一个文本框,用于显示输入和输出内容 self.textbox = QLineEdit(self) self.textbox.setReadOnly(True) self.layout.addWidget(self.textbox) # 添加数字和运算符按钮 grid = QGridLayout() self.buttons = {} button_labels = [ "7", "8", "9", "+", "4", "5", "6", "-", "1", "2", "3", "*", "0", ".", "C", "/", "^", "%" ] positions = [(i, j) for i in range(4) for j in range(4)] for position, label in zip(positions, button_labels): if label == "C": button = QPushButton(label, self, clicked=self.clear_textbox) else: button = QPushButton(label, self, clicked=lambda label=label: self.append_textbox(label)) grid.addWidget(button, *position) self.buttons[label] = button # 添加幂运算取余运算按钮 self.pow_button = QPushButton("^", self, clicked=lambda label="^": self.append_textbox(label)) self.mod_button = QPushButton("%", self, clicked=lambda label="%": self.append_textbox(label)) grid.addWidget(self.pow_button, 0, 3) grid.addWidget(self.mod_button, 1, 3) self.layout.addLayout(grid) self.setLayout(self.layout) def clear_textbox(self): self.textbox.setText("") def append_textbox(self, label): current_text = self.textbox.text() if label == "C": self.textbox.setText("") elif label == "=": try: result = eval(current_text) self.textbox.setText(str(result)) except: self.textbox.setText("Error") else: self.textbox.setText(current_text + label) class MainWindow(QMainWindow): def __init__(self): super().__init__() # 创建一个计算器窗口 self.calculator = Calculator() # 将计算器窗口添加到主窗口 self.setCentralWidget(self.calculator) # 设置主窗口的标题 self.setWindowTitle("Calculator") if __name__ == '__main__': app = QApplication(sys.argv) win = MainWindow() win.show() sys.exit(app.exec_()) ``` 这个科学计算器有基本的加、减、乘、除、幂和取余运算能力,同有清除按钮和等于按钮。用户可以在输入框输入计算表达式,然后按下等于按钮进行计算,结果将显示在输出框。如果用户输入的表达式不合法,输出框将显示"Error"。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值