##Python学习–最完整的基础知识大全
关于python的基础知识学习,网上有很多资料,今天我就把我收藏的整理一下分享给大家!

*
#####菜鸟教程python2 <http://www.runoob.com/python/python-tutorial.html>

*
#####菜鸟教程python3 <http://www.runoob.com/python3/python3-tutorial.html>

*
#####Python2.7 入门指南 <http://www.pythondoc.com/pythontutorial27/index.html>

*
#####Python3.6 入门指南 <http://www.pythondoc.com/pythontutorial3/index.html>

*
#####廖雪峰Python教程
<https://www.liaoxuefeng.com/wiki/0014316089557264a6b348958f449949df42a6d3a2e542c000>

*
#####Python100例 <http://www.runoob.com/python/python-100-examples.html>

*
#####Python中文开发者社区门户 <http://www.pythontab.com/html/pythonjichu/>

*
#####W3CPython基础教程 <https://www.w3cschool.cn/python/>

下面是我基础学习时的一点记录:
###python3 循环语句

####1. while
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")
####2. for
#可以使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)
####3. break和continue
#使用break终止循环
for letter in ‘helloworld’:
if letter == ‘r’:
break
print(“当前字母为:”, letter)
#使用continue跳过循环
for letter in ‘helloworld’:
if letter == ‘l’:
continue
print(“当前字母为:”, letter)
####4. pass语句
#说明:pass就是一条空语句。在代码段中或定义函数的时候,如果没有内容,或者先不做任何处理,直接跳过,就可以使用pass。
for letter in ‘helloworld’:
if letter == ‘l’:
pass
print(“执行pass块”)
print(“当前字母为:”, letter)
####5. 使用enumerate函数进行遍历
c_list = [12, 34, 56, 78, 90]
for i, j in enumerate(c_list):
print(i, j)

####6. 小练习
#####循环练习
for i in range(1, 6):
for j in range(1, i+1):
print(’*’,end=’’)
print(’\r’)

#####99乘法表
for i in range(1, 10):
for j in range(1, i+1):
print("%d * %d = %d" %(j, i, ij), 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)
###Python3 迭代器与生成器
####迭代器
迭代器是一个可以记住遍历的位置的对象。

迭代器对象从集合的第一个元素开始访问,直到所有的元素被访问完结束。迭代器只能往前不会后退。

迭代器有两个基本的方法: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 只是一个表达式,函数体比 def 简单很多。
* lambda的主体是一个表达式,而不是一个代码块。仅仅能在lambda表达式中封装有限的逻辑进去。
* lambda 函数拥有自己的命名空间,且不能访问自己参数列表之外或全局命名空间里的参数。
虽然lambda函数看起来只能写一行,却不等同于C或C++的内联函数,后者的目的是调用小函数时不占用栈内存从而增加运行效率。
sum = lambda arg1, arg2: arg1 + arg2
print(sum(10,20))
###变量的作用域
Python中变量的作用域一共有4种,分别是:

* L (Local) 局部作用域
* E (Enclosing) 闭包函数外的函数中
* G (Global) 全局作用域
* B (Built-in) 内建作用域
以 L –> E –> G –>B 的规则查找,即:在局部找不到,便会去局部外的局部找(例如闭包),再找不到就会去全局找,再者去内建中找。
B = int(2.9) # 内建作用域 G = 0 # 全局作用域 def outer(): E = 1 # 闭包函数外的函数中 def inner():
L = 2 # 局部作用域
###一个完整的demo
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编程社区】 欢迎你的加入!

友情链接
KaDraw流程图
API参考文档
OK工具箱
云服务器优惠
阿里云优惠券
腾讯云优惠券
华为云优惠券
站点信息
问题反馈
邮箱:[email protected]
QQ群:637538335
关注微信