Python和C#基本算法实现对比
最近在学习python,很多入门的例子又写了一遍,基本上是C#和Python都写了一遍,对比发现语言真是相通啊,只是语法不同而已。
python开发也是用的VS,很好用,特别是代码段运行,选中一段python代码,Ctrl+E+E执行结果就出来了,跟装了TestDriven写C#也差不多,很不错!!!2016-03-23 22:31:21
python3.4的字符串格式化我发现跟C#一样的用法,然后就没有然后了,字符串不管什么都是这么写"{0}+{1}={2}".format(i,j,k),嘿嘿嘿......
join比较坑,必须是字符串数组
python程序里面有中文的话,要在文件开始标注编码为gbk,# coding=gbk
下面是基本基本算法案例:
1.斐波那契数
python
def fib(n):
if(n == 1) or n == 2:
return 1
return fib(n - 1) + fib(n - 2)
print(fib(10)) def fib(n):
if n == 1:
return [1]
if n == 2:
return [1, 1]
fibs = [1, 1]
for i in range(2, n):
fibs.append(fibs[-1] + fibs[-2])
return fibs
print(fib(10))
输出结果:55,[1, 1, 2, 3, 5, 8, 13, 21, 34, 55]
C#
public int Fib(int n)
{
if (n <= )
{
return n;
}
if (n == || n == )
{
return ;
}
return Fib(n - ) + Fib(n - );
}
public string FibArr(int n)
{
if (n <= )
{
return n.ToString();
}
if (n == || n == )
{
return "1,1";
} List<int> fibList = new List<int>() { , };
for (int i = ; i < n; i++)
{
fibList.Add(fibList[i - ] + fibList[i - ]);
}
return string.Join(",", fibList);
} void Test()
{
Console.WriteLine(Fib());
Console.WriteLine(FibArr());
}
输出结果:
55
1,1,2,3,5,8,13,21,34,55
2.水仙数
python
for x in range(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 (int i = ; i < ; i++)
{
int h = i / ;
int t = i % / ;
int s = i % ;
if (Math.Pow(h, ) + Math.Pow(t, ) + Math.Pow(s, ) == i)
{
Console.WriteLine(i);
}
}
3.因式分解
Python
例如:12=2*2*3
# coding=gbk
n = int(input("输入数字:"))
print("n={0}".format(n))
s = ""
for x in range(2,n + 1):
while x != 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 from math import sqrt
for x in range(101,201):
k = int(sqrt(x))
for i in range(2,k + 1):
if x % i == 0:
ispm = False
break
ispm = True
if(ispm):
pmarr.append("%d" % x)
count+=1
print(pmarr)
print(count)
C#
bool ispm = true;
int count = ;
for (int i = ; i < ; i++)
{
int j = (int)Math.Sqrt(i) + ;
for (int k = ; k < j; k++)
{
if (i % k == )
{
ispm = false;
break;
}
ispm = true;
}
if (ispm)
{
Console.Write("{0} ", i);
count++;
}
}
Console.WriteLine("总数:{0}", count);
python执行效率或者语言特性可能不如C#,但动态语言特征及跨平台方面确实比C#好太多。
在爬虫方面的开发效率确实很快,目前正在看python爬虫算法,准备写一版C#出来
学习做笔记的习惯已经丢好久了,希望以后能慢慢的拾起来吧
Python和C#基本算法实现对比的更多相关文章
- Python实现各种排序算法的代码示例总结
Python实现各种排序算法的代码示例总结 作者:Donald Knuth 字体:[增加 减小] 类型:转载 时间:2015-12-11我要评论 这篇文章主要介绍了Python实现各种排序算法的代码示 ...
- [0x00 用Python讲解数据结构与算法] 概览
自从工作后就没什么时间更新博客了,最近抽空学了点Python,觉得Python真的是很强大呀.想来在大学中没有学好数据结构和算法,自己的意志力一直不够坚定,这次想好好看一本书,认真把基本的数据结构和算 ...
- Python GUI编程各种实现的对比
Python GUI编程各种实现的对比 从 Python 语言的诞生之日起,就有许多优秀的 GUI 工具集整合到 Python 当中,这些优秀的 GUI 工具集,使得 Python 也可以在图形界面编 ...
- python实现折半查找算法&&归并排序算法
今天依旧是学算法,前几天在搞bbs项目,界面也很丑,评论功能好像也有BUG.现在不搞了,得学下算法和数据结构,笔试过不了,连面试的机会都没有…… 今天学了折半查找算法,折半查找是蛮简单的,但是归并排序 ...
- Python:list 和 array的对比以及转换时的注意事项
Python:list 和 array的对比以及转换时的注意事项 zoerywzhou@163.com http://www.cnblogs.com/swje/ 作者:Zhouwan 2017-6-4 ...
- Python实现常用排序算法
Python实现常用排序算法 冒泡排序 思路: 它重复地走访过要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来.走访数列的工作是重复地进行直到没有再需要交换,也就是说该数列已经排序完 ...
- Python实现图像边缘检测算法
title: "Python实现图像边缘检测算法" date: 2018-06-12T17:06:53+08:00 tags: ["图形学"] categori ...
- 《用Python解决数据结构与算法问题》在线阅读
源于经典 数据结构作为计算机从业人员的必备基础,Java, c 之类的语言有很多这方面的书籍,Python 相对较少, 其中比较著名的一本 problem-solving-with-algorithm ...
- 用Python实现随机森林算法,深度学习
用Python实现随机森林算法,深度学习 拥有高方差使得决策树(secision tress)在处理特定训练数据集时其结果显得相对脆弱.bagging(bootstrap aggregating 的缩 ...
随机推荐
- PowerDesigner中在生成的数据库脚本中用name列替换comment列作为字段描述的方法
1 PowerDesigner中在生成的数据库脚本中用name列替换comment列作为字段描述的方法如下, 依次打开Tools -- Execute Commands -- Run Script,运 ...
- js基础-需要注意的地方
---因为跟别的语言很像,所以只记录要注意的地方 1.== 和 === 的区别 ===要求类型也相等 "5"==5 = ture "5"===5 = false ...
- I - u Calculate e
Description A simple mathematical formula for e is where n is allowed to go to infinity. This can ac ...
- linux android ndk
Android调用so库, so库是c语言编写, 在linux 64位系统+ndk(32位)生成 lib*.so (32位) 1. 所需软件环境: 1)so库开发环境 操作系统: Redhat Ser ...
- <Programming Collective Intelligence> Chapter2:Making Recommendations
<Programming Collective Intelligence> Chapter2:Making Recommendations 欧几里得距离评价 皮尔逊相关度评价 它相比于欧几 ...
- 安装 Kali Linux 后需要做的 20 件事
安装 Kali Linux 后需要做的 20 件事 本文含有我觉得有用的每一件事情.本文分为三大部分: 专门针对Kali用户 Kali Linux是来自Debian的一个特殊版本,Kali Linux ...
- 百度地图LV1.5实践项目开发工具类bmap.util.jsV1.3
/** * 百度地图使用工具类-v1.5 * * @author boonya * @date 2013-7-7 * @address Chengdu,Sichuan,China * @email b ...
- UESTC_Little Deer and Blue Cat CDOJ 1025
In DOTA, there are two Intellegence heroes. One is Enchantress, who is usually called Little Deer by ...
- 剑指offer-面试题16.反转链表
题目:定义一个函数,输入一个链表的头结点,反转该链表并输出反转后的头结点 链表结点定义如下: struct ListNode { int m_nKey; ListNode* m_pNext; } 其实 ...
- javac命令详解(下)
摘自http://blog.csdn.net/hudashi/article/details/7058999 javac命令详解(下) -ver ...