用PTHON写循环 对比用ORACLE语句

1.分别求1-100内奇数/偶数的和,并打印出来
在ORACLE:
set serveroutput on;
declare 
num1 number(8):=1;
sum1 number(8):=0;
sum2 number(8):=0;
begin
loop
sum1:=sum1+num1;
sum2:=sum2+num1+1;
num1:=num1+2;
if num1>100 then exit; 
end if;
end loop;
dbms_output.put_line('1-100内奇数的和:'||sum1);
dbms_output.put_line('1-100内偶数的和:'||sum2);
end;
commi;
--------------------------------------------------------------------------
在PYTHON:
i = 1
    sum1=0
    sum2=0
    while int(i) <= 100:
        sum1 = sum1 + i
        sum2 = sum2 + i + 1
        i = i + 2
    print(f'奇数的和:{sum1}')
    print(f'偶数的和:{sum2}')

==========================================================================
2.求1-100内能被3整除,不能被5整除的数字
在ORACLE:
set serveroutput on;
DECLARE
  n number(8):=1;
BEGIN
loop
n:=n+1;
 if  n>100 then exit; 
 elsif MOD(n,3)=0 and MOD(n,5)<>0 then dbms_output.put_line(N||', '); 
 end if;
end loop;
END; 

方法二:for循环
begin 
    for i in 1..100 loop
        if mod(i,3)=0 and mod(i,5)<>0 then dbms_output.put_line(i);
        elsif i>100 then exit;
    end if;
    end loop;
end;

--------------------------------------------------------------------------
在PYTHON:
while循环:
x=2
while x<=100:
    if x%3==0 and x%5!=0:
            print(x)
    x += 1

for循环:
print([i for i in range(1, 101) if i % 3 == 0 and i % 5 != 0])

==========================================================================
3..打印乘法表
    1*1=1    
    2*1=2    2*2=4    
    3*1=3    3*2=6    3*3=9    
    4*1=4    4*2=8    4*3=12    4*4=16    
    ...需要两层循环,外层循环控制第一个乘数,内层循环控制第二个乘数。
在Oracle:
set serveroutput on;
方法一:Loop循环:
 declare
i int:=1;
j int:=1;
begin 
    loop 
            loop
                 dbms_Output.put(i||'*'||j||'='||i*j||' ');
                 j:=j+1;
            exit
            when j>i;
            end loop;
        dbms_output.put_line('');
        i:=i+1;
        j:=1;
    exit
    when i>9;
    end loop;
end;

方法二:for循环:
declare 
begin
  for i in 1..9 loop
    for j in 1..i loop
        dbms_output.put(i||'*'||j||'='||i*j||'  ');
    end loop;
    dbms_output.new_line;
end loop;
end;

方法三:while 循环:
declare
    i int:=0;
    j int:=0;
begin    
while i<=9 loop
        j:=1;
        while j<=i
            loop
                dbms_Output.put(i||'*'||j||'='||i*j||' ');
                dbms_output.put('');
                j:=j+1;
            end loop;
        dbms_output.new_line;
        i:=i+1;
    end loop;
end; 

-------------------------------------------------------------------------------------------------------------
python:参考大神>>>>   https://blog.csdn.net/cui_yonghua/article/details/95719103


4..求所有的水仙花数
水仙花数是一个三位数,每一位数字的3次幂的和正好等于这个数本身。
declare
v_num1 number;
v_num2 number;
v_num3 number;
v_num number:=100;
begin
 while v_num<1000 
   loop
    v_num1:=mod(v_num,10);--个位132,2
    v_num2:=mod(floor(v_num/10),10);--十位132,3
    v_num3:=floor(v_num/100); --百位132,1  
     if v_num=power(v_num1,3)+power(v_num2,3)+power(v_num3,3)  then
   dbms_output.put(v_num||' ');
     end if;
  v_num:=v_num+1;   
   end loop;
   dbms_output.put_line(' ');
end;

python: 
print(143//100) #baiwei
print(143//10%10)  #shiwei
print(143%10) #gewei

print([ i for i in range(100,1000) if(i//100)**3+(i//10%10)**3+(i%10)**3==i ])
 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

好好羊

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

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

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

打赏作者

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

抵扣说明:

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

余额充值