做为本身正式接触并应用的第一门编程语言,在Alex和武sir两位大王的要求下,开始了写博客总结的日子。学习编程语言是颇有趣的一件事情,但有2点请必定要谨记:1.作人靠本身,码代码也必须靠本身。能不能成为python大牛,靠的是平时逻辑的训练和日复一日的码代码练出来的;2.多总结、多思考、多查阅。实现需求的方式有多种,但总会有另外一个办法是更加高效的!java
博文内容属于基础篇,实时更新,若有地方写的很差,还请你们批评指正!python
大人不华,君子务实!编程
''' 1.python的换行缩进和注释 2.python的输入和输出 3.python变量 4.python的字符编码 5.python格式化 6.python基本数据类型 '''
任何一种编程语言都有本身的一套语法,python也不例外。值得提一句的是,python对字母大小写是敏感的。app
python代码的组织不像java、C同样用“{}”来控制模块,而是用“换行和缩进”来组织模块,通常状况建议4个空格的缩进。编程语言
#who big who print a = 3 b = 4 if a > b: print(a) else: print(b)
上述代码中的(#)是python的单行注释符,若是实现多行注释,能够用三个(‘)或(“)来实现。特别须要注意的是,python的(’)和(”)使用方法是相同的。ide
print("#这是单行注释”) print(“ ''' 这 是 多 行 注 释 '''")
python的输入和输出在2.X和3.X这两个版本里用法略有不一样。函数
#在3.X版本的python里,输入和输出 name = input("what is your name: ") print(name) #在2.X版本的python里,输入和输出 name = raw_input("what is your name: ") print name
在3.X版本的python中,简化了输入的语法,输出的(print)被内置成了函数,因此函数后边要有参数传进来>> print(name),我的以为这两个版本的差异只有个别地方的不一样,用到时稍微注意下就能够了(习惯问题就只能酸爽的呵呵了)。学习
咱们回想一下初中时候的代数基础知识:有个边长为a的正方形,那么正方形的面积就是:a*a。这个时候,a就看作是变量,咱们给a任意赋一个值,就能够计算出正方形的面积了.ui
#求边长为a的正方形面积 a = 3 #把3赋值给边长a s = a*a #把计算结果赋值给s print(s) #输出正方形面积s
除此以外,变量能够是其它的任意数据类型,如字符串、布尔、浮点数,甚至是函数。也能够实现变量之间的赋值。编码
a = 3 b = True c = b b = a print(a,b,c)
3 3 True
字符串也是一种数据类型,可是,字符串比较特殊的是还有一个编码问题。因为计算机是美国人发明的,所以,最先只有127个字母被编码到计算机里,也就是大小写英文字母、数字和一些符号,这个编码表被称为"ASCII"
编码,好比大写字母A
的编码是65
,小写字母z
的编码是122
。
可是要处理中文显然一个字节是不够的,至少须要两个字节,并且还不能和ASCII编码冲突,因此,中国制定了GB2312
编码,用来把中文编进去。但是世界除了英语和中文以外,还有不少语言。所以,Unicode应运而生。Unicode把全部语言都统一到一套编码里,这样就不会再有乱码问题了。
在计算机内存中,统一使用Unicode编码,当须要保存到硬盘或者须要传输的时候,就转换为UTF-8编码。用记事本编辑的时候,从文件读取的UTF-8字符被转换为Unicode字符到内存里,编辑完成后,保存的时候再把Unicode转换为UTF-8保存到文件:
在最新的Python 3.X版本中,字符串是以Unicode编码的,也就是说,Python的字符串支持多语言;须要注意的是,在2.X版本里,须要加一行注释,不然python2会默认使用ASCII编码。
# -*- coding:utf-8 -*-
最后一个常见的问题是如何输出格式化的字符串。咱们常常会输出相似"欢迎XXX!您的帐户余额为:XXX"
之类的字符串,而XXX的内容都是根据变量变化的,因此,须要一种简便的格式化字符串的方式。python的字符串格式化用(%)来实现!
'Hi, %s, you have $%d.' % ('Michael', 1000000) 'Hi, Michael, you have $1000000.
在字符串内部,%s
表示用字符串替换,%d
表示用整数替换,有几个%?
占位符,后面就跟几个变量或者值,顺序要对应好。若是只有一个%?
,括号能够省略。
定义字符串
python字符串的定义是用(”)或(‘)引发来,三个引号也能够定义一个字符串,不一样的是后者支持多行编码。
s0 = "hello" s1 = ' world' s3 = ''' hello python''' s4 = """ python is good """
经常使用的字符串计算
1.字符串的加法运算,能够试一下下边代码两个输出异同点。
a = 'as1d' b = 'fa3s' print(a,b) print(a+b)
2.字符串的乘法运算:
a = 'as1d' s = a * 5 print(s)
3.字符串大小比较:比较的是ASCII码的大小。
a = "A" b = "a" if a > b: print(1) else: print(0)
4.字符串的in运算:判断某个字符串是否为另一个字符串的子串
a = 'qwert' b = 'w' if b in a: print(yes) else: print(no)
经常使用的字符串函数
index(索引) S.index(substr, [start, [end]])能够经过索引访问字符串内部的任意元素。
s = "qwertyuiop" # 012345678910
python字符串中表明字符串(qwer...)位置的下标,称之为索引(0123...),运行下面代码试一下!
s = 'qwertyuiop' print(s[0],s[3],s[9]
咱们要prints里的每个字符串,应该怎么办呢?用while循环试一下:
s = "qwertyuiop" i = 0 while i < len(s): print s[i] i += 1
上述代码中的len()函数返回s字符串的长度值,s[i]表明着当前下标i的元素值。
slice(切片) 访问字符串内部任意部分的元素
要访问s字符串里的’yu‘字符串应该怎么实现呢?
s = 'qwertyuiop' print(s[5:7]) #python的切片规则,s[start:end]是瞻前不顾后的
find(查找) S.find(substr),返回s中substr这个字符串中第一个元素的索引:
s = "qwertyuiop" a = "io" t = s.find(a) print(t)
split(切片) S.split([sep, [maxsplit]]),以sep为分隔符,把S分红一个list。maxsplit表示分割的次数。默认的分割符为空白字符
s = 'qwer,tyuiop' s.split(",")
其它的字符串函数,你们能够在交互一下help(str),返回的是字符串全部的函数方法。
help(str)
列表的经常使用函数:
append(...) | L.append(object) -> None -- append object to end | clear(...) | L.clear() -> None -- remove all items from L | copy(...) | L.copy() -> list -- a shallow copy of L | count(...) | L.count(value) -> integer -- return number of occurrences of value | extend(...) | L.extend(iterable) -> None -- extend list by appending elements from the iterable | index(...) | L.index(value, [start, [stop]]) -> integer -- return first index of value. | Raises ValueError if the value is not present. | insert(...) | L.insert(index, object) -- insert object before index | pop(...) | L.pop([index]) -> item -- remove and return item at index (default last). | Raises IndexError if list is empty or index is out of range. | remove(...) | L.remove(value) -> None -- remove first occurrence of value. | Raises ValueError if the value is not present. | reverse(...) | L.reverse() -- reverse *IN PLACE* | sort(...) | L.sort(key=None, reverse=False) -> None -- stable sort *IN PLACE* |