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

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

一、字符编码/变量

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 = name

name = "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:%s
age:%s(这里的%S也可以变成%d【检测字符串类型】,注:%d是数字)
job:%s
salary:%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 = 20
count = 0
while 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 +=1
else:
print("you have tried too many times.")

while还有一种无线循环,一经运行,停不下来。

count = 0
while true:
print("count+1",count)
count +=1 (相当count=count+1)
如果要上面代码循环100次就退出,则:
count = 0
while 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 = 20
for 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

 

 

posted @ 2017-04-22 17:10  当IT幸福来敲门  阅读(1093)  评论(0编辑  收藏  举报