python -V可查看python有没有安装成功,结果是安装的python结果。
Pycharm 快捷键 Ctrl + D 表示复制当前行至下一行
一、注释
# 在一行之前表示单行注释
' ' '
多行注释
' ' '
" " "
多行注释
" " "
二、变量
1、变量命名要求:字母,数字,下划线
注意:(1)数字不能作为开头
(2)不能以关键字作为开头
import keyword
print(keyword.kwlist) 可以输出所有的关键字
2、变量定义
(1)定义即赋值,定义的时候不需要去指定数据的类型,python执行器可以自动判断。
i = 1
print(i,type(i)) #可以输出定义的变量默认的数据类型
结果:1 <class 'int'>
print():输出中数据是逗号隔开,输出时默认是空格,要想输出逗号可以用双引号或者单引号,因为python中没有字符的概念,默认都是字符串,数据后默认有end='\n', 表示自动换行。
print("hello",end="") #指定end后,不执行默认换行了。
print("world")
结果为:helloworld
三、数据类型
整型:int 字符串:str 小数:float
布尔类型:bool(True,False 首字母大写) 空类型:NoneType(值只有None)
1、数据类型之间的相互转换
i = "1" #字符转整数类型
print(int(i), type(int(i)))
d = "2.1" #字符窜转小数类型,字符串是小数数值不能转换为整数类型
print(float(d), type(float(d)))
c = 3.6 #小数类型转整数类型,会损失精度,不会四舍五入。
print(int(c), type(c))
i = 0 #小于等于0的数(小数也行),转换成bool类型时默认是False ,大于0默认是True
print(bool(i), type(bool(i)))
结果
1 <class 'int'>
2.1 <class 'float'>
3 <class 'float'>
False <class 'bool'>
四、字符串的常见操作
str = "lsfl slfj sldf kdk kd"
print(str.split(" ")) # split 分割方法
print("*" * 50) # 表示字符串的数量乘以50
"""
strip 表示去除字符串两边的隐藏字符
\t 表示一个制表符
\n 表示换行
\r 表示回车
"""
str2 = "\n \t java python sql \t \n \r"
print(str2)
print(str2.strip())
结果
['lsfl', 'slfj', 'sldf', 'kdk', 'kd']
**************************************************
java python sql
java python sql
'''
字符串截取
[开始位置:结束位置:步长] 索引从0开始,取值区间左闭右开,不包括结束位置
步长表示截取到的数值,先取第一个字符,每隔步长个数取一个字符,如果步长是1,则结果就是截取的值
'''
str = "java python hadoop mysql"
print(str[5:11])
print(str[5:11:1])
print(str[5:11:2])
print(str[::-1]) # 反转,前面默认全取,-1表是从右到左隔着取,因为是1,所以相当于反转了字符窜
python
python
pto
lqsym poodah nohtyp avaj
print(len(str)) 输出字符窜的长度
# 特定格式输出一个字符窜
#方式一
str_format = "{} * {} = {}"
print(str_format.format(a, b, a * b))
# 方式二
# %d 表示 数字
# %s 表示 字符串
# %f 表示 浮点型
# %.nf 表示 输出小数点后n位
print("%d * %d = %d" % (a, b, a * b))
print("%s * %d = %d" % ('4', b, a * b))
print('%f' % 3.14)
print('%.1f' % 3.14)
# 算术运算符
# + - * / % // **
# // 表示整除 ** 表示次方
a = 10
b = 3
print(a + b) # 13
print(a - b) # 7
print(a * b) # 30
print(a / b) # 3.33333...
print(a % b) # 1
print(a // b) # 3
print(a ** b) # 1000
# 如果是两个 ** 号 则需要从后往前计算
print(2 ** 3 ** 2) # 512
# 如果是两个 // 号 则需要从前往后计算
print(10 // 3 // 2) # 1
五、Python的数据容器(列表list,元组tuple,集合set,字典dict)
1、list 列表
用 [ ] 定义一个list ,通过索引取值
特点: 1.可以存储不同类型的数据 2.可以存储相同数值数据 4.列表中的元素是可以被删除的 5.列表中可以嵌套列表
(1)定义
list = [3, 1, 5, 6, 3, 63, 5]
print(list)
[3, 1, 5, 6, 3, 63, 5]
(2)list 的截取方法和str相同
print(list[开始位置 : 结束位置 : 步长 ])
print(list[::-1]) 取反
(3)对list进行增删改查
# 修改元素
list1[2] = "A" 修改位置为2的元素
print(list1)
# 删除元素
# pop方法:删除列表中最后一个元素
list1.pop()
print(list1)
# remove:删除列表中指定的值,如果出现重复,那么就删除第一个出现的值
list1.remove(1)
print(list1)
# 增加元素
# append:在列表的末尾进行追加元素
list1.append([1, 2]) #列表中可以嵌套列表
print(list1)
# insert:在列表的指定索引位置插入元素
list1.insert(4, False)
print(list1)
(4)其他函数
# 排序 默认从小到大
list2 = [3, 4, 1, 2]
list2.sort()
print(list2[::-1])
# 合并
# extend函数:讲另外一个列表追加到当前列表之后
list3 = [6, 7, 8, 9]
list1.extend(list3) #list3中的元素加到list1中
print(list1)
# +: 将两个list 合并成一个新的 list
list4 = list2 + list3
print(list4)
# 反转
list4.reverse()
print(list4)
# 统计指定元素的数量
list5 = [1, 1, 2, 3, 1]
print(list5.count(1))
#输出列表的长度
print(len(list1))
# 清除所有的list元素
list5.clear()
print(list5)
2、元组(tuple)
定义用()
特点: 1.可以存储重复数据 2.可以存储不同类型的数据 4.元组是不支持修改的
1、定义
tuple1 = (1, 1, 2, 3, 1.1, True, "str")
print(tuple1)
2、基本命令
print(tuple1(1)) #可以通过索引取值
# count:统计指定元素数量
print(tuple1.count(1))
print(len(tuple)) # 元祖长度
3、集合(set)
定义使用 { }
特点: 1.set集合可以存储不同类型数据 2.set集合是不可以通过索引取值 3.set集合存储不了重复数据
set1 = {1, 1, 2, "hello", False, 1.1}
print(set1)
# 取元素
# set集合不能通过下标进行取数据
#索引指能全取,通过for循环取值
for i in set1:
print(i)
# 删除数据
set1.pop()
print(set1) #{1, 2, 1.1, 'hello'} 默认删除set集合第一个
#删除指定元素,
set1.remove("hello")
print(set1) #
# 增加元素
set1.add(1)
set1.add(2)
set1.add(3)
print(set1) #因为是不可以重复,所以相同元素不能加入
# 集合运算
set2 = {2, 3, 4}
set3 = {3, 4, 5}
print(set2 & set3) # {3,4} 取交集
print(set2 | set3) # {2,3,4,5} 去掉相同元素
print(set2 - set3) # -号是指去除set2中set2与set3重复的元素
4、字典(dict)
定义:{K:V , k2:v2 , k3:v3 ...}
特点: 1.不可以存储相同Key的数据,默认存储后一个相同K,v值,v的值可以相同 2.需要通过Key进行取值,无法通过索引取值和改变某值 3.当Key中同时出现0和TRUE以及1和False后会出现相同key替换现象(特点1),默认key中1和true相同,0和false相同,但输出还是自己本身。 4.字典中的Key为不可变元素,Value中可以存储任意类型元素,values可以为字典,嵌套获取。 5.字典中的Value值可以直接根据数据类型取出,必须所有的value是不同数据类型 6.查询速度并不会随着元素的增多变慢
1、定义
dict1 = {
'x1': "x1",
'x1': "x2",
1: "1",
0: "0"}
print(dict1) #{'x1': 'x2', 1: '1', 0: '0'}
2、基本操作
# 通过Key进行取值
# 方式一:
print(dict1['x1'])
# 方式二:
dict1.get("x1")
# 改变Key对应的Value值
dict1['x1'] = 'x3'
print(dict1)
print(dict1.keys()) #获取所有key值
print(dict1.values()) #获取所有的value值
print(dict1.items()) #获取所有的k-v值
3、嵌套获取
dict1 = {
'x1': "x1",
1: {1: 2,
"t": 3
}
}
print(dict1.get(1).get(1)) # 2
print(dict1.get(1).get("t")) # 3
六、遍历所有的数据容器
# 遍历列表
ls1 = [3, 4, 5]
for i in ls1:
print(i)
# 遍历元组
tup1 = (3, 4, 5)
for t in tup1:
print(t)
# 集合Set
set4 = {4, 4, "hello", True}
for s in set4:
print(s) #输出结果中不会有重复元素
# 字典dict
dict2 = {
'xx1': "xx1",
'xx2': "xx2",
'xx3': "xx3",
}
for key in dict2.keys(): #输出所有的key
print(key)
for values in dict2.values(): # 输出所有的valus
print(values)
for kv in dict2.items(): #item返回的是元组,可以使用索引
print(kv)
print(kv[0], kv[1])
for k, v in dict2.items(): #输出所有
print(k, v)
xx1
xx2
xx3
xx1
xx2
xx3
('xx1', 'xx1')
xx1 xx1
('xx2', 'xx2')
xx2 xx2
('xx3', 'xx3')
xx3 xx3
xx1 xx1
xx2 xx2
xx3 xx3
七、其他函数
1、range函数:
# range 函数
# range 传值是一个区间,区间是左闭右开区间,起始位置如果是0 可以不写
for i in range(10):
print(i, end="")
结果为 0123456789
应用:
# 需求:获取一个从1...100的列表
# 方式一:
list6 = []
for i in range(1, 101):
list6.append(i)
print(list6)
# 方式2:
# 列表推导式
list7 = [i for i in range(1, 101)] #第二个i是循环中的,用来赋值给第一个i,然后存在列表中
print(list7)
# 需求:获取一个从1...100的奇数列表
# 方式一:
list7 = [i for i in range(1, 101, 2)]
print(list7)
# 方式2:
# 列表推导式
list7 = [i for i in range(1, 101) if i % 2 == 1]
print(list7)
2、join函数
# join 和 split
str2 = "java,python,scala"
print(str2.split(','))
list8 = str2.split(',')
print(','.join(list8))
结果
['java', 'python', 'scala']
java,python,scala
3、九九乘法表
print("\n".join(['\t'.join(['{} * {} = {}'.format(j, i, j * i) for j in range(1, i + 1)]) for i in range(1, 10)]))