从C转Python的小例子
来自数据结构与算法Python版_陈斌的课堂笔记
Hello World
C语言
#include<stdio.h>
int main()
{
//say Hello
printf("Hello World!\n");
}
哪怕是最简单的HelloWorld都要经过Compile编译-Link链接-Execute执行三步,而python作为解释型语言并不需要编译
main()是C语言特殊的主入口函数,而python不存在
def main():
#say Hello
print("Hello World!")
main()
这是C语言口音的python程序,可以看到,python定义函数利用def,而不是规定返回类型
正宗python程序:
#say Hello
print("Hello World!")
高斯的回家
#include<stdio.h>
int main()
{
int s, i;
s = 0;
for (i=0 ;i<100 ;i++)
{
s += (i + 1);
}
printf("Sum= %d",s);
}
for语句在C语言中比较底层,为条件循环
s = 0
for i in range(100):
s += (i+1)
print("Sum=",s)
在python中for语句为迭代循环
检验素数
#include <stdio.h>
#include <math.h>
int main( )
{
int n, i, flag = 0;
printf("Please input number:");
scanf("%d", &n) ;
for (i=2 ; i<sqrt(n) ;i++)
if (n % i ==0)
{
flag = 1;
break;
}
if (flag == 1)
printf ("%d is NOT a prime number.", n);
else
printf ("%d is a prime number.", n);
}
在这段代码的for循环中,我们无法判断是正常退出(检验完全部的数发现是素数)循环还是被break退出(检测到不是素数)循环的,我们需要用flag变量标记“是不是素数”,然后中断循环。
而python可以这样实现
from math inport sqrt
n = int(input("Please input number:"))
for i in range (2,int(sqrt(n))):
if n % i == 0:
print(f"{n} is NOT a prime number")
break
else:
print(f"{n} is a prime number")
这里的else对应for。如果for循环没有被break那么应该“奖励”执行else。python这种性质可以判断for循环是否正常执行。
打印三角形
#include<stdio.h>
int main()
{
int n,i,j;
print("Pleace input number");
scanf("%d",&n);
for (i = 0; i<n ; i++)
{
for (j = 0; j<i ; j++)
printf("*")
printf("\n");
}
}
这里用了双重循环
如果用python语言只需要3行:
n = int(input("Please input number:"))
for i in range(n):
print("*" * i)
因为python拥有字符串运算的性质
参考:
字符串操作符
操作符及使用 描述 x+y连接两个字符串x和y x+=strn*x或x*n复制n次字符串x x="a"*5x in s如果x是s的子串,返回 True,否则返回False

浙公网安备 33010602011771号