输入

input():接收命令行下输入

1)在py2下:如果你输的是一串文字,要用引号''或者""引起来,如果是数字则不用。

2)在py3下:相当于py2的raw_input(),得到的都是字符串,而非数值


if语法

if 条件:

选择执行的语句

elif 条件:

选择执行的语句

else:

选择执行的语句

特别说明:条件后面的冒号不能少,同样必须是英文字符。

特别特别说明:if内部的语句需要有一个统一的缩进,一般用4个空格。python用这种方法替代了其他很多编程语言中的{}。你也可以选择1/2/3...个空格或者按一下tab键,但必须整个文件中都统一起来。千万不可以tab和空格混用,不然就会出现各种莫名其妙的错误。所以建议都直接用4个空格。

以缩进代替{},第一个缩进 为{,第一个不缩进为}

例:

thisIsLove = input()
   if thisIsLove:
       print "再转身就该勇敢留下来"

break:跳出循环

continue:进入下次循环


while语法

while 条件:

  选择执行的语句

注意:循环体内的语句,缩进相同。if也是如此。

break:跳出循环

continue:进入下次循环


for循环语法

  for  变量   in  序列  :

    循环执行体

  for i in range(1, 101):

    print i

  for ... in ...   #for循环的本质是对一个序列中的元素进行递归

  for i in range(a, b)  #从a循环至b-1

  for count in range(0,n)  #循环n次

  range(1, 101)表示从1开始,到101为止(不包括101),取其中所有的整数

示例 :

如果想让这5个*在同一行,python2的话就在print语句后面加上逗号

for i in range(0, 5):

   print '*',

python3需要加上end参数:

for i in range(0, 5):

   print('*', end=' ')

示例:

第二个print的缩进和内层的for是一样的,这表明它是外层for循环中的语句,每次i的循环中,它会执行一次。

print()没有写任何参数,是起到换行的作用


 模块

通过函数,可以在程序里重用代码;通过模块,则可以重用别的程序中的代码。

模块可以理解为是一个包含了函数和变量的py文件。在你的程序中引入了某个模块,就可以使用其中的函数和变量。

1、import  模块名       

import random:import语句告诉python,我们要用random模块中的内容。然后便可以使用random中的方法(调用方式“模块名.方法名”),比如:

random.randint(1, 10)

random.choice([1, 3, 5])

想知道random有哪些函数和变量,可以用dir()方法:dir(random)

2、 from 模块名 import 方法或变量名

from 模块名 import 方法或变量名  as 方法或变量别名

场景:如果只是用到模块中的一个函数或变量时

调用方式:方法名(或变量名),不需要加模块名。

例:

1)from math import pi

   print(pi)

2)from math import pi as math_pi

print(math_pi)

random

from 模块名 import 方法名

  from random import randint

  randint产生随机数:

    randint(5, 10)将会产生一个5到10之间(包括5和10)的随机整数


变量

  变量命名规则:

    1、必须以字母下划线(_)开头其余部分可以是字母、下划线(_)或数字(0-9)

    2、大小写敏感

判断变量的数据类型的两种方法

一、Python中的数据类型有数字、字符串,列表、元组、字典、集合等。有两种方法判断一个变量的数据类型

1、isinstance(变量名,类型)

2、通过与其他已知类型的常量进行对比:type()


转义符\,三个引号(''')

\的用途:1)转义,2)在源码换行(在代码中换行,而不影响输出的结果)

在源码中换行,比如:

"this is the\

same line"

这个字符串仍然只有一行,和"this is thesame line"是一样的,只是在代码中换了行。当你要写一行很长的代码时,这个会派上用场(只是在源码中换行,实际数据不换行)。

三个引号(''')或者("""):在三个引号中,可以方便地使用单引号和双引号(不需要转义符\),并且可以直接换行(实际数据中换行)

'''

"What's your name?" I asked.

"I'm Han Meimei."

'''


字符串格式化

1、str():将数字转化为字符串

num = 18

print ('My age is' + num)

2、%:对字符串进行格式化

1)%d:替换整数,%dw会被%后面的整数替换

num=19

2)%f:替换小数,%.2f会保留2位小数

3)%s:替换字符串

4)使用tuple元组替换多个。


类型转换

int(x) #把x转换成整数

float(x) #把x转换成浮点数

str(x) #把x转换成字符串

bool(x) #把x转换成bool值

在python中,其他类型转成 bool 类型时,以下值会被认为是False:

   为0的数字,包括0,0.0

   空字符串,包括'',""

   表示空值的None

   空集合,包括(),[],{}

其他的值都认为是True

None是python中的一个特殊值,表示什么都没有,它和0、空字符、False、空集合都不一样。

在if、while等条件判断语句里,判断条件会自动进行一次bool的转换。比如

a = '123'

if a:

print 'this is not a blank string'

这在编程中是很常见的一种写法。效果等同于

if bool(a)      或者     if a != ''


函数

关键字def,格式如下:

def sayHello():

print 'hello world!'

return是函数的结束语句,return后面的值被作为这个函数的返回值。函数中任何地方的return被执行到的时候,这个函数就会结束。

函数参数默认值

def hello(name = 'world'):

print 'hello ' + name

以上函数,name 参数可忽略

函数的参数传递

def func(arg1, arg2):

  print arg1, arg2

1、按参数位置匹配。如:func(3, 7)

2、指定形参的名称。如:func(arg2=3, arg1=7)

3、如果参数有默认值,则可只传部分参数,按位置匹配(在前)和按参数名匹配可以结合使用。如:

def func(arg1=1, arg2=2, arg3=3):

  print arg1, arg2, arg3

调用:

func(2, 3, 4)

func(5, 6)

func(arg2=8)

func(arg3=9, arg1=10)

func(11, arg3=12)

4、任意数量的参数 def func(*args),把参数作为 tuple 传入函数内部。如:

def calcSum(*args):

  sum = 0

  for i in args:

    sum += i

  print sum

调用:

calcSum(1,2,3)

calcSum(123,456)

calcSum()

输出:

6

579

0

  在变量前加上星号前缀(*),调用时的参数会存储在一个 tuple(元组)对象中,赋值给形参。在函数内部,需要对参数进行处理时,只要对这个 tuple 类型的形参(这里是 args)进行操作就可以了。因此,函数在定义时并不需要指明参数个数,就可以处理任意参数个数的情况。需要注意,tuple 是有序的,所以 args 中元素的顺序受到赋值时的影响。

5、func(**kargs) 把参数以键值对字典的形式传入。如:

def printAll(**kargs):

  for k in kargs:

    print k, ':', kargs[k]

调用:

printAll(a=1, b=2, c=3)

printAll(x=4, y=5)

输出:

a : 1

c : 3

b : 2

y : 5

x : 4

  字典是无序的,所以在输出的时候,并不一定按照提供参数的顺序。同样在调用时,参数的顺序无所谓,只要对应合适的形参名就可以了。于是,采用这种参数传递的方法,可以不受参数数量、位置的限制。

6、参数调用方式混合使用。例:

def func(x, y=5, *a, **b):

  print x, y, a, b

在混合使用时,首先要注意函数的写法,必须遵守先后顺序:无默认值形参,默认值形参,元组形参,字典形参。

带有默认值的形参(arg=)须在无默认值的形参(arg)之后;元组参数(*args)须在带有默认值的形参(arg=)之后;字典参数(**kargs)须在元组参数(*args)之后。可以省略某种类型的参数,但仍需保证此顺序规则。

调用时也需要遵守先后顺序 :不指定参数名,指定参数名。

指定参数名称的参数要在无指定参数名称的参数之后;不可以重复传递,即按顺序提供某参数之后,又指定名称传递。

在函数被调用时,参数的传递过程为:不指定参数名匹配,指定参数名匹配,多余的不指定参数名为元组参数,多余的指定参数名为字典参数。

1.按顺序把无指定参数的实参赋值给形参;

2.把指定参数名称(arg=v)的实参赋值给对应的形参(非元组、非字典);

3.将多余的无指定参数的实参打包成一个 tuple 传递给元组参数(*args);

4.将多余的指定参数名的实参打包成一个 dict 传递给字典参数(**kargs)。

示例:

def func(x, y=5, *a, **b):

print x, y, a, b

调用:

func(1)

func(1,2)

func(1,2,3)

func(1,2,3,4)

func(x=1)

func(x=1,y=1)

func(x=1,y=1,a=1)

func(x=1,y=1,a=1,b=1) --a=1是字典参数

func(1,y=1)

func(1,2,3,4,a=1)

func(1,2,3,4,k=1,t=2,o=3)

输出:

1 5 () {}

1 2 () {}

1 2 (3,) {}

1 2 (3, 4) {}

1 5 () {}

1 1 () {}

1 1 () {'a': 1}

1 1 () {'a': 1, 'b': 1}

1 1 () {}

1 2 (3, 4) {'a': 1}

1 2 (3, 4) {'k': 1, 't': 2, 'o': 3}


列表list

list是以[]包围、逗号分隔的一组数据,数据之间的类型可以不同。

l = [1, 1, 2, 3, 5, 8, 13]

l = [365, 'everyday', 0.618, True]

列表以for遍历 for i in l:

range(1,10)在py2中产生一个list;在py3中返回一个可以循环遍历的range对象,可以通过list()函数转换成列表。

1、以索引访问,从0开始

print(I[0])

I[0]='a'

1)如果索引为负数,则表示从后往前倒数:

l[-1]表示l中的最后一个元素。

l[-3]表示倒数第3个元素。

2)切片操作符,以:分隔的一对数字

冒号前的数字表示开始位置(从0开始),冒号后的数字表示 结束位置。[起始位置:结束位置),即包含起始位置,不包含结束位置

l = [365, 'everyday', 0.618, True]

l[1:3]得到的结果是['everyday', 0.618]

如果不指定第一个数,切片就从列表第一个元素开始。

如果不指定第二个数,就一直到最后一个元素结束。

都不指定,则返回整个列表的一个拷贝。

l[:3]

l[1:]

l[:]

切片中的数字可以为负数。

l[1:-1]  得到['everyday', 0.618]

2、向list添加元素:append()方法

I.append('xx')

3、删除list中的元素:del命令

del I[2]


list与字符串

字符串分隔成list: split()

split默认是按照空白字符(包括空格、换行符\n、制表符\t)进行分割,得到一个list。另外可以揎分割符。

list连接成字符串:join()

join()是连接符的方法,参数是list

s = ';'

li = ['apple', 'pear', 'orange']

fruit = s.join(li)

print(fruit)

得到结果'apple;pear;orange'。

';'.join(['apple', 'pear', 'orange'])


 字符串的遍历与访问,与list类似

 遍历

通过for...in可以遍历字符串中的每一个字符。

word = 'helloworld'

for c in word:

print c

 索引访问

通过[]加索引的方式,访问字符串中的某个字符。

print word[0]

print word[-2]

 切片

通过两个参数,截取一段子串,具体规则和list相同。

print word[5:7]

print word[:-5]

print word[:]

连接字符

join方法也可以对字符串使用,作用就是用连接符把字符串中的每个字符重新连接成一个新字符串。

newword = ','.join(word)


字典

基本格式是(key是键,value是值):

d = {key1 : value1, key2 : value2 }

键要注意的是:

1.键必须是唯一的;

2.键只能是简单对象,比如字符串、整数、浮点数、bool值。lis就不能作为键,但是可以作为值。

访问规则:

1、python字典中的键/值对没有顺序,无法用索引访问字典中的某一项,而是要用键来访问。

  d[key]

  d.get(key)

字典类的get方法是按照给定key寻找对应项,如果不存在这样的key,就返回空值None。

2、通过for...in遍历(遍历的变量中存储的是字典的键):

for name in score:

print score[name]

例:

score = {

'萧峰': 95,

'段誉': 97,

'虚竹': 89

}

改变某一项的值:score['虚竹'] = 91

增加一项(给一个新键赋值):score['慕容复'] = 88

删除一项:del score['萧峰']

新建一个空的字典:d = {}


 元组

元组(tuple)也是一种序列,和list类似,只是元组中的元素在创建之后就不能被修改。

如:

postion = (1, 2)

geeks = ('Sheldon', 'Leonard', 'Rajesh', 'Howard')

都是元组的实例。它有和list同样的索引、切片、遍历等操作

例:

def get_pos(n):

    return (n/2, n*2)

得到这个函数的返回值有两种形式,一种是根据返回值元组中元素的个数提供变量:

x, y = get_pos(50)

print x

print y

还有一种方法是用一个变量记录返回的元组:

pos = get_pos(50)

print pos[0]

print pos[1]


异常处理 try ... except ...

try:

f = file('non-exist.txt')

print 'File opened!'

f.close()

except:

print 'File not exists.'


文件操作

打开文件:f = open('data.txt')

open('文件名')

文件名可以用文件的完整路径,也可以是相对(代码的)路径。

python默认是以只读模式打开文件。如果想要写入内容,在打开文件的时候需要指定打开模式为写入f = open('output.txt', 'w')

  • 'w'就是writing,以这种模式打开文件,原来文件中的内容会被你新写入的内容覆盖掉,如果文件不存在,会自动创建文件。
  • 不加参数时,open为你默认为'r',reading,只读模式,文件必须存在,否则引发异常。
  • 还有一种模式是'a',appending。它也是一种写入模式,但你写入的内容不会覆盖之前的内容,而是添加到文件中。

注:py2里可以使用 open 或 file 方法打开文件,py3 只能使用 open

读取文件:data = f.read()

read() #把文件内所有内容读进一个字符串中

readline() #读取一行内容

readlines() #把内容按行读取至一个list中

写入文件:f.write('a string you want to write')

  必须以w或a模式打开文件,才能写入

关闭文件:f.close()


pass语句

pass是空语句,是为了保持程序结构的完整性。

pass 不做任何事情,一般用做占位语句。

实例:

#!/usr/bin/python
# -*- coding: UTF-8 -*- # 输出 Python 的每个字母
for letter in 'Python':
if letter == 'h':
pass
print '这是 pass 块'
print '当前字母 :', letter print "Good bye!"

以上实例执行结果:

当前字母 : P
当前字母 : y
当前字母 : t
这是 pass 块
当前字母 : h
当前字母 : o
当前字母 : n
Good bye!

Python:基础知识(一)的更多相关文章

  1. Python开发【第二篇】:Python基础知识

    Python基础知识 一.初识基本数据类型 类型: int(整型) 在32位机器上,整数的位数为32位,取值范围为-2**31-2**31-1,即-2147483648-2147483647 在64位 ...

  2. python基础知识(二)

    以下内容,作为python基础知识的补充,主要涉及基础数据类型的创建及特性,以及新数据类型Bytes类型的引入介绍

  3. python 基础知识(一)

    python 基础知识(一) 一.python发展介绍 Python的创始人为Guido van Rossum.1989年圣诞节期间,在阿姆斯特丹,Guido为了打发圣诞节的无趣,决心开发一个新的脚本 ...

  4. python基础知识讲解——@classmethod和@staticmethod的作用

    python基础知识讲解——@classmethod和@staticmethod的作用 在类的成员函数中,可以添加@classmethod和@staticmethod修饰符,这两者有一定的差异,简单来 ...

  5. python爬虫主要就是五个模块:爬虫启动入口模块,URL管理器存放已经爬虫的URL和待爬虫URL列表,html下载器,html解析器,html输出器 同时可以掌握到urllib2的使用、bs4(BeautifulSoup)页面解析器、re正则表达式、urlparse、python基础知识回顾(set集合操作)等相关内容。

    本次python爬虫百步百科,里面详细分析了爬虫的步骤,对每一步代码都有详细的注释说明,可通过本案例掌握python爬虫的特点: 1.爬虫调度入口(crawler_main.py) # coding: ...

  6. python 爬虫与数据可视化--python基础知识

    摘要:偶然机会接触到python语音,感觉语法简单.功能强大,刚好朋友分享了一个网课<python 爬虫与数据可视化>,于是在工作与闲暇时间学习起来,并做如下课程笔记整理,整体大概分为4个 ...

  7. python基础知识小结-运维笔记

    接触python已有一段时间了,下面针对python基础知识的使用做一完整梳理:1)避免‘\n’等特殊字符的两种方式: a)利用转义字符‘\’ b)利用原始字符‘r’ print r'c:\now' ...

  8. Python基础知识(五)

    # -*- coding: utf-8 -*-# @Time : 2018-12-25 19:31# @Author : 三斤春药# @Email : zhou_wanchun@qq.com# @Fi ...

  9. Python基础知识(Basic knowledge)

    Python基础知识(Basic knowledge) 1.认识Python&基础环境搭建 2.Python基础(上) 3.Python基础(中) 4.Python基础(下) 5.Python ...

  10. Python 基础知识(一)

    1.Python简介 1.1.Python介绍 python的创始人为吉多·范罗苏姆(Guido van Rossum).1989年的圣诞节期间,吉多·范罗苏姆(中文名字:龟叔)为了在阿姆斯特丹打发时 ...

随机推荐

  1. java 正则表达式(内附例子)

    前言:最近工作中遇到了大量用正则表达式的情况,需要用一定的规则匹配字符串,然后提取里面的数据,格式化后转成自己想要的格式.所以作为一个菜鸟是时候再来巩固一下正则表达式了.转载请注明出处:https:/ ...

  2. python数据类型之简单数据类型

    变量使用注意事项 慎用小写字母l和大写字母O,因为它们可能被人看成数值1和0. 应使用小写的python变量名. 字符串 在python中,用引号括起来的都是字符串,其中的引号可以是单引号和双引号. ...

  3. 升级cocoapods1.1.0版本遇到的坑

    先容我吐槽两句, 最近写Swfit3.0, 要用到一些框架, 然后就用cocoapods嘛, 结果说要cocoapods1.1.0版本才行, 而自己的是cocoapods1.0.1版本的, 所以就想着 ...

  4. ubuntu将python3设为默认后再安装支持python3.x的包

    简介: ubuntu默认python2.7版本,如果想要装python3.x版本,请记住python2.7版本一定不能卸载!!!但是即使我 python3.x版本安装成功,当运行python脚本时,系 ...

  5. <Android 基础(二十九)> Fragment (2) ~ DialogFragment

    简介 上一篇简单的介绍了下Fragment的使用方法,这一篇主要看下DialogFragment. 在android 3.0时被引入.是一种特殊的Fragment,用于在Activity的内容之上展示 ...

  6. IDEA操作maven时控制台中文乱码

    windows环境下,Intellij idea12中maven操作时,控制台中文乱码问题(编译报错或者clean install时出现的其他错误描述乱码) 在cmd中mvn中文正常显示,log4j打 ...

  7. Flutter:Slivers大家族,让滑动视图的组合变得很简单!

     今天呢,我小拉面主要想给大家讲一讲Flutter中的Slivers大家族的使用场景和方法.开发过列表布局的同学们应该对Slivers系列的控件不陌生,或多或少都用过这个库中的控件,来解决复杂的滑动嵌 ...

  8. java基础(四) java运算顺序的深入解析

    1. 从左往右的计算顺序   与C/C++不同的是,在Java中,表达式的计算与结果是确定的,不受硬件与环境的影响.如: int i = 5; int j = (i++) + (i++) +(i++) ...

  9. LeetCode题解之Add Strings

    1.题目描述 2.问题分析 直接按照加法运算规则运算即可,注意进位问题. 3.代码 string addStrings(string num1, string num2) { if( num1.emp ...

  10. leetCode题解之求二叉树每层的平均值

    1.题目描述 Given a non-empty binary tree, return the average value of the nodes on each level in the for ...