对于小白,看代码真的太费劲了,进度很慢,心里挺复杂的,默默地走着,希望把坚持变成一种习惯,用努力学好代码。
一、字符编码/变量
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(
"你好,世界")
name
=
"A"
# -*- coding: utf-8 -*-
- 变量名只能是 字母、数字或下划线的任意组合
- 变量名的第一个字符不能是数字
- 以下关键字不能声明为变量名['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)
#!/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)
# 提示输入用户名和密码
# 验证用户名和密码
# 如果错误,则输出用户名或密码错误
# 如果成功,则输出 欢迎,XXX!
例:
#!/usr/bin/env python
# -*- coding: encoding -*-
getpass 也可不写,当练习
else:
print("invalid uername or passwaord!")
场景二、猜年龄
#!/usr/bin/env python
# -*- coding: encoding -*-
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