目录
安装教程
笔者用的是mac系统,安装教程看的这篇
MAC 安装Python3.7
安装完成就能这个样子啦
学习笔记
本笔记与
[小甲鱼]零基础入门学习Python
Python黑客基础1:Python速成班
共同食用
hello python
输入print("hello python")
等一些测试
效果图:
可以发现python和java、c++等语言有很多相通之处
一些语法
print('---------------------')
temp = input("猜一猜我心里想的是哪个数字")
guess = int(temp)
if guess == 8:
print("你猜对了")
else:
print("你猜错了")
print("游戏结束")
可以发现:
- 没有变量申明
- 缩进十分重要,不恰当缩进可能直接导致错误
一些笔记:
- BIF :Build-in- functions即内置函数
- 查看BIF的功能:
help(BIF)
- 逻辑与和或用 and or表示
- 注释:#注释文字/‘’‘注释文字’‘’
一些报错
SyntaxError: invalid syntax
最常见的报错,也就是说有语法错误
例如我这个程序报错就是因为这里没有else if这个说法(直接用if就可以了)
SyntaxError: expected an indented block
主要原因是复制粘贴的时候缩进改变了,导致倒数第3行和第6行第冒号后没有语句而出错
随机数
首先import random
随机整数举例:secret = random.randint(1,10)
数据的类型转换
举个例子:
备注:可以用type()
来查询数据类型,用isinstance(a,b)
来查询a是否为b类型
循环
输入以下代码:
n=10
for i in range(n):
print(i)
输出:
输入以下代码:
n=10
while n>0:
print(n)
n-=1
输出:
SyntaxError: invalid character in identifier
报错:标识符中含有无效字符
原因是冒号用的是中文冒号
函数
输入:
def hello():
#函数体
print("hello world")
hello()
输出:
主方法
输入:
def hello():
#函数体
print("hello world")
def main():
hello()
if __name__=='__main__':
main()
输出结果同上
注意__实际上为两个下划线
带参函数、递归函数
输入:
def fact(n):
if n<=1:
return 1
return fact(n-1)*n
def main():
print(fact(10))
if __name__=='__main__':
main()
输出:
数组
输入:
def main():
a = [1,2,3]
a.append(4)
print(a)
if __name__=='__main__':
main()
输出:
一些笔记
数组元素的类型可以不同
a.append() 添加元素
a.sort() 排序
a.pop() 移除最后一个元素并返回
a.remove 根据引用类型删除一个指定的元素
例如:
def main():
a = [1,'2',3,4]
a.remove("2")
print(a)
a.remove(3)
print(a)
if __name__=='__main__':
main()
输出:
遍历函数的简单方法
for i in a:
......
python字典
举例:
x = {"Tree":"529324416",1:1}
print(x[1])
print(x["Tree"])
效果:
类与对象
举例:
class B:
def __init__(self,name):
print("B类的构造方法被调用")
class A(B): #如需继承多个类,可以写A(B,C)
number = 0
def __init__(self,a):
#构造方法
B.__init__(self,"test")
self.name = "Tree"
self.age = 20
self.QQ = "2938398193"
self.a = a
def output(self):#没有self参数为静态函数
print(self.name)
@staticmethod#静态函数
def Doing():
print("test")
## def __printf(self):
def main():
a=A(2)
a.output()
if __name__ == '__main__':
main()
效果:
报错:EOL while scanning string literal
错因:print("B类的构造方法被调用“)
此处第二个冒号为中文冒号