最近在學習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 <= 0)
{
return n;
}
if (n == 1 || n == 2)
{
return 1;
}
return Fib(n - 1) + Fib(n - 2);
}
public string FibArr(int n)
{
if (n <= 0)
{
return n.ToString();
}
if (n == 1 || n == 2)
{
return "1,1";
}
List<int> fibList = new List<int>() { 1, 1 };
for (int i = 2; i < n; i++)
{
fibList.Add(fibList[i - 1] + fibList[i - 2]);
}
return string.Join(",", fibList);
}
void Test()
{
Console.WriteLine(Fib(10));
Console.WriteLine(FibArr(10));
}
輸出結果:
55
1,1,2,3,5,8,13,21,34,55
2.水仙數
python
for x in range(100,1000):
i = x / 100
j = x % 100 / 10
k = x % 10
if(i ** 3 + j ** 3 + k ** 3 == x):
print(x)
C#
for (int i = 100; i < 1000; i++)
{
int h = i / 100;
int t = i % 100 / 10;
int s = 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 = ""
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 = 0;
for (int i = 100; i < 200; i++)
{
int j = (int)Math.Sqrt(i) + 1;
for (int k = 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#出來
學習做筆記的習慣已經丟好久了,希望以後能慢慢的拾起來吧