PYTHON 入门
通过cmd命令终端,输入jupyter notebook进入。
变量:由字母、下划线、数字组成,不能用数字打头,慎用字母I和O,因为容易认错。并且变量名只好用小写字母组成!
// 取整:5//2 → 2
% 取余:5%2 → 1
divmod(a,b) a是取整,b是取余
a**b 和pow(a,b) a的b次方
计算顺序括号的优先级最高!类型转换:
s = “3.232”
int_s = int(s) → 如果是字符串的话,字符串内的数字小数点是字符,因此无法转换成整数类型的,只能转换成浮点数。即float()数据类型:
列表: 本身可以修改
list()或[ ]
.切片:前闭后开
[::1] 步长为1
a.reverse() 将列表中的元素倒过来排列,也可以使用切片[::-1]
a.sort() 列表进行排序,是对表本身进行排序修改。 本身是列表的方法 从高到低 a.sort(reverse=True)
sorted() 也是对列表进行排序,但是不改变原表,只是显示结果 本身就是一个函数。
a.index() 返回该列表中值得索引
比如找出该列表中最小值得索引
a.index(min(a))
增删改查:
a.append(x) :在列表最后直接添加元素x
a.extend(b) 在列表添加一个可迭代的对象,并且对其拆包。比如b=[7,8,9] ,把一个列表添加进去,会将其列表元素一个一个添加进去。
a.insert(x,y) x是索引的位置,y是添加的值
a.remove(x)删除列表中x值
del a[y] 删除索引是y的值
a.pop() 删除列表最后的一个值元祖:不可以修改
tuple() 或()字典:查询速度可以说是最快的。
键值是唯一的
a=[“name”:“bo”,“sex”=“male”]
a[“name”]
a.get(“name”) 如果就算没有name这个键,也不会报错。a.get(“xiaoming”,“None”)如果没有key值则返回后面的值!
删除:
a.pop(“name”) 返回值,并且删除
字典遍历:
for k,v in a.items():
print()
字典增:
#方法一:直接添加键值对就好
aa = {'人才':60,'英语':'english','adress':'here'}
aa['价格'] = 100
#方法二:使用update方法
rr = {'hhh':'gogogo'}
aa.update(rr)
字典删:
# 删除方法一:使用del函数
del[aa['adress']]
print(aa) # {'人才': 60, '英语': 'english', '价格': 100, 'hhh': 'gogogo'}
#删除方法二:使用pop函数,并返回值
vv = aa.pop('人才')
print(vv) # 60
print(aa) # {'英语': 'english', '价格': 100, 'hhh': 'gogogo'}
# clear方法,删除所有
aa.clear()
print(aa) # {},为空
#用于根据key值获取VALUE,如果key值不存在,则会给k值一个默认的value,再返回这个key所对应的value。
d.setdefault(“name”,1)
对字典进行排序
a = {"a":1,"b":2,"c":3}
sorted(a.items(),key=lambda s:s[0])
集合:
set() 是key的集合,里面是唯一的不重复的
| 取并集
& 取交集
条件判断:
if
循环:
while
一定要给一个条件变量设定一个自增量,否则容易导致死循环。
break:
立即退出while循环,不再运行循环中余下的代码,也不管条件测试的结果如何。
continue:
要返回到循环开头,并根据条件测试结果决定是否继续执行循环,它 不像break语句那样不再执行余下的代码并退出整个循环
input() 返回的结果总是字符串
因此需要使用比较时,需要类型转换。比如int(input(0)
函数:
定义一个函数要使用def语句,依次写出函数名、括号、括号中的参数和冒号:,然后,在缩进块中编写函数体,函数的返回值用return语句返回
def reaplace_element(a_list,x,y):
i =0
while(i<len(a_list)):
if a_list[i]==x:
a_list[i]=y
i=i+1
return a_list
函数的参数:
除了正常的定义的必选参数外,还可以使用默认参数、可变参数和关键字参数。
1.位置参数:按照参数位置传递。
默认参数:
def my_fun0(age,name,home = "shanghai"):
if age > 18:
print(name)
print(home)
可变参数:
传入的参数个数是可变的,可以是任意的。
def my_fun1(*x):
r = 0
for i in x:
r = r+i*i
return r
函数内部会把参数作为一个tuple来进行使用
如果本身是一个列表a,要实现可变参数在函数内加*
my_fun1(*a) 就会把a里面进行拆包放入
关键词参数:
关键字参数可以传入任意个带有参数名的参数,这些参数会在函数内部组装成一个字典格式.
def my_fun2(name,**kv):
if name == "小明":
for k,v in kv.items():
print(k)
print(v)
my_fun2(“name”,age=18,sex=“male”)
参数组合:
在Python中定义函数,可以用必选参数、默认参数、可变参数、关键字参数和命名关键字参数,这5种参数都可以组合使用。但是请注意,参数定义的顺序必须是:必选参数、默认参数、可变参数、命名关键字参数和关键字参数。
def complex_fun(name,home = "shanghai",*args,**kv):
'''
'''
if name =="xiaoming":
r = 0
for i in args:
r = i +r
print(r)
elif name == "xiaohong":
for k,v in kv.items():
print(k,":",v)
else:
print("Not "+ str(home))
a = [1,2,3,3,4] =》 1,2,3,3,4
complex_fun(“xiaoming”,“shanghai”,*a,age=18,sex=“male”)
这里吧a中的第一个数值传给了home。 因此需要给定下"shanghai"
函数编写规范
编写函数时,需要牢记几个细节。应给函数指定描述性名称,且只在其中使用小写字母和下 划线。描述性名称可帮助你和别人明白代码想要做什么。给模块命名时也应遵循上述约定。
每个函数都应包含简要地阐述其功能的注释,该注释应紧跟在函数定义后面,并采用文档字 符串格式(‘’’ ‘’')。文档良好的函数让其他程序员只需阅读文档字符串中的描述就能够使用它:他们完全 可以相信代码如描述的那样运行;只要知道函数的名称、需要的实参以及返回值的类型,就能在 自己的程序中使用它。
列表生成器:
列表生成器是python内置方法却又非常强大的功能,我们在处理数据的时候一定要灵活掌握该方法。
# 列表生成器一般把元素写在前面,后面使用for循环读取每一个元素
# 生成一个 [1*1,2*2,...,100*100]的列表
[x * x for x in range(1,101)]
接上if判断
[x * x for x in range(1,101) if x %2==0]
[0 if i >4 else 5 for i in range(5)]
可以嵌套多个循环:
a = [1,2,3,4,5]
b = [10,20,30,40,50]
[m +n for m in a for n in b]
随堂练习:
1.随机姓名产生器
根据给出的姓和名各自取一个值,随机的生成一个姓名,比如last_names中随机挑选“赵”,first_names 中随机挑选“然”,那么结果就是“赵然”!要求随机生成10个姓名,保存到一个列表中!
import random # 产生随机数
result = [] # 结果列表
# YOUR CODE HERE
for i in range(1,11):
result.append(last_names[random.randrange(0,len(last_names))]+first_names[random.randrange(0,len(last_names))])
print(result)
2.根据用户输入产生姓名
给用户两个输入整数,一个代表last_names的索引,一个代表first_names的索引。要提醒用户输入的索引整数不能大于列表的长度!
然后使用索引在列表中查找对应的姓和名进行组合!
while(True):
x1 = int(input("请输入姓的索引正式(输入整数)"))
x2 = int(input("请输入名的索引正式(输入整数)"))
if x1>len(last_names) or x2>len(first_names):
print("您输入的姓氏代号超过限制")
else:
print(last_names[int(x1)]+first_names[int(x2)])
break
3.根据用户的输入进行组合,要求如下:用户可以随意输入整数索引或者文字
def fun_complex(x,y):
print(x+y)
fun_complex(x=input(),y=input())
库pip不上,可以访问python库自下载 也可以直接:
pip install TensorFlow -i https://pypi.tuna.tsinghua.edu.cn/simple
pip install keras -i https://pypi.doubanio.com/simple/
工作后补充:
1.进制转换
hex()转化为16进制
int(“0x21”,16)16进制转换为十进制
浮点数转换为16进制
import struct
struct.pack("<f", 37.6).hex()#低端
struct.pack(">f", 37.6).hex()#高端
16进制转化为浮点数
struct.unpack('<f', bytes.fromhex(s))[0]