摘要:学习基础操作基本模块常用源阿里云豆瓣清华大学中国科学技术大学华中科技大学第一讲基础知识添加注释三键实现格式规范或者在编译器中点击英文输入符号特定字符产生一个新的含义,就是转义字符我爱编程指定为分隔变量
python学习
常用pip源
(1)阿里云
http://mirrors.aliyun.com/pypi/simple/
(2)豆瓣
http://pypi.douban.com/simple/
(3)清华大学
https://pypi.tuna.tsinghua.edu.cn/simple/
(4)中国科学技术大学
http://pypi.mirrors.ustc.edu.cn/simple/
(5)华中科技大学
http://pypi.hustunique.com/
第一讲
基础知识
# ctrl+/ 添加注释# ctrl+alt+l 三键实现格式规范# 或者在pycharm编译器中点击“code->Reformat Code# 英文输入符号# /+特定字符 产生一个新的含义,就是转义字符(# // /t)print(666)print("我爱编程")# sep=","指定,为分隔变量的符号print("唐三", "小舞", "张三", sep=",")print("唐三", "小舞", sep="/n")# end="/n"指定换行结尾print("唐三", "小舞", end="*")print("唐三", "小舞", end="/n")# 变量# 1.有一定意义# 2.由数字,字母,下划线组成,数字不能开头name = "张三"#等号是赋值print(name)# input()表示输入,在括号里面加入""可加入提示input("请输入您的密码")
第二讲
数据类型
# 整型 int# 浮点型 float# 字符型 str# """中间可以放几段话"""name = """啦啦啦啦啦啦啦啦啦"""print(name)# type函数name = "漩涡鸣人"print(type(name))# 运算注意优先级以及从左向右计算# 字符不能和整数类型相加,但可以变换name = "张三"age = 48print(name + str(age))# 同理整型和浮点类型也可以相互转换,但有非数字的字符不能转换为整数,也不能是浮点类型结构
第三讲
运算符
# + - * / % 加减乘除求余number = input("请输入数字")number = int(number) # 输入的是字符类型,用int转换为整数类型进行运算result = number % 2print(result)# //表示整除运算bounty = 5000print(bounty/280) # 结果是17.86print(bounty//280) # 结果是17# += *= /= -= 运算符# 关系运算符返回值类型是布尔类型# ord()函数可以查看字符对应的整数数值print(ord("a"))# 逻辑运算符 and or not# and 有假就为假 or 有真就为真 not 真就假假就真
第四讲
条件语句
# if 要判断的条件: (标准结构)# 条件成立时要做的事情# else:# 条件成立时要做的事情money = input("请输入您的钱数")money = int(money) # 注意转换things1 = "盲盒"if money>35: print("拿下{}".format(things1))# 用{}进行占位,用.format()函数填充占位else: print("买不起")
# elif语句# if 条件1:# 事情1# elif 条件2:# 事情2# else:# 事情3choice1 = input("请输入你要选的品牌")choice2 = input("请输入你要选的衣服类型")money = input("请输入你手中有多少钱")money = int(money)if choice1 == "安踏" and choice2 == "短袖" and money > 60 : print("您购买了{}品牌的{}".format(choice1,choice2), "您还有{}元钱".format(money-60) , sep = "/n")elif choice1 == "李宁" and choice2 == "短袖" and money > 60 : print("您购买了{}品牌的{}".format(choice1,choice2), "您还有{}元钱".format(money-60) , sep = "/n")elif choice1 == "耐克" and choice2 == "短袖" and money > 60: print("您购买了{}品牌的{}".format(choice1, choice2), "您还有{}元钱".format(money - 60), sep="/n")else: print("您要的我们没有或者您的钱不足以支付请重试") # if下语句可继续嵌套if
第五讲
循环语句
循环的核心在于减少重复代码,条件要尽量通用化
# while 循环条件:(当循环条件不成立时结束)# 循环执行的代码i = input("请输入数字")i = int(i)while i <= 5: i += 1 print(i)# 需求:限制登陆次数i = 3while i >= 1: username = input("请输入用户名") password = input("请输入密码") if username == "admin" and password == "123456" : print("登录成功") break # 作用在于登录成功后退出循环 else: print("登录失败") i -= 1 print("还有{}次机会" .format(i)) continue # 继续循环
# for 变量 in 序列:# 循环体# 变量:自定义变量名,要求和多带带定义时候一样# 序列:容器型数据类型的数据,比如字符串,布尔,列表,元组,集合# 循环体:需要重复执行的代码for x in range(1,11): print("今天你直播下单{}次".format(x)) # range()函数作用是产生一个序列,从0开始 # range(1,11)则表示从1开始11结束但是不包括11 # range(1,6,2)表示135的序列,即2为步长(可以是负数)# 需求:限制登陆次数for i in range(3): username = input("请输入用户名") password = input("请输入密码") if username == "admin" and password == "123456" : print("登录成功") break # 作用在于登录成功后退出循环 else: print("登录失败") print("还有{}次机会" .format(2-i)) continue # 继续循环# continue 跳过本次循环,后面语句不执行,继续执行下一次循环# 需求:打印1-12数字,除了8不打印# 方法一for i in range(1,13): if i == 8: continue else: print(i)# 方法二i = 1while i <12: i += 1 if i == 8 : continue print(i)# else可以和while,for进行配合# 案例一i = 13while i <12: print("验证失败")else: print("验证成功")# 案例二for i in range(8): print(i , end=" ")else: print("/n") print("结束")
第六讲
数据类型列表(列表类似数组,字典类似结构体)
# 以前介绍的int bool str float都只能存放一个值,需要列表存放一堆值# 变量名字 = [元素,元素,元素]heros = ["张三", "张四", "张五", "张六", "张七", "张八"]print(type(heros))
输出结果是
# 那怎么找到列表中的某一个元素呢?这就要用到列表索引# 计算机编号从0开始,相关方式类比数组heros = ["张三", "张四", "张五", "张六", "张七", "张八"]print(heros[1])
即可获取张四,同理可以获取其他元素,若要同时获取多个元素,则要使用列表切片的办法
# 1:3表示索引的一个左闭右开区间,只包含左边不包含右边heros = ["张三", "张四", "张五", "张六", "张七", "张八"]print(heros[0:6])# [3:]若省去终止位置,则表示从标明的初始位置一直索引到终止位置heros = ["张三", "张四", "张五", "张六", "张七", "张八"]print(heros[0:])
这样就可以把上述元素全部输出出来了(俩个方法结果一样)
输出结果为 [‘张三’, ‘张四’, ‘张五’, ‘张六’, ‘张七’, ‘张八’]
但是显然不可能所有的取法步长都为一也不可能都是顺序取元素
# 完整格式 print(列表名(初始位置:终止位置:步长)) 默认步长为+1heros = ["张三", "张四", "张五", "张六", "张七", "张八"]print(heros[0::2])
这样就可以输出从第一个元素开始的所有奇数项元素
我们在长数据超大数据时,往往不方便一次看出到底有多少个元素
# len()函数可以获取列表的长度print(len(heros))
我们往往需要增加删除修改查找列表元素,实现列表元素动态管理
(增删改查)
增# append可以实现列表元素增加heros.append("张九")# insert函数可以定向添加元素# insert方法只是插入元素,原来在此位置以及之后的元素全体后移heros.insert(3, "张六plus")删# pop或者remove可以实现列表元素删除# 列表.pop[索引]表示删除特定位置索引位置的元素heros.pop() # 若索引为空表示删除最后一个元素heros.remove("张三") # 移除张三这个元素改heros[0] = "张三plus" # 实现修改定向位置的元素查# index函数可以实现查找某一元素具体位置,并通过变量存储,在案例实现的时候有奇效number1 = heros.index("张三")print(number1)# 可以利用 in 来判断元素在不在列表内# 格式 查找的元素 in 列表名 返回值是布尔类型,可以用int转换后用变量储存下来heros = ["张三", "张四", "张五", "张六", "张七", "张八"]number3 = int("张2" in heros)print(number3)# index 和 in 可以相互补充相互协调,index返回具体位置,in判断在不在,还可以配合后面的count来判断在不在
有些时候一个列表会有很多重复的元素,我们需要函数来帮我们进行计数
# 列表名.count(要查询的元素) 返回值为元素个数heros = ["张三", "张四", "张五", "张六", "张七", "张八"]heros.append("张三")heros.append("张三")heros.append("张三")heros.append("张三")number2 = heros.count("张三")print(number2)
字典
# 基础格式 变量名字 = {key1:value1,key2:value2}hero = {"姓名": "孙悟空","性别": "男", "定位":"战士" }print(hero)print(type(hero))
得到的结果是
字典还可以和列表搭配使用
hero = {"姓名": "孙悟空", "性别": "男", "定位": "战士", "最佳搭档": ["八戒", "沙僧", "唐僧"]}print(hero)print(type(hero))# 那如何获取里面中的东西呢print(hero["性别"])# 如何判断字典里面是否有我们查找的键呢# print(字典名.get(查找的键,如果找不到返回的东西))hero = {"姓名": "孙悟空", "性别": "男", "定位": "战士", "最佳搭档": ["八戒", "沙僧", "唐僧"]}print(hero.get("定位", "未知"))# 我们用get的时候,如果键存在则返回键的值,如果键不存在则返回设定的返回值,如果我们没有设定返回值,则返回NONE
字典同样支持增删改查操作,实现动态管理
hero = {"姓名": "孙悟空", "性别": "男", "定位": "战士", "最佳搭档": ["八戒", "沙僧", "唐僧"]}hero["血量"] = 4399 # 对于一个原来没有的键进行操作会添加hero["性别"] = "未知" # 对于一个原来有的键进行操作会修改print(hero)# 字典名.pop[键名]表示删除特定键heros.pop("定位") # 可以利用 in 来判断元素在不在字典内# 格式 查找的键 in 字典 返回值是布尔类型,可以用int转换后用变量储存下来hero = {"姓名": "孙悟空", "性别": "男", "定位": "战士", "最佳搭档": ["八戒", "沙僧", "唐僧"]}number4 = int("姓名" in hero)print(number4)# value函数可以输出字典的所有值hero = {"姓名": "孙悟空", "性别": "男", "定位": "战士", "最佳搭档": ["八戒", "沙僧", "唐僧"]}print(hero.values())# 结果为: dict_values(["孙悟空", "男", "战士", ["八戒", "沙僧", "唐僧"]])# value的作用不光只是显示,还可以配合in进行逻辑判断hero = {"姓名": "孙悟空", "性别": "男", "定位": "战士", "最佳搭档": ["八戒", "沙僧", "唐僧"]}print(int("孙尚香" in hero.values())) # 返回值为布尔类型
字符串的使用
# 单引号,双引号,三引号三种声明方式,三引号的优点在于可以原样输出,空格空行都会被保留hero1 = "hello"hero2 = "hi"hero3 = """ hello hi """print(hero1, hero2, hero3)
字符串和列表一样,也有切片和索引的访问形式
把字符串当成字符的列表
message = "王者荣耀"print(message[0])print(message[:2]) # 从初始位置到2这个位置# 案例 在任意一个输入字符串中,查找是否有英雄这个子串string = input("请输入一个字符串")lenstr = int(len(string))for x in range(0, lenstr): if string.find("英雄") >= 0: # find函数可以查找,如果找到显示第一个字符的位置,如果没找到会返回-1 print("有英雄这个子串") break else: if x == lenstr - 1 : print("没有英雄这个子串") else: continueprint(string.startswith("王者"))print(string.endswith("王者"))# startswitch函数可以判断是否以某某字符或字符串开头,返回值为布尔类型# endswitch函数可以判断是否以某某字符或字符串结尾,返回值为布尔类型
简化字符串技巧
字符串中有很多空格或者转义字符我们可以用一个函数全部去除
# strip函数s = " hello/////mm/n/n/n/n"print(s.strip())
输出结果是 hello//mm
第七讲
函数
# 函数格式(定义)def sum(num): # def关键字表示定义一个函数 sum是函数名 num是形参可以有多个 result = 0 for x in range(1, num+1): result += x print(result)# 要注意缩进,以及分号的使用# 函数调用# 调用格式: 函数名(参数)这里参数是实参def sum(num): result = 0 for x in range(1, num+1): result += x print(result)number = 1sum(number)
案例
定义一个函数来实现用户的登录
def login(): username = input("输入用户名") password = input("输入密码") if username == "admin" and password == "123456": print("登录成功") else: print("登录失败")login()
函数的参数
# 有参传参,无参空着,顺序一致def milk_tea(n,kind="波霸奶茶"): # n表示奶茶数量,kind表示奶茶种类 # 默认参数一定要在普通参数后,默认参数可以不传参使用默认值 # 可以有很多默认参数但一定要在所有普通参数结束后再写默认参数 for i in range(n): print("正在制作第{}杯奶茶".format(i+1)) print("放入{}的原材料".format(kind)) print("调制奶茶") print("倒入奶茶") print("封口")milk_tea(5)milk_tea(1, "珍珠奶茶")milk_tea(4, "椰果奶茶")milk_tea(5, "黑糖珍珠奶绿")
关键字参数
def milk_tea(n, kind
文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。
转载请注明本文地址:https://www.ucloud.cn/yun/118792.html
摘要:十年铲码,八大体系超千篇数百万字技术笔记系列汇总悦享版十年铲码两茫茫,纵思量,却易忘不觉笔者步入程序员已有十年。十年之期,正巧笔者从阿里离开,重回打印制造业的怀抱,希望能依托于设备优势逐步真正构建分布式制造网络。 showImg(https://segmentfault.com/img/remote/1460000020151971); 十年铲码,八大体系超千篇数百万字技术笔记系列汇总...
阅读 1229·2021-11-08 13:25
阅读 1430·2021-10-13 09:40
阅读 2760·2021-09-28 09:35
阅读 717·2021-09-23 11:54
阅读 1107·2021-09-02 15:11
阅读 2416·2019-08-30 13:18
阅读 1646·2019-08-30 12:51
阅读 2671·2019-08-29 18:39