python初识## 1.下载包添加链接描述
2.安装
全部下一步next,选择创建安装目录
安装成功
pycharm安装
官网pycharm
这里没有免费版的不要急 下载其他版本
一直下一步安装自己创建个目录
如果出现jdk什么的报错直接使用管理员启动
python解释器路径
安装chinese汉化包,跟transtion 翻译包
python语法
money = 50
print("钱包还有", money - 10)
数据类型转换
这里主要有几种占位符包括精度的计算d% 整数 s% 字符串 f% 浮点数 写法就是 ‘d%’ % 精度如下实例
name = 'dsjk'
stock_price = 19.99
stock_code = '003032'
stock_price_daily_factor = 1.2
growth_days = 7
print(f'公司{name},股票代码{stock_code},当前股价:{stock_price}')
//.1f代表保留1位小数 2.1表示2个字符串长度保留一位小数
print('每日增长系数:%.1f,经过%s天的增长,股价达到了%.2f' % (stock_price_daily_factor,growth_days,stock_price * stock_price_daily_factor ** growth_days))
这里主要就是input,if else 的语法 注意空格缩进
//案例猜3次数字
import random //引入random
num = random.randint(1, 10) //获取随机数
guess_num = int(input()) //数据类型转换 input获取输入内容
//注意下ifelse 的语法 elif 这是else if 的缩写
if guess_num == num:
print('恭喜第一次就猜中')
else:
if guess_num < num:
print('小了')
else:
print('大了')
guess_num2 = int(input('再次输入'))
if guess_num2 == num:
print('恭喜第2次就猜中')
else:
if guess_num2 < num:
print('小了')
else:
print('大了')
guess_num3 = int(input('再次输入'))
if guess_num3 == num:
print('恭喜第3次就猜中')
else:
print('你没机会了')
while循环语句
import random
num = random.randint(1, 100)
flag = True
i = 0
while flag:
whiteNum = int(input('请输入'))
if whiteNum == num:
print('你猜中了')
flag = False
else:
if whiteNum < num:
print('你猜小了')
else:
print('你猜大了')
i += 1
print(f'你猜了{i}次')
for 循环
name = 'sfewgewgrer'
for x in name:
print(x)
关键字 range
//第一个参数代表生成结束位置从0开始
for x in range(5):
print(x) # 0,1,2,3,4
//两个参数就是从开始到结束
for x in range(5, 8):
print(x) # 5,6,7
//三个参数就是从开始到结束,第三个是步进数
for x in range(5, 10, 2):
print(x) # 5,7,9
continue break
- continue 暂时跳过
- break 直接结束
函数定义def
global可以把函数中的局部变量变成全局变量
类定义
def add(a, b):
print(a + b)
return a + b
class Student:
pass
student = add(1, 2)
add = add(3, 4)
下标索引的方法
index找到索引位置,如果没有会报错
list = list() #数组创建的另一种方式
arr = [1, 4, 5, 212, 'wefewf']
print(arr.index('wefewf')) # 4
arr[4] = '修改了' # 修改值直接取出元素修改就好了
print(arr) # [1, 4, 5, 212, '修改了']
insert插入元素
arr.insert(1, '插入内容')
print(arr)
append末尾添加元素
arr.append('末尾添加')
print(arr)
extend末尾添加多个会一个个取出来放在后面
arr.extend(['添加一个', '添加2个'])
删除元素del ,pop(),remove()方法,clear()
arr = [1, 4, 5, 212, 'wefewf', 212]
del arr[4] # 直接选中要删除的元素
arr.remove(212) # 删除的匹配到的第一个元素
arr.pop(3) # 使用数组的pop方法传入索引,返回的是删除的元素,原数组发生改变
arr.clear() # 清空数组
print(arr)
count统计某个元素出现的次数
arr = [1, 4, 5, 212, 'wefewf', 212]
arr.count(212)
print(len(arr)) # 6 统计元素数量
print(arr.count(212)) # 2
reserve反转
arr=[1,2,22,5]
arr.reverse()
print(arr) # [5, 22, 2, 1]
元祖的定义
元祖一旦被定义不可修改,只读,但是元祖里面的list元素可以修改,使用 () 或者关键字tuple 定义
arr=(1,2,3,[2,3,4]) # 使用小括号定义
arr.[3][1]='可以修改'
arr = tuple() # 使用tuple关键字定义
arr = (1,) #单个元素的元祖后面要加逗号
print(arr)
字符串
首先字符串在python中只读的不允许修改,如果要修改那么将返回新的字符串
replace
将某个字符串修改返回新的字符串
arr='safgewgew'
arr1 =arr.replace('a','这个')
print(arr,arr1)
split
通过某个字符串进行分割,生成数组
arr = 'safgewgew'
arr1 = arr.split('e') # ['safg', 'wg', 'w']
print(arr, arr1)
strip
默认清除前后空格,如果传参了就是清除前后带有参数的字符
arr = ' safgewgew '
arr1 = arr.strip('1') # ' safgewgew '
arr1 = arr.strip() # 'safgewgew'
print( arr1)
切片
切片就是将一个大的字符串,数组或者元祖切成更小的一部分,写法 字符串||数组||元祖[开始位置:结束位置:步长默认为1可省略]
,起始位置省略就是全部
arr = [1, 2, 3, 4, 5]
my_tuple = (1, 2, 3, 4, 5, 6)
print(arr[:]) # 从头切到位步进位1 [1, 2, 3, 4, 5]
print(arr[::2]) # 从头切到尾步进为2 [1, 3, 5]
print(arr[::-1]) # 从头切到尾步进为1倒着切 [5, 4, 3, 2, 1]
print(my_tuple[6:2:-1]) # 从索引为6切到2进为1倒着切 (6, 5, 4) 倒切第一个参数大于第二个否则就是空
print(my_tuple[2:6:1]) # 从索引为2切到6进为1正着切 (3, 4, 5, 6)
集合
集合跟其他语言定义不一样这里我单独拎出来
集合不支持while循环,因为集合是无序的,所以不支持下标索引
,集合也是去重的
集合的基本用法
object = {1,23,3}
obj = set()
print(obj, type(obj)) # set() <class 'set'>
obj2 = {11,2, 3, 4, 5}
print(obj2.pop()) # 数字就是取最小的
obj3 = {'ewjkg', 'rgjherjk', 'glkjgek'}
print(obj3.pop()) # 随机取得字符串
obj3 = {'张三', '李四', '王五'}
add_obj = obj3.add('赵六')
print(obj3) # {'张三', '赵六', '王五', '李四'}
remove_obj = obj3.remove('赵六')
print(obj3) # {'王五', '张三', '李四'}
# 这里注意remove跟add方法都没有返回值返回都是None
obj3.clear() # {} 清除集合
集合的差集
求差集
谁调用找谁里面的不同元素
set1 = {1,2,3}
set2 = {1,5,6}
set3=set1.difference(set2)
print(set3) # {2, 3} 返回的是2集合里没有的
print(set2) # {1,5,6}
print(set1) # {1,2,3}
删除差集
谁删除改变谁的集合
set1 = {1,2,3}
set2 = {1,5,6}
set3=set1.difference_update(set2)
print(set3) # None
print(set2) # {1,5,6}
print(set1) # {2,3} 删除1集合里面相同的
集合的合集
set1 = {1,2,3}
set2 = {1,5,6}
set3=set1.union(set2)
print(set3) # {1, 2, 3, 5, 6}
print(set2) # {1,5,6}
print(set1) # {1,2,3}
字典dict
字典就是键值对的集合,字典也是不允许键重复
obj1 = dict()
obj2 = {} # 这里注意因为{}被字典占用所以集合不能{}
obj3 = {'name': '张三', 'age': '20'} # 字典定义
obj = { # 嵌套定义
'张三': {
'age': 28,
'height': 180
}, '李四': {
'age': 22,
'height': 111
}, '王五': {
'age': 23,
'height': 157
},
}
for key in obj:
print(key) # 直接循环得到key
print(obj)
print(obj['张三']['age']) # 20
常用方法
- pop :删除某项 原字典发生改变
- clear:清除字典
- keys:获取所有的key
sorted 排序
第二个参数 reverse=True
,倒叙
arr = [1,2,4,99,3]
arr2 = (1,2,4,99,3)
arr3 = {
'张三':{
'age':18,
'sex':'男'
}, '李四':{
'age':18,
'sex':'男'
}, '王五':{
'age':18,
'sex':'男'
}
}
print(sorted(arr))
print(sorted(arr,reverse=True))
print(sorted(arr2))
print(sorted(arr3))
sort 排序
my_list =[['a',33],['b',55],['c',11]]
def choose_sort_key(ele):
return ele[1]
my_list.sort(key=lambda ele:ele[1],reverse=True) # 第一个参数是函数 返回数据根据返回数据进行排序 ,第二个反转
print(my_list) # [['b', 55], ['a', 33], ['c', 11]]
sort 跟sorted区别 :
sorted是根据单个数据进行排序,ascall码进行排序
sort 可以根据多个数据的指定数据进行排序
函数def,lambda
这里可以返回多个返回值,那么返回的就是一个元祖对象,lambda 匿名函数
def fn():
return 1,'True'
print(fn()) # (1,'True')
# 位置不定长参数*代替 形参不定长**
def fn2(*args):
return args
print(fn2(20)) # 20
def fn2(fn):
return fn(1,2)
fan = lambda a,b:a+b
print(fn2(fan))
捕获异常
try:
except:
-------------*------------------
try:
print(name)
except NameError as e: # 指定异常
print(e)
-------------*------------------
try:
print(name)
except Exception as e: # 捕获全部异常
print(e)
else:
# 否则逻辑
finally:
# 有没有异常都执行
模块导入
import time # 模块导入
from time import * # 全部导入
from time import sleep # 方法导入
print('11')
sleep(5)
print('22')
模块导入的时候是默认执行,这时候我们就需要去判断默认变量
def add(a, b):
return a + b
# 大概意思就是当前执行的模块名是当前模块才执行,如果是引入将不执行
if __name__ == '__main__':
print(add(1, 2))
使用all指定的时候,引入就只能引入指定的方法,可以手动的导入