关于python的基础知识学习,网上有不少资料,今天我就把我收藏的整理一下分享给你们!html
下面是我基础学习时的一点记录:python
n=10 sum = 0 counter = 1 while counter < n: sum = sum + counter counter += 1 print("1到%d之和为:%d" %(n, sum)) #while 循环使用 else 语句 count = 0 while count < 5: print (count, " 小于 5") count = count + 1 else: print (count, " 大于或等于 5")
#可使range以指定数字开始并指定不一样的增量(甚至能够是负数,有时这也叫作'步长') for i in range(0, 10, 3): print(i) for i in range(-10, -100, -30): print(i) a_list = ['google', 'baidu', 'ie', 'firefox', '360'] for i in range(len(a_list)): print(i, a_list[i]) #使用range建立列表 b_list = list(range(8)) print(b_list)
#使用break终止循环 for letter in 'helloworld': if letter == 'r': break print("当前字母为:", letter) #使用continue跳过循环 for letter in 'helloworld': if letter == 'l': continue print("当前字母为:", letter)
#说明:pass就是一条空语句。在代码段中或定义函数的时候,若是没有内容,或者先不作任何处理,直接跳过,就可使用pass。 for letter in 'helloworld': if letter == 'l': pass print("执行pass块") print("当前字母为:", letter)
c_list = [12, 34, 56, 78, 90] for i, j in enumerate(c_list): print(i, j)
for i in range(1, 6): for j in range(1, i+1): print('*',end='') print('\r')
for i in range(1, 10): for j in range(1, i+1): print("%d * %d = %d" %(j, i, i*j), end='\t') print('\r')
def paixu(d_list): for i in range(0, len(d_list)): for j in range(i+1, len(d_list)): if d_list[i] >= d_list[j]: tmp = d_list[i] d_list[i] = d_list[j] d_list[j] = tmp print(d_list) li = [32, 23, 65, 32, 76, 79, 56, 89, 12] paixu(li)
迭代器是一个能够记住遍历的位置的对象。编程
迭代器对象从集合的第一个元素开始访问,直到全部的元素被访问完结束。迭代器只能往前不会后退。微信
迭代器有两个基本的方法:iter() 和 next()。闭包
import sys it = iter(c_list) print(c_list) print(next(it)) for x in it: print(x, end=' ') it1 = iter(c_list) while True: try: print(next(it1)) except StopIteration: sys.exit()
在 Python 中,使用了 yield 的函数被称为生成器(generator)。
调用一个生成器函数,返回的是一个迭代器对象。
在调用生成器运行的过程当中,每次遇到 yield 时函数会暂停并保存当前全部的运行信息,返回 yield 的值, 并在下一次执行 next() 方法时从当前位置继续运行。函数
def fibonacci(n): a = 0; b = 1; counter = 0; while True: if (counter > n): return yield a a, b = b, a + b counter += 1 #生成器函数返回一个迭代器 fibo = fibonacci(10) while True: try: print(next(fibo), end=' ') except: sys.exit()
#加了星号(*)的变量名会存放全部未命名的变量参数。若是在函数调用时没有指定参数,它就是一个空元组。咱们也能够不向函数传递未命名的变量。 def printinfo(arg1, *vartuple): "打印任何传入的参数" print("输出:") print(arg1) for var in vartuple: print(var) return printinfo(10) printinfo(10, 20, 30)
python 使用 lambda 来建立匿名函数。
所谓匿名,意即再也不使用 def 语句这样标准的形式定义一个函数。学习
虽然lambda函数看起来只能写一行,却不等同于C或C++的内联函数,后者的目的是调用小函数时不占用栈内存从而增长运行效率。ui
sum = lambda arg1, arg2: arg1 + arg2 print(sum(10,20))
Python中变量的做用域一共有4种,分别是:google
以 L –> E –> G –>B 的规则查找,即:在局部找不到,便会去局部外的局部找(例如闭包),再找不到就会去全局找,再者去内建中找。spa
B = int(2.9) # 内建做用域 G = 0 # 全局做用域 def outer(): E = 1 # 闭包函数外的函数中 def inner(): L = 2 # 局部做用域
import pickle import os datafile = 'C:\\Users\\root\\Desktop\\PyDemo\\person.data' line = '#########################################' message = ''' ####################################### *Welcome bookmark: * * press 1 to show list * * press 2 to add pepole * * press 3 to edit pepole * * press 4 to delete pepole * * press 5 to search pepole * * press 6 to show menu * * press 0 to quit * ####################################### ''' #打印菜单栏 print(message) #建立一我的类,有姓名和电话号两个属性 class Person(object): def __init__(self, name, number): self.name = name self.number = number #获取数据 def get_data(filename = datafile): if os.path.exists(filename) and os.path.getsize(filename): with open(filename, 'rb') as f: return pickle.load(f) return None #写入数据 def set_data(name, number, filename = datafile): personList = {} if get_data() == None else get_data() with open(filename, 'wb') as f: personList[name] = Person(name, number) pickle.dump(personList, f) #保存字典格式的数据到文件 def save_data(dictPerson, filename = datafile): with open(filename, 'wb') as f: pickle.dump(dictPerson, f) #显示全部联系人信息 def show_all(): personList = get_data() if personList: for v in personList.values(): print(v.name, v.number) print(line) else: print('空空如也,请添加联系人!') print(line) #添加联系人 def add_person(name, number): set_data(name, number) print('添加联系人成功!') print(line) #更新联系人 def edit_person(name, number): personList = get_data() if personList: if name in personList.keys(): personList[name] = Person(name, number) save_data(personList) print('更改联系人信息成功!') else: print('查无此人', name, ',请重试!') print(line) #删除联系人 def del_person(neme): personList = get_data() if personList: if name in personList: del personList[name] save_data(personList) print('删除联系人成功!') else: print(name, '不存在!') print(line) #查询联系人 def find_person(name): personList = get_data() if personList: if name in personList.keys(): print(personList.get(name).name, personList.get(name).number) else: print('查无此人!', name) print(line) while True: num = input('>>>') if num == '1': print('查看全部联系人:') show_all() elif num == '2': print('添加联系人:') name = input('请输入联系人姓名 >>') number = input('输入联系人电话号 >>') add_person(name, number) show_all() elif num == '3': print('更新联系人:') name = input('请输入联系人姓名 >>') number = input('输入联系人电话号 >>') edit_person(name, number) show_all() elif num == '4': print('删除联系人:') name = input('请输入联系人姓名 >>') del_person(name) show_all() elif num == '5': print('查找联系人:') name = input('请输入联系人姓名 >>') find_person(name) elif num == '6': print(message) elif num == '0': break else: print('输入错误,请重试!')
个人我的微信订阅号:【Java编程社区】 欢迎你的加入!