命令行和文件
在命令行中python
会出现python2的执行环境,python3
会出现python3的执行环境
python index.py
python3 index.py
分别以python2和python3运行index.py文件
在文件头加#!/usr/bin/env python3
然后在命令行执行chmod a+x index.py
就可以通过./index.py
运行python文件(仅限mac系统)
基本数据类型
布尔值
True
False
注意大小写
True and True
与
True or False
或
not True
非
list
classmates = ['Michael', 'Bob', 'Tracy']//list里的元素类型可以不一样
len(classmates)//输出3,获取list长度
classmates[0]//通过下标访问和修改list,但不能超过长度范围
classmates[-1]//通过加负号从后访问,等于classmates[len(classmates)-1]
list方法
mates.append('Amay')//在尾部插入
mates.insert(1,'Taylor')//指定位置插入
mates.pop()//删除并返回尾部元素
tuple
classmates = ('Michael', 'Bob', 'Tracy')//tuple赋值后就不可变了
clssmates[-1]//也可以通过下标访问,但不能更改
函数
常用内置函数
abs
:
//返回绝对值
>>> abs(100)
100
>>> abs(-20)
20
>>> abs(12.34)
12.34
max
:
//接受多参数,返回最大值
>>> max(1, 2)
2
>>> max(2, 3, 1, -5)
3
数据类型转换函数
>>> int('123')
123
>>> int(12.34)
12
>>> float('12.34')
12.34
>>> str(1.23)
'1.23'
>>> str(100)
'100'
>>> bool(1)
True
>>> bool('')
False
isinstance
:
def check(a):
return isinstance(a,(int,float))
#判断a是不是int/float类型
raise TypeError
:
def check(a):
if(not isinstance(a,(int,float))):
raise TypeError('true error')
#如果不是int/float类型,会终止程序并报错
自定义函数
使用def
标识符
pass
:
pass
可用于构造空函数(占位符)
//空函数
def nop():
pass
//跳过(没有会报错)
if age >= 18:
pass
返回多个值
import math
def move(x, y, step, angle=0):
nx = x + step * math.cos(angle)
ny = y - step * math.sin(angle)
return nx, ny
>>> x, y = move(100, 100, 60, math.pi / 6)
>>> print(x, y)
151.96152422706632 70.0
#实际是返回一个tuple
>>> r = move(100, 100, 60, math.pi / 6)
>>> print(r)
(151.96152422706632, 70.0)
默认参数
def power(x, n=2):
s = 1
while n > 0:
n = n - 1
s = s * x
return s
>>> power(5)
25
>>> power(5, 2)
25
#必选参数在前,默认参数在后
#默认参数必须指向不变变量
def enroll(name, gender, age=6, city='Beijing'):
print('name:', name)
print('gender:', gender)
print('age:', age)
print('city:', city)
enroll('Bob', 'M', 7)
enroll('Adam', 'M', city='Tianjin')
可变参数
//参数会自动组装成一个tuple
def calc(*numbers):
sum = 0
for n in numbers:
sum = sum + n * n
return sum
>>> calc(1, 2)
5
>>> calc()
0
>>> nums = [1, 2, 3]
>>> calc(*nums)
14
关键字参数
def person(name, age, **kw):
print('name:', name, 'age:', age, 'other:', kw)
>>> person('Michael', 30)
name: Michael age: 30 other: {}
>>> person('Bob', 35, city='Beijing')
name: Bob age: 35 other: {'city': 'Beijing'}
>>> person('Adam', 45, gender='M', job='Engineer')
name: Adam age: 45 other: {'gender': 'M', 'job': 'Engineer'}
>>> extra = {'city': 'Beijing', 'job': 'Engineer'}
>>> person('Jack', 24, city=extra['city'], job=extra['job'])
name: Jack age: 24 other: {'city': 'Beijing', 'job': 'Engineer'}
>>> extra = {'city': 'Beijing', 'job': 'Engineer'}
>>> person('Jack', 24, **extra)
name: Jack age: 24 other: {'city': 'Beijing', 'job': 'Engineer'}
基本语法
print()
print()函数可以接受多个字符串,用逗号“,”隔开,就可以连成一串输出:
>>> print('The quick brown fox', 'jumps over', 'the lazy dog')
The quick brown fox jumps over the lazy dog
如果字符串内部有很多换行,用\n写在一行里不好阅读,为了简化,Python允许用”’…”’的格式表示多行内容,可以自己试试:
>>> print('''line1
... line2
... line3''')
line1
line2
line3
如果字符串里面有很多字符都需要转义,就需要加很多\,为了简化,Python还允许用r”表示”内部的字符串默认不转义,可以自己试试:
>>> print('\\\t\\')
\ \
>>> print(r'\\\t\\')
\\\t\\
input()
输入函数
name=input()
age=input('Please input your age')
print('name:',name,'age:',age)
for循环
:
//遍历数组
numbers=[1,2,3,4]
for(n in numbers):
print(n)
if条件判断
:
if(a>b and b>c)与
if(a>b or b>c)或
if(not a>b)非
//判断字典有没有属性
if(key in dict)