python修行之路(二-python的基本语法,流量控制)

软件设计 2017-04-22

对于小白,看代码真的太费劲了,进度很慢,心里挺复杂的,默默地走着,希望把坚持变成一种习惯,用努力学好代码。

一、字符编码/变量

1、字符编码

python解释器在加载 .py 文件中的代码时,会对内容进行编码(默认ASCII)。

ASCII码的介绍就跳过,但ASCII码无法将世界上的各种文字和符号全部表示,所以,就需要新出一种可以代表所有字符和符号的编码,即:Unicode。

UTF-8,是对Unicode编码的压缩和优化,他不再使用最少使用2个字节,而是将所有的字符和符号进行分类:ascii码中的内容用1个字节保存、欧洲的字符用2个字节保存,东亚的字符用3个字节保存...

所以,python解释器在加载 .py 文件中的代码时,会对内容进行编码(默认ascill)

在python3中,可以识别中文,直接print("你好  世界")

而在python2的环境中,不能直接识别中文,需要告诉python解释器,用什么编码来执行源代码,即:

#!/usr/bin/env python

# -*- coding: utf-8 -*-

print("你好,世界")

2、变量

学习的时候真的理解不了变量的定义,只知道变量的作用就是为了储存,这个很方便记忆了。

python3 的环境中,不用定义变量,可以直接定义变量

name= "A"

但在python2的环境中,要先声明变量:

# -*- coding: utf-8 -*-

name = "A"

变量的定义规则:

  • 变量名只能是 字母、数字或下划线的任意组合
  • 变量名的第一个字符不能是数字
  • 以下关键字不能声明为变量名['and', 'as', 'assert', 'break', 'class', 'continue', 'def', 'del', 'elif', 'else', 'except', 'exec', 'finally', 'for', 'from', 'global', 'if', 'import', 'in', 'is', 'lambda', 'not', 'or', 'pass', 'print', 'raise', 'return', 'try', 'while', 'with', 'yield']

name= "A"

name2= name

print(name,name2)

。。。。。。

name = "A"name2 = namename = "B"print("my name is",name ,name2)执行程序时会发现

my name is paoche ge alex li

Process finished with exit code 0

注释:变量name2是通过name指向的是A,也就是说name2de 变量定义的为A,和name是无关的,这点很重要。

二、注释

当前注释::# 被注释内容

多行注释:""" 被注释内容 """

三、输入

#!/usr/bin/env python

#_*_coding:utf-8_*_

name = input("name:")age = input("age:")job = input("job:")salary = input("salary:")print(name,age,job,salary)

输入密码时,如果想要不可见,需要利用getpass 模块中的 getpass方法,即:

#!/usr/bin/env python

# -*- coding: utf-8 -*-

import getpass

uername = input("uername:")

password = getpass.getpass("password:")

print(uername,password)

格式化输出与拼接

格式化输出中字符串拼接有四种形式(+、%是、{}、【】,但是平常运用中不建议使用字符串拼接,特别是+类型拼接,不到万不得已时不要用。)

+类型拼接

#!/usr/bin/env python# -*- coding: utf-8 -*-name = input("name:")age = input("age:")job = input("job:")salary = input("salary:")info = '''-------info of  + name +'''------name:'''+age +'''age:''' +job+'''job:''' + salary+'''salary:''''''%(name,name,age,job,salary)print(info)

%s类型字符拼接

#!/usr/bin/env python# -*- coding: utf-8 -*-name = input("name:")age = input("age:")job = input("job:")salary = input("salary:")info = '''-------info of  %s-------name:%sage:%s(这里的%S也可以变成%d【检测字符串类型】,注:%d是数字)job:%ssalary:%s'''%(name,name,age,job,salary)print(info)

注释:age : %d时,age =inptu("age")是字符串,,而不是数字,需要转换,

age = int(input(age))   print(type(age))

{}类型拼接

#!/usr/bin/env python# -*- coding: utf-8 -*-name = input("name:")age = input("age:")job = input("job:")salary = input("salary:")info = '''-------info of {name}-------name:{name}age:{age}job:{job}salary:{salary}'''.formate(name=name,name,age=age,job=job,salary=salary)print(info)

[]类型

#!/usr/bin/env python# -*- coding: utf-8 -*-name = input("name:")age = input("age:")job = input("job:")salary = input("salary:")info = '''-------info of {0}-------name:【0】age:【1】job:【2】salary:【3】'''.formate(,name,age,job,salary)print(info)

三、if else 表达式

场景一、用户登陆验证

# 提示输入用户名和密码

  

# 验证用户名和密码

#     如果错误,则输出用户名或密码错误

#     如果成功,则输出 欢迎,XXX!

例:

#!/usr/bin/env python

# -*- coding: encoding -*-

#import getpass    也可不写,当练习

uername = A

password = B

name = input("uesername:")

#password =getpass.getpass("password:")

if  uername ==uername and  password  ==password :

#(=是赋值的意思,==才是等于的意思,提醒像我这样的小白一定要记得,很重要)

  print("welcom  uer  {name} login..." .formate(name=uername))

else:

   print("invalid uername or passwaord!")

场景二、猜年龄

#!/usr/bin/env python

# -*- coding: encoding -*-

A=XXX

guess_age =int( iput("guess age"))     (python3中,input输入默认的结果类型是字符串,需要转换,int()就OK啦,知识点,你懂的)

if guess_age ==age_of_A

    print("yes ,you got it .")

elif  guess_age>age_of_A:

    print("think smaller...")

else:

    print("think bigger!")

场景三:根据用户输入内容输出其权限

#a-->超级管理员

#b-->普通管理员

#c,d-->业务主管

#其他--》普通用户

name = iput("uername:")

if name = "a":

    print("超级管理员")

elif name = "b":

    print("普通管理员")

elif name = "b" or name=" c":

   print("业务主管")

else:

   print("普通用户")

四、whlie 循环

拓展场景二  猜三次,猜对进入,猜不对,锁定

#!/usr/bin/env python# -*- coding: utf-8 -*-age_of_A = 20count = 0while count<3:    guess_age = int(input("guess age:"))    if guess_age ==age_of_A:        print("yes,you got it.")        break    elif guess_age>age_of_A:        print("think smaller...")    else:        print ("think bigger!")    count +=1else:   print("you have tried too many times.")while还有一种无线循环,一经运行,停不下来。count = 0while true:    print("count+1",count)    count +=1    (相当count=count+1)如果要上面代码循环100次就退出,则:count = 0while true:  print("count+1",count)  count +=1  if  count ==100      print("count+1",count)      break

五、for循环

#!/usr/bin/env python# -*- coding: utf-8 -*-age_of_A = 20for i in range(3):    guess_age = int(input("guess age:"))    if guess_age ==age_of_A:        print("yes,you got it.")        break    elif guess_age>age_of_A:        print("think smaller...")    else:        print ("think bigger!")else:   print("you have tried too many times.")

拓展   for 循环

打1-9这10个数字

for i in range(0,10):

   print("loop",i)

跳跃打1-9这10个数字

for i in range(0,10,x):

   print("loop", i)

 注释:x是步长,跳跃几个数字的意思,当x=2是,打印2、4、6、8;当x=3时,打印3、6、9

相关推荐