print('hello world')
hello world
word_count = 711
if word_count > 800:
print("字数达到要求")
else:
print("字数不达标")
字数不达标
print('That's great')
File "<ipython-input-5-d3fbd000caed>", line 1 print('That's great') ^ SyntaxError: invalid syntax
x = 'That\'s \tgreat'
print(x)
That's great
x = r'That\'s great'
print(x)
That\'s great
x = '{1} is good,{0} is bad'.format(10,1)
print(x)
1 is good,10 is bad
#比较操作符
x = 10
if x > 5:
print("yes")
else:
print("no")
yes
# & 与 and
if 6 & 1:
print('yes')
else:
print('no')
if 6 and 1:
print('yes')
else:
print('no')
no yes
print(3<8<10)
print((10==10)==10)
True False
#列表
list1 = ['physics', 'chemistry', 1997, 2000]
print(list1)
print(list1[1])#序号为1的元素
print(list1.index(1997))#找出列表中第一个匹配的位置,不存在就会报错
print(1998 in list1)#判断1998是否在列表中
print(1998 not in list1)#判断1998是否不在列表中
print(list1[1:3])#序号从1开始到3为止(不包括3)的元素
print(list1[-1])#倒数第一个元素
print(list1[-2])#倒数第二个元素,以此类推
print(len(list1))#list1的长度,即元素数量
list1.append('math')#列表末尾插入'math'
print(list1)
list1.insert(1,2000)#在位置1处插入2000
print(list1)
list1.pop()#删除最后一个元素
print(list1)
list1.pop(0)#删除位置为0的元素
print(list1)
#按顺序遍历整个列表
for x in list1:
print(x)
#第二种遍历方法
for i in range(len(list1)):
print(list1[i])
#字典
dict1 = {'a':1,'b':2,'c':3}
print(dict1)
print(dict1['a'])#访问key为'a'的元素
print('e' in dict1)#判断dict1是否存在键'e'
dict1['a'] = 'string'#修改key为'a'的元素的值
print(dict1['a'])
dict1['d'] = [10,'hello']#插入一个元素
print(dict1)#输出结果可以看到,字典的元素排列是无序的
print(dict1['d'][1])
del dict1['b']#删除一个元素
print(dict1)
for k,v in dict1.items():
#通过items()将字典转化成为列表嵌套元组的形式
print('key:{0},value:{1}'.format(k,v))
for k in dict1:
#需要根据key来查询相对应的值
print('key:{0},value:{1}'.format(k,dict1[k]))
{'a': 1, 'b': 2, 'c': 3} 1 False string {'a': 'string', 'b': 2, 'c': 3, 'd': [10, 'hello']} hello {'a': 'string', 'c': 3, 'd': [10, 'hello']} key:a,value:string key:c,value:3 key:d,value:[10, 'hello'] key:a,value:string key:c,value:3 key:d,value:[10, 'hello']
x = 1;print(x)#两个逻辑行在同一个物理行中,第二个逻辑行后可以不标注分号
1
#判断
x = 9.5
if x<6:
print('不合格')
elif x<9:
print('及格')
else:
print('优秀')
优秀
# while循环
x = 1
while x<5:
print(x)
x += 1
else:
print('x={},结束'.format(x))
1 2 3 4 x=5,结束
#for 循环
for i in range(1,5,2):
print(i)
else:
print('i={},结束'.format(i))
1 3 i=3,结束
def add(num1,num2):
c = num1 + num2
return c
def print_result(num1, num2, r):
#不包含返回值的函数
print('{}和{}运算的结果是{}'.format(num1, num2, r))
#调用函数add
r1 = add(3,4)
print_result(3,4,r1)
print(add(4,4))
print(add(3,6))
3和4运算的结果是7 8 9
x = 50 #定义全局变量x
def func():
global x #声明现在使用的是全局变量
print('未定义局部变量前x={0}'.format(x))
x = 25
y = 2#定义了一个局部变量y
print('y={0}'.format(y))
y = 30
print('更改局部变量y={0}'.format(y))
func()
print('全局x={0}'.format(x))
未定义局部变量前x=50 y=2 更改局部变量y=30 全局x=25
系统输入输出
input_str = input()
print(input_str)
#获取输入,并判断是否大于0
str = input('Please enter a number:')
print('You entered: '+ str)
if int(str) > 0:
print('大于0')
文件输入输出
#读入文件
f = open('file_in.txt',encoding='utf-8')#因为文件中包含中文,所以需要指定编码utf-8(需要在当前目录下放入一个file_in.txt文件)
f_content = f.read()#一次性读入所有的内容
print(f_content)
print('------------------')
f.close()#关闭文件,释放占用
#一行一行读入
f = open('file_in.txt',encoding='utf-8')#再次读入文件
while True:
line = f.readline()
if not line:
break
print(line)
f.close()#关闭文件,释放占用
#多行读入
f = open('file_in.txt',encoding='utf-8')#再次读入文件
while True:
line = f.readlines(100)
if not line:
break
#line是以列表形式存储的内容,列表中每一个元素代表一行
for l in line:
print(l)
f.close()#关闭文件,释放占用
#输出文件
log_f = open('file_out.log','w',encoding='utf-8')
log_f.write(f_content)
log_f.close()
f = open('no_file')
print('other code')
--------------------------------------------------------------------------- FileNotFoundError Traceback (most recent call last) <ipython-input-9-aea80d157e0e> in <module> ----> 1 f = open('no_file') 2 print('other code') FileNotFoundError: [Errno 2] No such file or directory: 'no_file'
try:
f = open('no_file')
except SyntaxError:
# 这里可以指定具体的错误类型,根据不同类型来对应不同的处理
#SyntaxError表示出现的是语法错误
#语法异常则...
print('syntax error')
except IOError:
#IOError表示出现的是输入输出错误
#如果发生文件输入输出异常,则...
print('no such file')
finally:
#不管异常发生与否,最终执行...
print('end')
print('go on')#继续执行后需命令
#注意:except类型可以不指定,finally语句也不是必须存在的
class Student:
name = '' #name属性是公开的
__score = -1 #score属性前面有__符号,表示是私有属性
#初始化方法,在类实例化的时候会首先调用这个方法
def __init__(self, name, score):
self.name = name
self.__score = score
#由于score是私有属性,因此需要通过类内部的方法来进行访问
def get_score(self):
return self.__score
def is_qualified(self):
if self.__score > 90:
print('优秀')
else:
print('继续努力')
s1 = Student('张三', 85)
s1.is_qualified()
print('学生姓名为:' + s1.name)#name属性是公开的,所以可以直接访问
继续努力 学生姓名为:张三
s1.name = '张麻子'
print('学生姓名改为:' + s1.name)#甚至可以直接改名字
学生姓名改为:张麻子
print('学生成绩为:{}'.format(s1.get_score()))#score属性是私有的,可以通过类内部的方法来调用访问
学生成绩为:85
print('学生成绩为:{}'.format(s1.__score))#因为无法访问score属性,所以会报错
--------------------------------------------------------------------------- AttributeError Traceback (most recent call last) <ipython-input-33-22b1f3200816> in <module> ----> 1 print('学生成绩为:{}'.format(s1.__score))#因为无法访问score属性,所以会报错 AttributeError: 'Student' object has no attribute '__score'
#但是在Python中并没有办法真正限制访问,如下方式就可以直接调用(格式为:对象._类__属性名)
print('学生成绩为:{}'.format(s1._Student__score))
s1._Student__score = 90#修改值也没问题
print('学生成绩为:{}'.format(s1._Student__score))
学生成绩为:85 学生成绩为:90
#继承
class Student:
_name = ''#name前面加_,类和子类都可以调用
def __init__(self, name):
self._name = name
def workday_act(self):
print(self._name + '工作日上课')
def weekend_act(self):
print(self._name + '周末休息')
class UGStudent(Student):
#重写父类的方法
def weekend_act(self):
print(self._name + '周末出去玩')
class PhD(Student):
#重写父类的方法
def weekend_act(self):
print(self._name + '作为博士生,周末看文献、跑数据当作休息')
ug1 = UGStudent('张三')
ug1.workday_act()
ug1.weekend_act()
phd1 = PhD('李四')
phd1.workday_act()
phd1.weekend_act()
张三工作日上课 张三周末出去玩 李四工作日上课 李四作为博士生,周末看文献、跑数据当作休息
class 武林人士:
def attack(self, obj):
obj.attack()
class 全真教(武林人士):
def attack(self):
print('全真教摆出了天罡北斗阵')
class 少林寺(武林人士):
def attack(self):
print('少林寺摆出了十八铜人阵')
p = 武林人士()
p1 = 全真教()
p2 = 少林寺()
p.attack(p1)
p.attack(p2)
全真教摆出了天罡北斗阵 少林寺摆出了十八铜人阵
#直接调用也可以
p1.attack()
p2.attack()
全真教摆出了天罡北斗阵 少林寺摆出了十八铜人阵