变量及其赋值
x = 3
name = 'lilei'
a = b = c = 100
d, e, f = 1, 2, 3
变量命名规则
- 大小写英文、数字和_的结合,且不能用数字开头;
- 系统关键词不能做变量名(在终端输入help('keywords'));
- 变量名区分大小写;
- 变量名不能包含空格,可以使用下划线来替代;
- 不能使用python内置函数名称做变量名。
数据类型
# 数字型
a = 1
print(type(a))
b = 2.0
print(type(b))
<class 'int'>
<class 'float'>
# 字符串
a = 'Hello Krypton'
print(type(a))
<class 'str'>
# 列表
a = [1, 'two', 3.0, 'four']
print(type(a))
<class 'list'>
# 元组
a = (1, 'two', 3.0, 'four')
print(type(a))
<class 'tuple'>
# 字典(无序的)
a = {1:'one', 2:'two'}
print(type(a))
<class 'dict'>
# 集合
a = set([1,2,2,3,2,6,2,1,13,5])
print(a)
print(type(a))
{1, 2, 3, 5, 6, 13}
<class 'set'>
# bool
a = True
b = False
print(type(a),type(b))
<class 'bool'> <class 'bool'>
数据类型-数字型
# 包括整型、浮点型
# 加减乘除:+,-,*,/; 取余:%;
a = 9
b = 2
# 指数运算,a的b次方
print(a**b)
# //,除法取整运算,计算商并去除小数部分
print(a//b)
81
4
# 比较运算: >, <, >=, <=, ==, !=
x = 9
y = 2
if(x==y):
print('yes')
else:
print('no')
no
# 赋值运算
# =, +=, -=, *=, /=
x = 5
y = 3
# **=计算指数并把结果赋值给左边的运算对象
x **= y
print(x)
# //=除法取整并将结果赋值给左边的对象
x //= y
print(x)
125
41
数据类型-字符串
# 赋值三种方法
name = 'Krypton'
number = "150"
title = '''student'''
test = 'adiministration'
# 返回字符串长度
print(len(name))
# 切片
print(name[0])
print(name[3:6]) #左闭右开
print(test[2:11:3]) #第三个是步进,前面两个是范围,左闭右开
# 倒序输出
print(test[::-1])
7
K
pto
int
noitartsinimida
# 字符串不可变,如需改变只能新建
a = 'hello Krypton'
newa = 'p'+a[1:]
print(newa)
pello Krypton
# 字符串的转义
# 反斜杠符号
print('aa\\bb')
# 退格
print('aa\bbb')
# 换行
print('aa\nbb')
# 制表
print('aa\tbb')
aa\bb
aabb
aa
bb
aa bb
# 字符串的连接
a = 'hello'
b = ' world'
print(a+b)
hello world
列表
# 中括号表示,逗号(英文)隔开
# 通过中括号下标访问
numbers = [8,7,6,5,4,3,2,1]
# 符合切片的规则
print(numbers[2:6])
[6, 5, 4, 3]
# 分片赋值
name = list('Python')
name[2:] = list('abc')
print(name)
#获取长度
print(len(name))
# 修改
name1 = ['tom','jerry','krypton']
name1[1] = 'radon'
print(name1)
# 向列表添加元素
name1.append('marry')
print(name1)
# 删除列表元素
del name1[1]
print(name1)
#合并列表
print(name+name1)
['P', 'y', 'a', 'b', 'c']
5
['tom', 'radon', 'krypton']
['tom', 'radon', 'krypton', 'marry']
['tom', 'krypton', 'marry']
['P', 'y', 'a', 'b', 'c', 'tom', 'krypton', 'marry']
# 判断元素是否在列表中
inventory = ['key','poison','solution']
if 'key' in inventory:
print('Yes')
else:
print('No')
Yes
# 获取某个元素的重复次数
number2 = [0,1,1,2,3,4,1]
print(number2.count(1))
#获取第一次出现的位置(下标)
print(number2.index(4))
3
5
# 练习:将字符串转换成列表并将偶数下标元素降序排列,奇数下标的不变
a = list('132569874')
a[::2] = a[::2][::-1]
print(a)
['4', '3', '8', '5', '6', '9', '2', '7', '1']
元组
b = (2,'kk',88)
print(type(b))
print(b[0:2]) # 切片操作同样适用
<class 'tuple'>
(2, 'kk')
字典
phone_num = {'tom':123, 'bob':456, 'slice':789}
print(phone_num)
print(type(phone_num))
{'tom': 123, 'bob': 456, 'slice': 789}
<class 'dict'>
message = [('kk',98),('bb',99)]
d = dict(message)
print(d)
# 查询
print(d['kk'])
# 赋值
d['kk'] = 100
print(d['kk'])
#添加
d['ss'] = 50
print(d)
{'kk': 98, 'bb': 99}
98
100
{'kk': 100, 'bb': 99, 'ss': 50}
phone_num = {'tom':123, 'bob':456, 'slice':789}
message = [('kk',98),('bb',99)]
d = dict(message)
# 删除某一项
del phone_num['tom']
print(phone_num)
# 删除字典本身
# del d
# 嵌套
exam = [phone_num, d]
print(exam)
{'bob': 456, 'slice': 789}
[{'bob': 456, 'slice': 789}, {'kk': 98, 'bb': 99}]
集合
# 直接用花括号方式创建
set1 = {1,2,4,5,8}
# 用set方式创建
set2 = set([1,2,3,5,9])
# 求集合的并集
print(set1 & set2)
# 交集
print(set1 | set2)
# 差集
print(set1 - set2)
# 对称差集:并集减去交集的部分
print(set1 ^ set2)
print((set1&set2)-)
File "<ipython-input-25-fc554025e3c9>", line 14
print((set1&set2)-)
^
SyntaxError: invalid syntax
布尔表达式
# 与、或、非
# and or not
print(True and False)
False
a = 5
b = 6
if a>0 and a>b:
print('Yes')
else:
print('No')
No
条件判断
- 相同的缩紧表示是同一个代码块
- 可以用一个tab或者四个空格,但不要混用
- 注意冒号
test = 10
if test<0:
print('a')
elif test==0:
print('b')
else:
print('c')
c
循环
i = 1
while i<3:
print(i)
i += 1
1
2
for i in range(3):
print(i)
0
1
2
# range的使用:(起始,结束,间隔)
for i in range(0,6,2):
print(i)
0
2
4
# 跳出循环:break; 什么都不做的占位语句:pass
函数
def TestFunc(name, age):
print(name + '的年龄是' + age)
TestFunc('Krypton','23')
Krypton的年龄是23
def add(a,b):
sum = a+b
return sum
value = add(4,12)
print(value)
16
类
- 类里的函数必须有self参数
- 驼峰命名:TsinghuaStudent
class Animal():
def __init__(self):
self.x = 0
def move(self):
self.x+=10
#实例化
dog = Animal()
cat = Animal()
dog.move()
dog.move()
print('Dog position:', dog.x)
Dog position: 20
class Student():
def __init__(self,name,age,weight):
self.name = name
self.age = age
self.__weight = weight # 私有属性
# 定义需要访问self参数的函数需要在参数列表中加入self
def say_hi(self):
print("Hi! I'm {}, I'm {} years old.".format(self.name,self.age))
def get_weight(self):
print(self.__weight)
kk = Student('Krypton',23,45)
kk.say_hi()
# print(kk.weight) ->会报错
kk.get_weight()
Hi! I'm Krypton, I'm 23 years old.
45