搜索

Python基础

Feb 16, 2017 am 11:22 AM
python

前言

Python,是龟叔在1989年为了打发无聊的圣诞节而编写的一门编程语言,特点是优雅、明确、简单,现今拥有丰富的标准库和第三方库。
Python适合开发Web网站和各种网络服务,系统工具和脚本,作为“胶水”语言把其他语言开发的模块包装起来使用,科学计算等等。

小编学习Python的理由有三个:
为了爬取需要的各种数据,不妨学习一下Python。
为了分析数据和挖掘数据,不妨学习一下Python。
为了做一些好玩有趣的事,不妨学习一下Python。

准备工作

1、在Python官网下载安装喜欢的版本,小编使用的,是当前最新版本3.6.0。

2、打开IDLE,这是Python的集成开发环境,尽管简单,但极其有用。IDLE包括一个能够利用颜色突出显示语法的编辑器、一个调试工具、Python Shell,以及一个完整的Python3在线文档集。

hello world

1、在IDLE中,输入print('hello world'),回车,则打印出hello world。
PS:语句末尾加不加分号;都可以,小编决定不加分号,更简单。

2、使用sublime新建文件hello.py,内容如下:

print('hello world')

在Windows下,shift+右键,在此处打开命令窗口,执行python hello.py,回车,则打印出hello world。

3、使用sublime新建文件hello.py,内容如下:

#!/usr/bin/env python
print('hello world')

在Linux或Mac环境下,可以直接运行脚本。首先添加执行权限chmod a+x hello.py,然后执行./hello.py。当然,也可以和Windows一样,使用python hello.py来执行脚本。

引入模块

1、新建name.py,内容如下:

name='voidking'

2、执行python name.py
3、进入python shell模式,执行import nameprint(name.name),则打印出voidking。

基础语法

常用函数(print)、数据类型、表达式、变量、条件和循环、函数。和其他语言类似,下面选择一部分展开。

list链表数组

1、定义数组
myList = ['Hello', 100, True]
2、输出数组
print(myList)
3、输出数组元素
print(myList[0])print(myList[-1])
4、追加元素到末尾
myList.append('voidking')
5、追加元素到头部
myList.insert(0,'voidking')
6、删除元素
myList.pop()myList.pop(0)
7、元素赋值
myList[0]='hello666'

tuple固定数组

1、定义数组
myTuple = ('Hello', 100, True)
错误定义:myTuple1=(1),正确定义:myTuple=(1,)
2、输出数组
print(myTuple)
3、输出数组元素
print(myTuple[0])
4、tuple和list结合
t = ('a', 'b', ['A', 'B'])t[2][0]='X'

if语句

if

score = 75
if score>=60:
    print 'passed'

两次回车,即可执行代码。

if-else

if score>=60:
    print('passed')
else:
    print('failed')

if-elif-else

if score>=90:
    print('excellent')
elif score>=80:
    print('good')
elif score>=60:
    print('passed')
else:
    print('failed')

循环

for循环

L = [75, 92, 59, 68]
sum = 0.0
for score in L:
       sum += score
print(sum / 4)

while循环

sum = 0
x = 1
while x<100:
    sum += x
    x = x + 1
print(sum)

break

sum = 0
x = 1
while True:
    sum = sum + x
    x = x + 1
    if x > 100:
        break
print(sum)

continue

L = [75, 98, 59, 81, 66, 43, 69, 85]
sum = 0.0
n = 0
for x in L:
    if x < 60:
        continue
    sum = sum + x
    n = n + 1
print(sum/n)

多重循环

for x in [&#39;A&#39;, &#39;B&#39;, &#39;C&#39;]:
    for y in [&#39;1&#39;, &#39;2&#39;, &#39;3&#39;]:
        print(x + y)

dict

dict的作用是建立一组 key和一组value的映射关系。

d = {
    &#39;Adam&#39;: 95,
    &#39;Lisa&#39;: 85,
    &#39;Bart&#39;: 59,
    &#39;Paul&#39;: 75
}
print(d)
print(d[&#39;Adam&#39;])
print(d.get(&#39;Lisa&#39;))
d[&#39;voidking&#39;]=100
print(d)
for key in d:
    print(key+&#39;:&#39;,d.get(key))

set

set持有一系列元素,这一点和list很像,但是set的元素没有重复,而且是无序的,这点和dict的key很像。

s = set([&#39;Adam&#39;, &#39;Lisa&#39;, &#39;Bart&#39;, &#39;Paul&#39;])
print(s)
s = set([&#39;Adam&#39;, &#39;Lisa&#39;, &#39;Bart&#39;, &#39;Paul&#39;, &#39;Paul&#39;])
print(s)
len(s)
print(&#39;Adam&#39; in s)
print(&#39;adam&#39; in s)
for name in s:
    print(name)
s = set([(&#39;Adam&#39;, 95), (&#39;Lisa&#39;, 85), (&#39;Bart&#39;, 59)])
for x in s:
    print(x[0]+&#39;:&#39;,x[1])
s.add(100)
print(s)
s.remove((&#39;Adam&#39;,95))
print(s)

函数

自带函数

del sum
L = [x*x for x in range(1,101)]
print sum(L)

自定义函数

def my_abs(x):
    if x >= 0:
        return x
    else:
        return -x
my_abs(-100)

引入函数库

import math

def quadratic_equation(a, b, c):
    x = b * b - 4 * a * c
    if x < 0:
        return none
    elif x == 0:
        return -b / (2 *a)
    else:
        return ((math.sqrt(x) - b ) / (2 * a)) , ((-math.sqrt(x) - b ) / (2 * a))
print(quadratic_equation(2, 3, 0))
print(quadratic_equation(1, -6, 5))

可变参数

def average(*args):
    if args:
        return sum(args)*1.0/len(args)
    else:
        return 0.0

print(average())
print(average(1, 2))
print(average(1, 2, 2, 3, 4))

切片

list切片

L = [&#39;Adam&#39;, &#39;Lisa&#39;, &#39;Bart&#39;, &#39;Paul&#39;]
L[0:3]
L[:3]
L[1:3]
L[:]
L[::2]

倒序切片

L[-2:]
L[-3:-1]
L[-4:-1:2]
L = range(1, 101)
L[-10:]
L[4::5][-10:]

PS:range是有序的list,默认以函数形式表示,执行range函数,即可以list形式表示。

字符串切片

def firstCharUpper(s):
    return s[0:1].upper() + s[1:]

print(firstCharUpper(&#39;hello&#39;))

迭代

Python的for循环不仅可以用在list或tuple上,还可以作用在其他任何可迭代对象上。
迭代操作就是对于一个集合,无论该集合是有序还是无序,我们用for循环总是可以依次取出集合的每一个元素。
集合是指包含一组元素的数据结构,包括:

  • 有序集合:list,tuple,str和unicode;

  • 无序集合:set

  • 无序集合并且具有key-value对:dict

for i in range(1,101):
    if i%7 == 0:
        print(i)

索引迭代

对于有序集合,元素是有索引的,如果我们想在for循环中拿到索引,怎么办?方法是使用enumerate()函数。

L = [&#39;Adam&#39;, &#39;Lisa&#39;, &#39;Bart&#39;, &#39;Paul&#39;]
for index, name in enumerate(L):
    print(index+1, &#39;-&#39;, name)

myList = zip([100,20,30,40],L);
for index, name in myList:
    print(index, &#39;-&#39;, name)

迭代dict的value

d = { &#39;Adam&#39;: 95, &#39;Lisa&#39;: 85, &#39;Bart&#39;: 59 }
print(d.values())
for v in d.values():
    print(v)

PS:Python3.x中,dict的方法dict.keys(),dict.items(),dict.values()不会再返回列表,而是返回一个易读的“views”。这样一来,k = d.keys();k.sort()不再有用,可以使用k = sorted(d)来代替。
同时,dict.iterkeys(),dict.iteritems(),dict.itervalues()方法不再支持。

迭代dict的key和value

d = { &#39;Adam&#39;: 95, &#39;Lisa&#39;: 85, &#39;Bart&#39;: 59 }
for key, value in d.items():
    print(key, &#39;:&#39;, value)

列表生成

一般表达式

L = [x*(x+1) for x in range(1,100)]
print(L)

复杂表达式

d = { &#39;Adam&#39;: 95, &#39;Lisa&#39;: 85, &#39;Bart&#39;: 59 }
def generate_tr(name, score):
    if score >=60:
        return '<tr><td>%s</td><td>%s</td></tr>' % (name, score)
    else:
        return '<tr><td>%s</td><td style="color:red">%s</td></tr>' % (name, score)

tds = [generate_tr(name,score) for name, score in d.items()]
print('<table border="1">')
print('<tr><th>Name</th><th>Score</th><tr>')
print('\n'.join(tds))
print('</table>')

条件表达式

L = [x * x for x in range(1, 11) if x % 2 == 0]
print(L)
def toUppers(L):
    return [x.upper() for x in L if isinstance(x,str)]

print(toUppers(['Hello', 'world', 101]))

多层表达式

L = [m + n for m in 'ABC' for n in '123']
print(L)
L = [a*100+b*10+c for a in range(1,10) for b in range(0,10) for c in range(1,10) if a==c]
print(L)

后记

至此,Python基础结束。接下来,爬虫飞起!

更多Python,基础相关文章请关注PHP中文网!

声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
Python vs. C:了解关键差异Python vs. C:了解关键差异Apr 21, 2025 am 12:18 AM

Python和C 各有优势,选择应基于项目需求。1)Python适合快速开发和数据处理,因其简洁语法和动态类型。2)C 适用于高性能和系统编程,因其静态类型和手动内存管理。

Python vs.C:您的项目选择哪种语言?Python vs.C:您的项目选择哪种语言?Apr 21, 2025 am 12:17 AM

选择Python还是C 取决于项目需求:1)如果需要快速开发、数据处理和原型设计,选择Python;2)如果需要高性能、低延迟和接近硬件的控制,选择C 。

达到python目标:每天2小时的力量达到python目标:每天2小时的力量Apr 20, 2025 am 12:21 AM

通过每天投入2小时的Python学习,可以有效提升编程技能。1.学习新知识:阅读文档或观看教程。2.实践:编写代码和完成练习。3.复习:巩固所学内容。4.项目实践:应用所学于实际项目中。这样的结构化学习计划能帮助你系统掌握Python并实现职业目标。

最大化2小时:有效的Python学习策略最大化2小时:有效的Python学习策略Apr 20, 2025 am 12:20 AM

在两小时内高效学习Python的方法包括:1.回顾基础知识,确保熟悉Python的安装和基本语法;2.理解Python的核心概念,如变量、列表、函数等;3.通过使用示例掌握基本和高级用法;4.学习常见错误与调试技巧;5.应用性能优化与最佳实践,如使用列表推导式和遵循PEP8风格指南。

在Python和C之间进行选择:适合您的语言在Python和C之间进行选择:适合您的语言Apr 20, 2025 am 12:20 AM

Python适合初学者和数据科学,C 适用于系统编程和游戏开发。1.Python简洁易用,适用于数据科学和Web开发。2.C 提供高性能和控制力,适用于游戏开发和系统编程。选择应基于项目需求和个人兴趣。

Python与C:编程语言的比较分析Python与C:编程语言的比较分析Apr 20, 2025 am 12:14 AM

Python更适合数据科学和快速开发,C 更适合高性能和系统编程。1.Python语法简洁,易于学习,适用于数据处理和科学计算。2.C 语法复杂,但性能优越,常用于游戏开发和系统编程。

每天2小时:Python学习的潜力每天2小时:Python学习的潜力Apr 20, 2025 am 12:14 AM

每天投入两小时学习Python是可行的。1.学习新知识:用一小时学习新概念,如列表和字典。2.实践和练习:用一小时进行编程练习,如编写小程序。通过合理规划和坚持不懈,你可以在短时间内掌握Python的核心概念。

Python与C:学习曲线和易用性Python与C:学习曲线和易用性Apr 19, 2025 am 12:20 AM

Python更易学且易用,C 则更强大但复杂。1.Python语法简洁,适合初学者,动态类型和自动内存管理使其易用,但可能导致运行时错误。2.C 提供低级控制和高级特性,适合高性能应用,但学习门槛高,需手动管理内存和类型安全。

See all articles

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

Video Face Swap

Video Face Swap

使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热工具

SublimeText3 Linux新版

SublimeText3 Linux新版

SublimeText3 Linux最新版

VSCode Windows 64位 下载

VSCode Windows 64位 下载

微软推出的免费、功能强大的一款IDE编辑器

MinGW - 适用于 Windows 的极简 GNU

MinGW - 适用于 Windows 的极简 GNU

这个项目正在迁移到osdn.net/projects/mingw的过程中,你可以继续在那里关注我们。MinGW:GNU编译器集合(GCC)的本地Windows移植版本,可自由分发的导入库和用于构建本地Windows应用程序的头文件;包括对MSVC运行时的扩展,以支持C99功能。MinGW的所有软件都可以在64位Windows平台上运行。

Dreamweaver Mac版

Dreamweaver Mac版

视觉化网页开发工具

DVWA

DVWA

Damn Vulnerable Web App (DVWA) 是一个PHP/MySQL的Web应用程序,非常容易受到攻击。它的主要目标是成为安全专业人员在合法环境中测试自己的技能和工具的辅助工具,帮助Web开发人员更好地理解保护Web应用程序的过程,并帮助教师/学生在课堂环境中教授/学习Web应用程序安全。DVWA的目标是通过简单直接的界面练习一些最常见的Web漏洞,难度各不相同。请注意,该软件中