Python和C#基本算法实现对比
2016-03-23 23:27
585 查看
最近在学习python,很多入门的例子又写了一遍,基本上是C#和Python都写了一遍,对比发现语言真是相通啊,只是语法不同而已。
python开发也是用的VS,很好用,特别是代码段运行,选中一段python代码,Ctrl+E+E执行结果就出来了,跟装了TestDriven写C#也差不多,很不错!!!2016-03-2322:31:21
python3.4的字符串格式化我发现跟C#一样的用法,然后就没有然后了,字符串不管什么都是这么写"{0}+{1}={2}".format(i,j,k),嘿嘿嘿......
join比较坑,必须是字符串数组
python程序里面有中文的话,要在文件开始标注编码为gbk,#coding=gbk
下面是基本基本算法案例:
1.斐波那契数
python
输出结果:55,[1,1,2,3,5,8,13,21,34,55]
C#
输出结果:
55
1,1,2,3,5,8,13,21,34,55
2.水仙数
python
forxinrange(100,1000):
i=int(x/100)
j=int((x%100)/10)
k=int(x%10)
if((i**3+j**3+k**3)==x):
print(x)
C#
3.因式分解
Python
例如:12=2*2*3
4.求素数
python
C#
python执行效率或者语言特性可能不如C#,但动态语言特征及跨平台方面确实比C#好太多。
在爬虫方面的开发效率确实很快,目前正在看python爬虫算法,准备写一版C#出来
学习做笔记的习惯已经丢好久了,希望以后能慢慢的拾起来吧
python开发也是用的VS,很好用,特别是代码段运行,选中一段python代码,Ctrl+E+E执行结果就出来了,跟装了TestDriven写C#也差不多,很不错!!!2016-03-2322:31:21
python3.4的字符串格式化我发现跟C#一样的用法,然后就没有然后了,字符串不管什么都是这么写"{0}+{1}={2}".format(i,j,k),嘿嘿嘿......
join比较坑,必须是字符串数组
python程序里面有中文的话,要在文件开始标注编码为gbk,#coding=gbk
下面是基本基本算法案例:
1.斐波那契数
python
deffib(n): if(n==1)orn==2: return1 returnfib(n-1)+fib(n-2) print(fib(10)) deffib(n): ifn==1: return[1] ifn==2: return[1,1] fibs=[1,1] foriinrange(2,n): fibs.append(fibs[-1]+fibs[-2]) returnfibs print(fib(10))
输出结果:55,[1,1,2,3,5,8,13,21,34,55]
C#
publicintFib(intn) { if(n<=0) { returnn; } if(n==1||n==2) { return1; } returnFib(n-1)+Fib(n-2); } publicstringFibArr(intn) { if(n<=0) { returnn.ToString(); } if(n==1||n==2) { return"1,1"; } List<int>fibList=newList<int>(){1,1}; for(inti=2;i<n;i++) { fibList.Add(fibList[i-1]+fibList[i-2]); } returnstring.Join(",",fibList); } voidTest() { Console.WriteLine(Fib(10)); Console.WriteLine(FibArr(10)); }
输出结果:
55
1,1,2,3,5,8,13,21,34,55
2.水仙数
python
forxinrange(100,1000):
i=int(x/100)
j=int((x%100)/10)
k=int(x%10)
if((i**3+j**3+k**3)==x):
print(x)
C#
for(inti=100;i<1000;i++)
{
inth=i/100;
intt=i%100/10;
ints=i%10;
if(Math.Pow(h,3)+Math.Pow(t,3)+Math.Pow(s,3)==i)
{
Console.WriteLine(i);
}
}
3.因式分解
Python
例如:12=2*2*3
#coding=gbk
n=int(input("输入数字:"))
print("n={0}".format(n))
s=""
forxinrange(2,n+1):
whilex!=n:
if(n%x==0):
s+="{0}".format(x)
s+="*"
n=n/x
else:
break
s+="{0}".format(int(n))
print(s)
4.求素数
python
count=0
pmarr=[]
ispm=True
frommathimportsqrt
forxinrange(101,201):
k=int(sqrt(x))
foriinrange(2,k+1):
ifx%i==0:
ispm=False
break
ispm=True
if(ispm):
pmarr.append("%d"%x)
count+=1
print(pmarr)
print(count)
C#
boolispm=true;
intcount=0;
for(inti=100;i<200;i++)
{
intj=(int)Math.Sqrt(i)+1;
for(intk=2;k<j;k++)
{
if(i%k==0)
{
ispm=false;
break;
}
ispm=true;
}
if(ispm)
{
Console.Write("{0}",i);
count++;
}
}
Console.WriteLine("总数:{0}",count);
python执行效率或者语言特性可能不如C#,但动态语言特征及跨平台方面确实比C#好太多。
在爬虫方面的开发效率确实很快,目前正在看python爬虫算法,准备写一版C#出来
学习做笔记的习惯已经丢好久了,希望以后能慢慢的拾起来吧
相关文章推荐
- python3.5模块paramiko安装
- 每天一篇python:数据类型篇
- python 基本数据类型的使用
- python 回调函数和回调方法的实现分析
- python 时间戳与格式化时间的转化实现代码
- ubuntu技巧--pycharm找不到cv2的解决方法
- python 3.5 写的爬虫
- python爬数据大坑待填
- Python基础——初探“类”
- 我的python学习之路
- Python基础--正则表达式基本语法以及re模块
- Python基础--正则表达式基本语法以及re模块
- Python机器学习实战kNN分类算法
- python基础知识
- Python 进阶
- python 安装与第一个python
- Ubuntu系统下创建python数据挖掘虚拟环境
- python编码最佳实践之总结
- Python装饰器与面向切面编程
- 40个你可能不知道的Python的特点和技巧