文章彙總:http://www.javashuo.com/article/p-yofpeago-cs.htmlhtml
多圖舊排版:http://www.javashuo.com/article/p-bzacofvb-eb.htmlpython
VSCode設置python3的開發環境(linux下默認是python2)http://www.javashuo.com/article/p-tvzhtwbx-bq.htmllinux
歡迎提出更簡單的語法~(文章中案例有兩個福利哦,一個是養生,一個是人工智能[ 密碼:fqif])git
先說下感受,python
的編程有點JavaScript
的感受(好比:'和「有時候不區別),又感受像外國版的易語言,整個過程像讀書同樣,好比一個元素不在列表之中==> for item not in lists
。使用它作個大點的項目必定要先規定好編程風格,否則能讓人崩潰的。先不深究,後面會繼續深究。。。(Python2我就不講了,官方推薦使用Python3
)github
Python官方是推薦使用_
來間隔單詞,但通常開發人員都是以各自主語言的命名來定義的,這個就各人愛好了,不過團隊必定要統一。shell
命名規則:總的原則就是 見名知意,通常都是 駝峯命名法,純Python的話推薦用 _
鏈接單詞編程
擴充:Python
的關鍵詞
能夠本身打印一下:app
import keyword
print(keyword.kwlist)
# Python標識符區分大小寫的案例
temp="xxx"
tEmp="==="
print(temp+tEmp)
%%script csharp
//CSharp標識符區分大小寫的案例
var temp = "xxx";
var tEmp = "===";
Console.WriteLine(temp + tEmp);
#單行註釋 輸出
print("Hello World!")
'''三個單引號多行註釋:
print("Hello World!")
print("Hello World!")
print("Hello World!")'''
"""三個雙引號多行註釋:
print("Hello World!")
print("Hello World!")
print("Hello World!")"""
C、Java、Net都是//
註釋一行,/**/
註釋多行
Console.WriteLine("小明同窗");
// Console.WriteLine("小明同窗"); 註釋一行
/*Console.WriteLine("小明同窗");
Console.WriteLine("小明同窗"); 註釋多行*/
#定義一個變量並輸出
name="小明"
print(name)
能夠用var
來進行類型推斷,eg:var name="小明";
%%script csharp
var test = "123";//定義一個變量
Console.WriteLine(test);//輸出這個變量
print("dnt.dkill.net/now",end='')
print("帶你走進中醫經絡")
print("dnt.dkill.net/now",end="")
print("帶你走進中醫經絡")
若是字符串內部既包含'
又包含"
怎麼辦?能夠用轉義字符\
來標識
#若是字符串內部既包含'又包含"怎麼辦?能夠用轉義字符\來標識
print("I\'m \"OK\"!")
r''
表示''
內部的字符串默認不轉義
# 若是字符串裏面有不少字符都須要轉義,就須要加不少\,爲了簡化,Python還容許用r''表示''內部的字符串默認不轉義
print(r'\\\t\\')
'''...'''
的格式表示多行內容
#若是字符串內部有不少換行,用\n寫在一行裏很差閱讀,爲了簡化,Python容許用'''...'''的格式表示多行內容
print('''我請你吃飯吧~
晚上吃啥?
去廁所,你說呢?''')
擴:Python提供一種以空格分隔的方式:
print("I","Love","You")
python輸出多個重複字符
,不須要本身手打N個*
或者for
循環輸出多個重複字符,eg:print("x"*10)
print("x"*10)
若是你不太肯定應該用什麼,%s
永遠起做用,它會 把任何數據類型轉換爲字符串
%c 字符 %s 經過str() 字符串轉換來格式化 %o 八進制整數 %x 十六進制整數(小寫字母) %X 十六進制整數(大寫字母) %e 指數(小寫'e') %E 指數(大寫「E」) %f 浮點實數 %g %f和%e 的簡寫 %G %f和%E的簡寫
下面來個輸入輸出的簡單的 案例吧:打印一張名片,Name:毒逆天,Gender:男
print("Name:%s,Gender:%s"%(name,gender))
【注意引號後面沒有,
哦】
#定義一個變量name,用戶輸入將賦值給name
name=input("請輸入用戶名:")
#定義一個變量gender,用戶輸入將賦值給gender
gender=input("請輸入性別:")
#多個變量輸出
print("Name:%s,Gender:%s"%(name,gender))
輸出用:Console.Write
Console.WriteLine
%%script csharp
Console.Write("dnt.dkill.net/now");
Console.WriteLine("帶你走進中醫經絡");
C#用@
來轉義字符,無論你是轉義字符仍是換行,通殺
%%script csharp
Console.WriteLine(@"\\\\\\\");
%%script csharp
Console.WriteLine(@"我請你吃飯吧~
晚上吃啥?
去廁所,你說呢?")
Csharp輸入輸出的簡單的 案例:打印一張名片,Name:毒逆天,Gender:男
C#:Console.WriteLine($"Name:{name},Gender:{gender}");
Console.WriteLine("請輸入用戶名:");
var name = Console.ReadLine();
Console.WriteLine("請輸入性別:");
var gender = Console.ReadLine();
Console.WriteLine($"Name:{name},Gender:{gender}"); //推薦用法
Console.WriteLine("Name:{0},Gender:{1}", name, gender); //Old 輸出
# 求和
num1=input("輸入第一個數字")
num2=input("輸入第二個數字")
print("num1+num2=%d" %(int(num1)+int(num2)))
C#
:該案例推薦使用 int.TryParse
,我這邊就用經常使用的Convert
系列了【支持類型比較多】
Convert.ToInt64()
,Convert.ToDouble()
,Convert.ToString()
...
//類型轉換
Console.WriteLine("輸入第一個數字:");
var num1 = Console.ReadLine();
Console.WriteLine("輸入第二個數字:");
var num2 = Console.ReadLine();
Console.WriteLine($"num1+num2={Convert.ToInt32(num1) + Convert.ToInt32(num2)}");
num=9
print("num=9,下面結果是對2的除,取餘,取商操做:")
print(num/2.0)
print(num%2.0)
print(num//2.0)
print("2^3=%d"%2**3)
Python3如今這樣寫也行,推薦和其餘語言寫法一致
(否則你用慣了Python,切換的時候會出事的)
num=9
print("num=9,下面結果是對2的除,取餘,取商操做:")
print(num/2)
print(num%2)
print(num//2)
print("2^3=%d"%2**3)
+=
-=
*=
/=
%=
**=
//=
這些就不用詳說了吧?
舉個例子:c += a
等效於 c = c + a
注意下,Python中不見得等效,Python都是引用,這個先不說後面說
C#經常使用數學方法都在Match
類中
%%script csharp
var num=9;
Console.WriteLine("num=9,下面結果是對2的除,取餘,取商操做:")
Console.WriteLine(num/2.0);
Console.WriteLine(num%2.0);
Console.WriteLine(num/2);
Console.WriteLine(Math.Pow(2,3));
age=19
if age>=18:
print("成年了")
再來個嵌套的:注意哦~ else if
在python裏面 簡寫成了:elif
age=24
if age>=23:
print("七大姑曰:工做了嗎?八大姨問:買房了嗎?異性說:結婚了嗎?")
elif age>=18:
print(age)
print("成年了哇")
else:
print("好好學習每天向上")
結合前面知識,再來個案例:
input_int=int(input("請輸入(1-7)"))
#if後面的:,tab格式,else if 如今是elif
if input_int==1:
print("星期一")
elif input_int==2:
print("星期二")
elif input_int==3:
print("星期三")
elif input_int==4:
print("星期四")
elif input_int==5:
print("星期五")
elif input_int==6:
print("星期六")
elif input_int==7:
print("星期日")
else:
print("別鬧")
C# if else
單行代碼能夠不用寫括號
int age = 24;
if (age >= 23)
Console.WriteLine("七大姑曰:工做了嗎?八大姨問:買房了嗎?異性說:結婚了嗎?");
else if (age >= 18)
{
Console.WriteLine(age);
Console.WriteLine("成年了哇");
}
else
Console.WriteLine("好好學習每天向上");
NetCore如今推薦,若是是單行,建議Code
和if else
寫在一行:
int age = 24;
if (age >= 23) Console.WriteLine("七大姑曰:工做了嗎?八大姨問:買房了嗎?異性說:結婚了嗎?");
else if (age >= 18)
{
Console.WriteLine(age);
Console.WriteLine("成年了哇");
}
else Console.WriteLine("好好學習每天向上");
num=10
while num>0:
print(num)
num-=1
i=1
#輸出一個三角形
while i<6:
j=1
while j<=i:
print("*",end="")#不換行輸出
j+=1
print("")#下一行
i+=1
# 1~100求和
i=1
sum=0
while i<=100:
sum+=i
i+=1
print(sum)
用法差很少,來個案例
%%script csharp
int index = 1;
int sum = 0;
while (index <= 100)
{
sum += index;
index++;
}
Console.WriteLine(sum);
其實Python分爲 可變類型(list
,dict
,set
等等)和 不可變類型(int
,str
,tuple
等等)
像數字這類的是不可變類型(後面會繼續說)因此結果每每和你預期的不同哦~看個案例:
# python 中,變量是之內容爲基準而不是像 c 中以變量名爲基準,因此只要你的數字內容是5
# 無論你起什麼名字,這個變量的 ID 是相同的,同時也就說明了 python 中一個變量能夠以多個名稱訪問
a=5
b=5
print(id(a))
print(id(b))
print(a is b)
a+=1
print(id(a))
print(id(b))
print(a is b)
你還能夠看看這篇文章:Python沒有 ++/-- 參考文章(點我)
# 基礎循環:後面會講range
for i in range(5):
print(i)
i+=1
#while循環通常經過數值是否知足來肯定循環的條件
#for循環通常是對能保存多個數據的變量,進行遍歷
name="https://pan.baidu.com/s/1weaF2DGsgDzAcniRzNqfyQ#mmd"
for i in name:
if i=='#':
break
print(i,end='')#另外一種寫法:print("%s"%i,end="")
print('\n end ...')
foreach (var i in name)
%%script csharp
var url = "https://pan.baidu.com/s/1weaF2DGsgDzAcniRzNqfyQ#mmd";
foreach (var item in url)
{
if (item == '#')
break;
Console.Write(item);
}
Console.WriteLine("\n end ...");
for的擴展:for else
(通常不太用)
官方參考:https://docs.python.org/3/reference/compound_stmts.html#the-for-statement
Python 沒有switch / case
語句。爲了實現它,咱們可使用字典映射
:
官方的解釋說:https://docs.python.org/3.6/faq/design.html#why-isn-t-there-a-switch-or-case-statement-in-python
"用if... elif... elif... else
序列很容易來實現switch / case
語句,並且可使用函數字典映射和類的調度方法"
def numbers_to_strings(argument):
switcher = {
0: "zero",
1: "one",
2: "two",
}
return switcher.get(argument, "nothing")
這段代碼相似於:
function(argument){ switch(argument) { case 0: return "zero"; case 1: return "one"; case 2: return "two"; default: return "nothing"; }; };
在Python中字典映射也能夠包含函數或者 lambda 表達式:
def zero():
return "zero"
def one():
return "one"
def numbers_to_functions_to_strings(argument):
switcher = {
0: zero,
1: one,
2: lambda: "two",
}
func = switcher.get(argument, lambda: "nothing")
return func()
類的調度方法:
若是在一個類中,不肯定要使用哪一種方法,能夠用一個調度方法在運行的時候來肯定
class Switcher(object):
def numbers_to_methods_to_strings(self, argument):
method_name = 'number_' + str(argument)
method = getattr(self, method_name, lambda: "nothing")
return method()
def number_0(self):
return "zero"
def number_1(self):
return "one"
def number_2(self):
return "two"
Python設計相關的爲何,能夠參考官方文檔:https://docs.python.org/3.6/faq/design.html
歡迎糾正+補充~