彭亮—Python学习
1.1 Python简单介绍
1.2 安装Python和配置环境
1.配置Python
2.2 数据类型2: Numeric & String
可以直接以字面的意义使用它们:如:6,2.24,3.45e-3, "This is a string"常量:不会被改变
4. 注释: #
demo的含义:
Demo是英文Demonstration的缩写,在商业影视作品和广告片中,Demo的含意为“示范”、“展示”、“样片”、“样稿”,
Demo字样通常是加在未制作完成的影视作品或广告视频中的,加上Demo字样的影视作品或广告片是只用来供商业
客户审片用,不允许随意发布和传播的。在电脑上的DEMO简单的说就是展示电脑图形与音乐的程式,所以游戏开
始的动画展示也是DEMO的一种。在电脑公司,可以看到电脑上展示介绍电脑软硬件的程式,这些属于商业性质的
DEMO;这些DEMO是凭借图形与音乐来吸引顾客,达到宣传的目的。中文说的就是预告片的意思。
演示版,使用版,试玩版
# -*- coding: utf-8 -*-#创建一个列表number_list = [1, 3, 5, 7, 9]string_list = ["abc", "bbc", "python"]mixed_list = ['python', 'java', 3, 12]#访问列表中的值second_num = number_list[1]third_string = string_list[2]fourth_mix = mixed_list[3]print("second_num: {0} third_string: {1} fourth_mix: {2}".format(second_num, third_string, fourth_mix))#更新列表print("number_list before: " + str(number_list))number_list[1] = 30print("number_list after: " + str(number_list))#删除列表元素print("mixed_list before delete: " + str(mixed_list))del mixed_list[2]print("mixed_list after delete: " + str(mixed_list))#Python脚本语言print(len([1,2,3])) #长度print([1,2,3] + [4,5,6]) #组合print(['Hello'] * 4) #重复print(3 in [1,2,3]) #某元素是否在列表中#列表的截取abcd_list =['a', 'b', 'c', 'd']print(abcd_list[1])print(abcd_list[-2])print(abcd_list[1:])# 列表操作包含以下函数:# 1、cmp(list1, list2):比较两个列表的元素# 2、len(list):列表元素个数# 3、max(list):返回列表元素最大值# 4、min(list):返回列表元素最小值# 5、list(seq):将元组转换为列表# 列表操作包含以下方法:# 1、list.append(obj):在列表末尾添加新的对象# 2、list.count(obj):统计某个元素在列表中出现的次数# 3、list.extend(seq):在列表末尾一次性追加另一个序列中的多个值(用新列表扩展原来的列表)# 4、list.index(obj):从列表中找出某个值第一个匹配项的索引位置# 5、list.insert(index, obj):将对象插入列表# 6、list.pop(obj=list[-1]):移除列表中的一个元素(默认最后一个元素),并且返回该元素的值# 7、list.remove(obj):移除列表中某个值的第一个匹配项# 8、list.reverse():反向列表中元素# 9、list.sort([func]):对原列表进行排序
3.2元组Tuple1. List# 列表操作包含以下函数:# 1、cmp(list1, list2):比较两个列表的元素# 2、len(list):列表元素个数# 3、max(list):返回列表元素最大值# 4、min(list):返回列表元素最小值# 5、list(seq):将元组转换为列表# 列表操作包含以下方法:# 1、list.append(obj):在列表末尾添加新的对象# 2、list.count(obj):统计某个元素在列表中出现的次数# 3、list.extend(seq):在列表末尾一次性追加另一个序列中的多个值(用新列表扩展原来的列表)# 4、list.index(obj):从列表中找出某个值第一个匹配项的索引位置# 5、list.insert(index, obj):将对象插入列表# 6、list.pop(obj=list[-1]):移除列表中的一个元素(默认最后一个元素),并且返回该元素的值# 7、list.remove(obj):移除列表中某个值的第一个匹配项# 8、list.reverse():反向列表中元素# 9、list.sort([func]):对原列表进行排序2. 元组(tuple)创建访问删除脚本操作符函数方法
3.2_Part2列表List元组tuple对比
#创建只有一个元素的tuple,需要用逗号结尾消除歧义a_tuple = (2,)#tuple中的listmixed_tuple = (1, 2, ['a', 'b'])print("mixed_tuple: " + str(mixed_tuple))mixed_tuple[2][0] = 'c'mixed_tuple[2][1] = 'd'print("mixed_tuple: " + str(mixed_tuple))Tuple 是不可变 list。 一旦创建了一个 tuple 就不能以任何方式改变它。Tuple 与 list 的相同之处定义 tuple 与定义 list 的方式相同, 除了整个元素集是用小括号包围的而不是方括号。Tuple 的元素与 list 一样按定义的次序进行排序。 Tuples 的索引与 list 一样从 0 开始, 所以一个非空 tuple 的第一个元素总是 t[0]。负数索引与 list 一样从 tuple 的尾部开始计数。与 list 一样分片 (slice) 也可以使用。注意当分割一个 list 时, 会得到一个新的 list ;当分割一个 tuple 时, 会得到一个新的 tuple。Tuple 不存在的方法您不能向 tuple 增加元素。Tuple 没有 append 或 extend 方法。您不能从 tuple 删除元素。Tuple 没有 remove 或 pop 方法。然而, 您可以使用 in 来查看一个元素是否存在于 tuple 中。用 Tuple 的好处Tuple 比 list 操作速度快。如果您定义了一个值的常量集,并且唯一要用它做的是不断地遍历它,请使用 tuple 代替 list。如果对不需要修改的数据进行 “写保护”,可以使代码更安全。使用 tuple 而不是 list 如同拥有一个隐含的 assert 语句,说明这一数据是常量。如果必须要改变这些值,则需要执行 tuple 到 list 的转换。Tuple 与 list 的转换Tuple 可以转换成 list,反之亦然。内置的 tuple 函数接收一个 list,并返回一个有着相同元素的 tuple。而 list 函数接收一个 tuple 返回一个 list。从效果上看,tuple 冻结一个 list,而 list 解冻一个 tuple。Tuple 的其他应用一次赋多值>>> v = ('a', 'b', 'e')>>> (x, y, z) = v解释:v 是一个三元素的 tuple, 并且 (x, y, z) 是一个三变量的 tuple。将一个 tuple 赋值给另一个 tuple, 会按顺序将 v 的每个值赋值给每个变量。
3.3 字典 Dictionary键(key),对应值(value)结构介绍# -*- coding: utf-8 -*-#创建一个词典phone_book = {'Tom': 123, "Jerry": 456, 'Kim': 789}mixed_dict = {"Tom": 'boy', 11: 23.5}#访问词典里的值print("Tom's number is " + str(phone_book['Tom']))print('Tom is a ' + mixed_dict['Tom'])#修改词典phone_book['Tom'] = 999phone_book['Heath'] = 888print("phone_book: " + str(phone_book))phone_book.update({'Ling':159, 'Lili':247})print("updated phone_book: " + str(phone_book))#删除词典元素以及词典本身del phone_book['Tom']print("phone_book after deleting Tom: " + str(phone_book))#清空词典phone_book.clear()print("after clear: " + str(phone_book))#删除词典del phone_book# print("after del: " + str(phone_book))#不允许同一个键出现两次rep_test = {'Name': 'aa', 'age':5, 'Name': 'bb'}print("rep_test: " + str(rep_test))#键必须不可变,所以可以用书,字符串或者元组充当,列表不行list_dict = {['Name']: 'John', 'Age':13}list_dict = {('Name'): 'John', 'Age':13}# 六、字典内置函数&方法# Python字典包含了以下内置函数:# 1、cmp(dict1, dict2):比较两个字典元素。# 2、len(dict):计算字典元素个数,即键的总数。# 3、str(dict):输出字典可打印的字符串表示。# 4、type(variable):返回输入的变量类型,如果变量是字典就返回字典类型。# Python字典包含了以下内置方法:# 1、radiansdict.clear():删除字典内所有元素# 2、radiansdict.copy():返回一个字典的浅复制# 3、radiansdict.fromkeys():创建一个新字典,以序列seq中元素做字典的键,val为字典所有键对应的初始值# 4、radiansdict.get(key, default=None):返回指定键的值,如果值不在字典中返回default值# 5、radiansdict.has_key(key):如果键在字典dict里返回true,否则返回false# 6、radiansdict.items():以列表返回可遍历的(键, 值) 元组数组# 7、radiansdict.keys():以列表返回一个字典所有的键# 8、radiansdict.setdefault(key, default=None):和get()类似, 但如果键不已经存在于字典中,将会添加键并将值设为default# 9、radiansdict.update(dict2):把字典dict2的键/值对更新到dict里# 10、radiansdict.values():以列表返回字典中的所有值
3.4 函数Function1函数:程序中可重复使用的程序段给一段程程序起一个名字,用这个名字来执行一段程序,反复使用 (调用函数)用关键字 ‘def' 来定义,identifier(参数)identifier参数listreturn statement局部变量 vs 全局变量Code:#-*- coding: utf-8 -*-#没有参数和返回的函数# def say_hi():# print(" hi!")## say_hi()# say_hi()###有参数,无返回值# def print_sum_two(a, b):# c = a + b# print(c)## print_sum_two(3, 6)# def hello_some(str):# print("hello " + str + "!")## hello_some("China")# hello_some("Python")#有参数,有返回值# def repeat_str(str, times):# repeated_strs = str * times# return repeated_strs### repeated_strings = repeat_str("Happy Birthday!", 4)# print(repeated_strings)#全局变量与局部 变量# x = 60## def foo(x):# print("x is: " + str(x))# x = 3# print("change local x to " + str(x))## foo(x)# print('x is still', str(x))x =def foo():global xprint("x is: " + str(x))x =print("change local x to " + str(x))foo()print('value of x is' , str(x))
3.4 函数Function2默认参数关键字参数VarArgs参数Code:#-*- coding: utf-8 -*-# 默认参数def repeat_str(s, times = 1):repeated_strs = s * timesreturn repeated_strsrepeated_strings = repeat_str("Happy Birthday!")print(repeated_strings)repeated_strings_2 = repeat_str("Happy Birthday!" , 4)print(repeated_strings_2)#不能在有默认参数后面跟随没有默认参数#f(a, b =2)合法#f(a = 2, b)非法#关键字参数: 调用函数时,选择性的传入部分参数def func(a, b = 4, c = 8):print('a is', a, 'and b is', b, 'and c is', c)func(13, 17)func(125, c = 24)func(c = 40, a = 80)#VarArgs参数 #传入多个参数,其中函数的形参前面加一个*表示传入的是一个列表,函数的形参前面加两个**表示,传入的是关键字def print_paras(fpara, *nums, **words):print("fpara: " + str(fpara))print("nums: " + str(nums))print("words: " + str(words))print_paras("hello", 1, 3, 5, 7, word = "python", anohter_word = "java")输出结果为 :fpara: hello
fpara: (1, 3, 5, 7)
fpara: {'word': 'python', 'another_word': 'java'}
4.1 控制流 :If语句&for语句1. if 语句if condition:do somethingelif other_condition:do something2. for 语句Code:# #if statement example## number = 59# guess = int(input('Enter an integer : '))## if guess == number:# # New block starts here# print('Bingo! you guessed it right.')# print('(but you do not win any prizes!)')# # New block ends here# elif guess < number:# # Another block# print('No, the number is higher than that')# # You can do whatever you want in a block ...# else:# print('No, the number is a lower than that')# # you must have guessed > number to reach here## print('Done')# # This last statement is always executed,# # after the if statement is executed.#the for loop example# for i in range(1, 10):# print(i)# else:# print('The for loop is over')### a_list = [1, 3, 5, 7, 9]# for i in a_list:# print(i)## a_tuple = (1, 3, 5, 7, 9)# for i in a_tuple:# print(i)## a_dict = {'Tom':'111', 'Jerry':'222', 'Cathy':'333'}# for ele in a_dict:# print(ele)# print(a_dict[ele])## for key, elem in a_dict.items():# print(key, elem)
4.2 控制流:while语句&range语句1. while语句2. range语句Code:#while example# number = 59# guess_flag = False### while guess_flag == False:# guess = int(input('Enter an integer : '))# if guess == number:# # New block starts here# guess_flag = True## # New block ends here# elif guess < number:# # Another block# print('No, the number is higher than that, keep guessing')# # You can do whatever you want in a block ...# else:# print('No, the number is a lower than that, keep guessing')# # you must have guessed > number to reach here## print('Bingo! you guessed it right.')# print('(but you do not win any prizes!)')# print('Done')#For examplenumber = 59num_chances = 3print("you have only 3 chances to guess")for i in range(1, num_chances + 1):print("chance " + str(i))guess = int(input('Enter an integer : '))if guess == number:# New block starts hereprint('Bingo! you guessed it right.')print('(but you do not win any prizes!)')break# New block ends hereelif guess < number:# Another blockprint('No, the number is higher than that, keep guessing, you have ' + str(num_chances - i) + ' chances left')# You can do whatever you want in a block ...else:print('No, the number is lower than that, keep guessing, you have ' + str(num_chances - i) + ' chances left')# you must have guessed > number to reach hereprint('Done')
4.3 控制流2Break&Continue&Pass1. break2. continue3. passCode:#break & continue example# number = 59## while True:# guess = int(input('Enter an integer : '))# if guess == number:# # New block starts here# break #符合条件,直接跳出当前循环,直接到while外执行 print('Bingo! you guessed it right.')下面的程序## # New block ends here# if guess < number:# # Another block# print('No, the number is higher than that, keep guessing')# continue #直接跳出当前的循环,然后从新回到while出开始循环# # You can do whatever you want in a block ...# else:# print('No, the number is a lower than that, keep guessing')# continue# # you must have guessed > number to reach here## print('Bingo! you guessed it right.')# print('(but you do not win any prizes!)')# print('Done')#continue and pass difference# a_list = [0, 1, 2]## print("using continue:")# for i in a_list:# if not i:# continue# print(i) 执行结果using continue 1 2## print("using pass:")# for i in a_list:# if not i:# pass #pass直接忽略当前,直接执行下面 的内容print(i)# print(i) 执行结果using continue 0 1 2
5.1输入输出格式IoConsole接受用户的输入: input()输入格式:str(), formatCode:str_1 = input("Enter a string: ")str_2 = input("Enter another string: ")print("str_1 is: " + str_1 + ". str_2 is :" + str_2)print("str_1 is {} + str_2 is {}".format(str_1, str_2))
5.2文件输入输出1. 写出文件2. 读入文件Code:some_sentences = '''\I love learning pythonbecause python is funand also easy to use'''#Open for 'w'irtingf = open('sentences.txt', 'w')#Write text to Filef.write(some_sentences)f.close()#If not specifying mode, 'r'ead mode is defaultf = open('sentences.txt')while True:line = f.readline()#Zero length means End Of Fileif len(line) == 0:breakprint(line)# close the Filef.close6.1错误与异常ErrorsExceptionsPython有两种错误类型:1. 语法错误(Syntax Errors)2. 异常(Exceptions)首先,try语句下的(try和except之间的代码)被执行如果没有出现异常,except语句将被忽略如果try语句之间出现了异常,try之下异常之后的代码被忽略,直接跳跃到except语句如果异常出现,但并不属于except中定义的异常类型,程序将执行外围一层的try语句,如果异常没有被处理,将产生unhandled exception的错误处理异常(Handling Exceptions)Exception doc: https://docs.python.org/3.4/library/exceptions.htmlCode:#Example of Syntax errors# while True print("Hello World!")#Examples of exceptions# print(8/0)# print(hello * 4)# num = 6# print("Hello World " + num )#Handling exceptions# while True:# try:# x = int(input("Please enter a number"))# break# except ValueError:# print("Not valid input, try again...")
7.1面向对象以及装饰器OoDecorators1. 面向对象编程Python支持面向对象编程类(class):现实世界中一些事物的封装 (如:学生)类:属性 (如:名字,成绩)类对象实例对象引用:通过引用对类的属性和方法进行操作实例化:创建一个类的具体实例对象 (如:学生张三)2. 装饰器(decorator)Code:#Python OO exampleclass Student:def __init__(self, name, grade):self.name = nameself.grade = gradedef introduce(self):print("hi! I'm " + self.name)print("my grade is: " + str(self.grade))def improve(self, amount):self.grade = self.grade + amountjim = Student("jim", 86)jim.introduce()jim.improve(10)jim.introduce()# def add_candles(cake_func):# def insert_candles():# return cake_func() + " candles"# return insert_candles## def make_cake():# return "cake"## gift_func = add_candles(make_cake)## print(make_cake())# print(gift_func())# def add_candles(cake_func):# def insert_candles():# return cake_func() + " candles"# return insert_candles## def make_cake():# return "cake"## make_cake = add_candles(make_cake)## print(make_cake())# # print(gift_func)# def add_candles(cake_func):# def insert_candles():# return cake_func() + " and candles"# return insert_candles## @add_candles# def make_cake():# return "cake"## # make_cake = add_candles(make_cake)## print(make_cake())# # print(gift_func)8.1图形界面介绍GuiTkinter1. GUI: Graphical User Interface2. tkinter: GUI library for Python3. GUI ExampleCode:# -*- coding: utf-8 -*-from tkinter import * #从thinter这个库中导导入所有的模块(*代表是所有的模块)import tkinter.simpledialog as dl #导入模块simpledialog(简单的对话框) 把simpledialog起名为dl(简称),这样调用简单(也可以不写as dl)import tkinter.messagebox as mb#tkinter GUI Input Output Example#设置GUIroot = Tk()w = Label(root, text = "Label Title")w.pack()#欢迎消息mb.showinfo("Welcome", "Welcome Message")guess = dl.askinteger("Number", "Enter a number")output = 'This is output message'mb.showinfo("Output: ", output)
8.2猜数字游戏1. GUI from tkinter2. 逻辑层Code:# #设置GUI# root = Tk() #创建一个主函数的框# w = Label(root, text = "Guess Number Game") #Label(标签)是tkinter自带的一个类# w.pack()## #欢迎消息# mb.showinfo("Welcome", "Welcome to Guess Number Game")### #处理信息# number = 59## while True:# #让用户输入信息# guess = dl.askinteger("Number", "What's your guess?")## if guess == number:# # New block starts here# output = 'Bingo! you guessed it right, but you do not win any prizes!'# mb.showinfo("Hint: ", output)# break# # New block ends here# elif guess < number:# output = 'No, the number is a higer than that'# mb.showinfo("Hint: ", output)# else:# output = 'No, the number is a lower than that'# mb.showinfo("Hint: ", output)## print('Done')9创建网页
1. 下载并安装python 2.7 32 bit2. 下载并安装easy_install windows installer (python 2.7 32bit)3. 安装 lpthw.web
windows 命令行: C:\Python27\Scripts\easy_install lpthw.web5. 目录下创建 app.py:import weburls = ('/', 'index')app = web.application(urls, globals())class index:def GET(self):greeting = "Hello World"return greetingif __name__ == "__main__":app.run()6. Windows cmd 运行:C:\python27\python27 app.py7. 打开浏览器:localhost:8080
彭亮—Python学习的更多相关文章
- Python学习--04条件控制与循环结构
Python学习--04条件控制与循环结构 条件控制 在Python程序中,用if语句实现条件控制. 语法格式: if <条件判断1>: <执行1> elif <条件判断 ...
- Python学习--01入门
Python学习--01入门 Python是一种解释型.面向对象.动态数据类型的高级程序设计语言.和PHP一样,它是后端开发语言. 如果有C语言.PHP语言.JAVA语言等其中一种语言的基础,学习Py ...
- Python 学习小结
python 学习小结 python 简明教程 1.python 文件 #!/etc/bin/python #coding=utf-8 2.main()函数 if __name__ == '__mai ...
- Python学习路径及练手项目合集
Python学习路径及练手项目合集 https://zhuanlan.zhihu.com/p/23561159
- python学习笔记-python程序运行
小白初学python,写下自己的一些想法.大神请忽略. 安装python编辑器,并配置环境(见http://www.cnblogs.com/lynn-li/p/5885001.html中 python ...
- Python学习记录day6
title: Python学习记录day6 tags: python author: Chinge Yang date: 2016-12-03 --- Python学习记录day6 @(学习)[pyt ...
- Python学习记录day5
title: Python学习记录day5 tags: python author: Chinge Yang date: 2016-11-26 --- 1.多层装饰器 多层装饰器的原理是,装饰器装饰函 ...
- [Python] 学习资料汇总
Python是一种面向对象的解释性的计算机程序设计语言,也是一种功能强大且完善的通用型语言,已经有十多年的发展历史,成熟且稳定.Python 具有脚本语言中最丰富和强大的类库,足以支持绝大多数日常应用 ...
- Python学习之路【目录】
本系列博文包含 Python基础.前端开发.Web框架.缓存以及队列等,希望可以给正在学习编程的童鞋提供一点帮助!!! 目录: Python学习[第一篇]python简介 Python学习[第二篇]p ...
随机推荐
- mui 上拉加载 实现分页加载功能
mui 上拉加载 实现分页加载功能,效果图: 分页功能(上拉加载): 1.引入需要的css.js文件 <link href="static/css/mui.css" rel= ...
- <Python基础>集合的基本操作
#小知识点:返回对象的内存地址 i,j = 1,2 print(id(i),id(j)) #集合的基本操作, #相当于没有键值对的字典,里面的元素是无序且不重复的 #一般写法 s = set({1,2 ...
- LeetCode 237. 删除链表中的节点(Python3)
题目: 请编写一个函数,使其可以删除某个链表中给定的(非末尾)节点,你将只被给定要求被删除的节点. 现有一个链表 -- head = [4,5,1,9],它可以表示为: 示例 1: 输入: head ...
- Leetcode166. Fraction to Recurring Decimal分数到小数
给定两个整数,分别表示分数的分子 numerator 和分母 denominator,以字符串形式返回小数. 如果小数部分为循环小数,则将循环的部分括在括号内. 示例 1: 输入: numerator ...
- Python全栈开发:web框架之tornado
概述 Tornado 是 FriendFeed 使用的可扩展的非阻塞式 web 服务器及其相关工具的开源版本.这个 Web 框架看起来有些像web.py 或者 Google 的 webapp,不过为了 ...
- 【默默努力】fishingGame
这个捕鱼游戏挺有意思的,通过发射子弹,打鱼.打鱼的子弹会消耗金币,但是打鱼如果打到了鱼,就会奖励金币的数量. 我如果写这个的话,应该会画一个 背景海底,然后生成很多鱼的图片,还要有一个大炮,金币.大炮 ...
- CF875E Delivery Club
题意:两个邮递员,一个初始在s1,s2.需要依次给x1,x2,...,xn送快递.求所有时刻中两个邮递员的距离最大值的最小值.n<=100000,xi<=1e9. 标程: #include ...
- leetcode-80-删除排序数组中的重复项②
题目描述: 第一次提交: class Solution: def removeDuplicates(self, nums: List[int]) -> int: nums.reverse() f ...
- BCB怎么调用DLL中的函数
推荐你看<BCB编写DLL终极手册>这篇文章如下片段:二. 静态调用 DLL使用 $BCB path\Bin\implib.exe 生成 Lib 文件,加入到工程文件中将该文件拷贝到当前目 ...
- poj 3682 King Arthur's Birthday Celebration (期望dp)
传送门 解题思路 第一问比较简单,设$f[i]$表示扔了$i$次正面向上的硬币的期望,那么有转移方程 : $f[i]=f[i]*(1-p)+f[i-1]*p+1$,意思就是$i$次正面向上可以 ...