python_day2

来源:互联网 发布:淘宝怎么设置主营类目 编辑:程序博客网 时间:2024/06/10 20:41

首先附上知识点的思维导图:
http://naotu.baidu.com/file/9be93c8618301636a718f18330143574?token=a763ba2ba0291fc6


下面是对python的语法结构讲解

顺序结构:这是基本的语句结构

分支结构

  • if:
if 表达式:    语句
  • if…else…
if 表达式:    语句else:    语句
  • if…elif…else
if 表达式:    语句elif 表达式:    语句else:    语句注意:在python里面不支持switch语句,如果想实现switch的效果,第一种方法就是使用if...elif...else...

三目运算符:

C :         a>b? a:bPython :    maxNum = a if a>b else b

循环语句

for , while ,do …while…

for 循环

  • range(m,n,x):从m起始到n-1结束(不包含n),x代表步长;
for item in range(m,n,x):    循环的语句for item in 可迭代的类型(eg:字符串):    循环的语句
  • 两个关键字:
    • break : 跳出循环体,不再执行循环;
    • continue : 跳出本次循环,继续执行下一次循环;

编程练习:
用户输入一个数字,判断是否为质数;

  1 #!/usr/bin/env python  2 #coding:utf-8  3   4 num = input(">>> please input a number : ")  5 if num > 1:  6         for i in range(2,num):  7                 if num % i == 0 :  8                         print num,"不是质数"  9                         break 10         else: 11                 print num,"是质数" 12 else: 13         print num,"不是质数"

实现:

while循环

while

while 表达式(或者True,False):        循环的语句

while…else…

while 表达式:    循环语句else:    语句

pass

只是占一个语句的位置,并无任何擦作

if a>1:    pass

程序 = 算法 + 数据结构

C : 数组, 结构体, ……
Python : str, list, tuple(元组), set(集合), dict(字典)……


字符串的讲解

字符串的定义

  • ” “
  • ’ ‘
  • “”” “”“

转义字符: \n, \t, \r, \’, ‘”

字符串的特性

  • 索引:检索引用,通过字符串的下标,拿出字符串的某个字符;(注意:下标从0开始)
    a[0] ##拿出字符串字一个字符
    a[-1] ##拿出字符串的最后一个字符

  • 拼接: +

"hello"+"world"a[0]+a[1]
  • 切片:切出字符串指定的部分
a[m:n:x]    ##从m索引开始切,到n-1结束,间隔为xa[:n]       ##从开头切到n-1a[m:]       ##从m切到字符串结束a[::]       ##切出与a相同的字符串a[::-1]     #倒序输出字符串a

字符串的方法

字符串填充

[] : 表示可加可不加- S.center()     S.center(width[, fillchar]) -> string  //输入字符串宽度为width,S显示在中间,其他部分有fillchar填充- S.ljust()    S.ljust(width[, fillchar]) -> string  //S显示在左边- S.rjust(width[, fillchar]) //S显示在右边

删除前后的空格

- S.strip      S.strip([chars]) -> string or unicode //删除S中首位指定的chars没有参数时默认为空格;- S.lstrip([chars])- S.rstrip([chars])

字符串的变形

  • s.swapcase //反转字母,大小写互换
  • s.lower
  • s.upper
  • s.title
  • s.format //以指定的格式显示

编程练习:
处理字符串”1Xa7YzU”,最终分别打印数字,大写字母和小写字母;
代码:

  1 #!/usr/bin/env python   2 #coding: utf-8  3   4 str = "1Xa7YzU"  5 Upper = ""  6 Lower = ""  7 Digit = ""  8 for i in str:  9         if i.isupper(): 10                 Upper += i 11         elif i.islower(): 12                 Lower += i 13         elif i.isdigit(): 14                 Digit += i 15         else: 16                 print "input error" 17 print "大写字母有 : "+Upper,"\t小写字母有 :"+Lower,"\t数字有 :"+Digit

实现:

字符串的分割

  • s.split() //默认情况下,以空格为分隔符

字符串的判定(是否小写或者大写或者数字……)

字符串的查找

  • s.count()
  • s.find() //前往后找
  • s.index()
  • s.rfind() //从后往前找

替换

s.replace()

拼接

s.join()

这里以小米的一道面试题讲解:
输入字符串 : hello xiao mi
要求输出 : mi xiao hello

代码:

#!/usr/bin/env python#coding:utf-8print " ".join(raw_input(">>> input a sentense: ").split()[::-1])#其实就是一行实现

实现:

综合练习:

编写一个python脚本,判断用户输入的变量名是否合法? (首位为字母或下划线,其他为数字,字母或下划线)

  1 #!/usr/bin/env python  2 #coding:utf-8  3   4 import string  5 name = raw_input(">>> input your  variable: ")  6 if name[0] in string.letters+"_":  7         for i in name:  8                 if i not in string.letters+string.digits+"_":  9                         print "变量名不合法" 10                         exit() 11         print "变量名合法" 12 else: 13         print "变量名不合法"

实现: