自学的Python,只是做个笔记
源码:
GitHub链接:https://github.com/ldl326308/python-basics
百度网盘链接:https://pan.baidu.com/s/1ridE8KU4fF3N8JKRQzbVMA
提取码:cgec
1、关于数据类型
# -*- coding:UTF-8 -*- # 1、数据类型 number1 = 10 number2 = 10.2 str1 = '这是一个字符串' # 注意布尔值的关键字首字母要大写 flag = False obj = None print('输出函数print()的相关用法') # 输出函数 print() print(number1) print('哈哈', str1) print(''' 这 个 就 牛 掰 了 ''') print('转义符的使用=========') # 转义符 print('我是\'归途\'') # 加字母 r 在输出语句最前面,输出内容不再被转义 print(r'我是\\\n\\') print('\n') print('逻辑运算符 and or ') # 逻辑运算符 and or print(True and True) print(False or True) print(6 > 9 and 4 > 7) print(3 > 4 or 6 > 2) print('单目运算符 not ') # 单目运算符 not print(not True) print(not 1 > 2) print('两种除法 "/" 和 "//" ') # 两种除法:第一种 '/' 第二种 '//' print(10 / 3) print(9 / 3) print(10 // 3) print("运算符 % ") print(20 % 9)
2、list 和 tuple 集合
# -*- coding:UTF-8 -*- # list 有序集合,是有序、有序、有序的 fruits = ['orange', 'apple', 'banana', 'pineapple'] print(fruits) # 输出 fruits 集合的长度用函数 len() print('fruits 集合的长度是:', len(fruits)) # 取出元素语法:集合名称[索引] # 注意:索引是从 0 开始的,索引可以是负数,如:-1 指的是取集合倒数第一个 print(fruits[0]) print(fruits[-1]) # 添加元素语法:集合名称.append(要添加的内容) # 这是追加到最后的位置 fruits.append('chestnut') # 插入到指定位置语法:集合名称.insert(索引, 内容) fruits.insert(1, 'pear') # 删除集合元素语法: # 集合名称.pop() 这是删除最后的 # 集合名称.pop(1) 删除索引是1的元素 fruits.pop() fruits.pop(1) # 元素替换语法:集合名称[0] = 'sarah' fruits[0] = 'sarah' # list 集合里的元素可以是不同的类型 obj = ['apple', 123, False] # list 元素也可以是另一个list obj2 = [obj, '听闻', True] # 案例2 p = ['java', 'php'] s = ['python', p, 'C#'] # 如果要获得 list 集合 s 中的 Java,可以把这个list看成是一个二维数组 print(s[1][0]) # 第二种有序列表,tuple 和 list 非常相似,tuple 初始化后不可以进行修改 tuple1 = ('java', 'php', 'C#', 'JavaScript') # tuple 没有append()、insert()这样的方法,获取元素的方式是一样的 print(tuple1[0]) print(tuple1[-1]) # 注意:如果你要定义一个元素的tuple集合,那么在元素的后面要加上"," # "()" 可以表示数学公式中的小括号,也可以表示tuple集合, # 所以需要在定义一个只有一个元素的tuple时加上"," 来消除歧义 tuple2 = (9,) # tuple中的元素也可以是一个list tuple3 = ('a', 'b', ['C', 'D'], 'e') # 注意:集合tuple3 里的list集合元素是可以改变的, # 因为list元素改变并没有改变tuple3 指向的 list tuple3[2][0] = 'X'
3、dict 和 set(dict:键值对,存储key和value set:只保存键)
# -*- coding:UTF-8 -*- # Python内置字典:dict,dict全程dictionary,Java语言中成为map # 使用键-值(key-value)存储,具有极快的查找速度 scores = {'小明': 95, '小红': 89, '小天': 78} # 通过 键 去读取 值 print(scores['小明']) # 通过 键 去写入 值 scores['小红'] = 99 # 使用 in 关键字 判断一个 键 是否存在 print('小明' in scores) # 通过get()判断 键 是否存在,不存在可以返回自己指定的值 scores.get('小夏', -9) # 删除使用 pop(key) ,根据 键 删除内容 scores.pop('小明') # key 是不可变对象 # set和dict类似,是一组key的集合 # 但不存储value,key不能重复 set1 = ([1, 2, 3, 4, 5]) print(set1) # 重复的元素会自动过滤 set2 = set([1, 1, 1, 23, 4, 3, 2, 4]) # set 添加元素使用 add(key) # set1.add(6) # set 删除元素用remove(key),如果没有key值,会抛出异常 # 所以,删除前建议先判断是否存在key set1.remove(5) # set 中的 &(交集) 、 |(并集) s1 = set([1, 2, 3]) s2 = set([2, 3, 4]) print(s1 & s2) print(s1 | s2) # 字符串替换 replace('','') str1 = 'abcde' print(str1.replace('a', 'A'))
4、流程控制语句
# -*- coding:UTF-8 -*- # 流程控制语句:if、elif、else age = 20 if age > 30: print('age 的值大于 30') elif age > 18: print('age 的值大于 18') else: print("age 的值不大于30也不大于18") # if 还可以简写,用来判断一个 obj 是非零数值、非空字符串、非空list x = None if not x: print('x是非零数值或非空字符串或非空list') # 接收输入内容函数:input() s = input('birth:') # 注意:input()返回的数据是string类型 # 需要转换为int才能进行数的比较 birth = int(s) if birth > 2000: print("00后") else: print("00前的老人")
5、for、while循环
# -*- coding:UTF-8 -*- print('循环结合') # 循环集合,Python中有循环结束执行的函数,如下所示else # 当然,你不需要也可以去掉 names = ['史森明', '简自豪', '刘世宇'] for name in names: print(name) else: print('集合循环结束') print('数字循环 1 - 10') # 循环 1 - 10,需要用到一个函数range(起始值,结束值) # range() 函数可以生成一个整数序列,再通过list()函数转换成list for i in range(1, 11): print(i) else: print('数字循环结束') print('while循环开始') # while 循环 n = 0 while n < 10: print(n) n = n + 1 else: print('while循环结束') print("break、continue的使用") # 循环中break:结束循环 # continue:跳过此次循环,继续执行下一次 for i in range(1, 20): # 当 i 大于10时,用break退出循环 if i > 10: break else: print(i) print('使用continue') # 输出 1 - 10之间的偶数 for n in range(1, 11): # n 为奇数是跳过此次循环 if n % 2 == 1: continue else: print(n)
6、函数
# -*- coding:UTF-8 -*- # 函数,定义函数关键字 def # 定义一个求和的函数 sum def summation(number_one, number_two): return number_one + number_two number1, number2 = 20, 10 # 函数调用 number3 = summation(number1, number2) print(number3) # 默认参数:如果第二个参数不输入,默认第二个参数为18 # 注意:默认参数指向不变对象 def hello(name, age=18): print('我叫', name, '今年', age, '岁') # 函数调用 hello('LiuDilin', 20) hello('LiuMingkai') print('参数为可变对象,及其发生的问题') # 参数为可变对象,及其发生的问题 def add_end(L=[]): L.append('end') return L # 调用 add_end() # 第一次执行函数,L = [] ,返回的集合最后被追加了一个'end'元素 print(add_end()) # 第二次执行函数,L 指向的不在是一个空的 集合 print(add_end()) print('参数为不可变对象') def add_end_two(L=None): if L is None: L = [] L.append('end') return L # 调用 add_end_two() print(add_end_two()) print(add_end_two()) print(add_end_two()) print('=============关键字参数===========') # 关键字参数 def person(name, age, **lc): print('name:', name, 'age:', age, 'other:', lc) # 调用 person('Michael', 30) person('Bob', 20, city='珠海', money=88.0) extra = {'city': '珠海', 'money': 88.0} person('LiuDilin', 20, **extra) def say(name, age, *kw): print('name:', name, 'age:', age, kw) say('LiuDilin', 20, 'a', 'b', 'c') def hello(name, age, *args, city, money): print(name, age, args, city, money) arr = (2, 3, 6, 7) hello('LiuMingkai', 20, arr[0], arr[1], city='Guangzhou', money=20.9) def hear(name, *args, **age): print(name, age)
7,面向对象编程
# -*- coding:UTF-8 -*- # OOP:面向对象编程 # 创建一个学生类:Student # object : 表示Student是从object继承下来的 # 字段以:_字段名 意思是私有的,外部不可对其修改 class Student(object): # 初始化 def __init__(self, name, sex, age): self._name = name self._sex = sex self._age = age def get_name(self): return self._name def get_sex(self): return self._sex def get_age(self): return self._age def set_name(self, name): self._name = name def set_sex(self, sex): self._sex = sex def set_age(self, age): self._age = age # 打印信息方法 def print_info(self): print('name:%s sex:%s age:%d' % (self._name, self._sex, self._age)) # stu1 = Student('LiuMingkai', '男', 24) # # Student内部访问是没有问题的 # print(stu1._name) # stu1.print_info()
归途(LC)