python 学习笔记 字符编码,输入,循环

字符编码:
python解释器在加载.py文件中代码时,会对内容进行编码(默认asciII)
ASCII、GB2312、GBK、GB18030 向下兼容,这只是中国的

别的国家也都包括进来之后,世界统一交unicode,统一万国码

UTF-8是对Unicode的压缩和优化
1个字节 8byte

Unicode中一个字符 2个字节 16byte

因此在unicode中,弄出可变长的字符编码集,
所有引文单词,英文字符,用UTF-8存储,使用ASCII格式
如果存汉字就是UTF-8

这样英文字符 2字节 ,一个汉字 3个字节
ASCII 255 1bytes
GB2312 (1980年 7000+汉字)
GBK1.0 1995年 20000+汉字
GB18030 2000年 27000+汉字
unicode 2bytes
utf-8 en: 1byte, zh:3bytes

py3和Py2区别是 3默认支持中文,2不默认支持

#!/usr/bin/env python
#-*- coding:utf-8 -*-
# Author:summer_han
#py3默认支持中文,py2不支持
所以python2 中需要声明 #-*- coding:utf-8 -*-
Python2中默认用ascii解释器,告诉python2默认使用utf-8解释器。
python3 中不需要声明

# 单行注释
'''多行注释''' “”“多行注释"""
三个 '''或者 三个“”“

‘’‘除了注释,还能打印注释
'''开头 '''结尾

在python中 '''和"""相同

什么时候用 ' 什么时候用双
msg="I'm 123."单套双,双套单

用户交互输入
方法1:(+号开辟好几个内存块,效率低下,不用)
name = input("name:")
age = input("age:")
job = input("job:")
salary = input("salary:")

info = '''
------------info of ''' +name + '''-----------
Name:''' + name + '''
Age:''' + age + '''
Job:''' + job + '''
Salary:''' + salary + '''
'''
print(info)

 

方法2:(主流)
name = input("name:")
age = int(input("age:"))
print(type(age))
#默认是str,强制转换成int(字符串的格式化,不转化报错,所以python是强类型语言)
#python2的 raw_input 和 python3的input效果是一样的
#python 2.x raw_input python2里面接受什么格式,就认为是什么格式
#python 3.x input
job = input("job:")
salary = int(input("salary:"))
print(type(salary))
info = '''
------- info of %s -------
Name:%s
Age:%d
Job:%s
Salary:%d
''' % (name,name,age,job,salary)
print(info)

方法3:(主流)
name = input("name:")
age = int(input("age:"))
job = input("job:")
salary = int(input("salary:"))
print(type(salary))
info2 = '''
------- info of {_name} -------
Name:{_name}
Age:{_age}
Job:{_job}
Salary:{_salary}
''' .format(_name=name,
_age=age,
_job=job,
_salary=salary)
#需要使用.format
print(info2)


方法4:(很少用)
info3 = '''
------- info of {0} -------
Name:{0}
Age:{1}
Job:{2}
Salary:{3}
''' .format(_name=name,
_age=age,
_job=job,
_salary=salary)

实现密文密码:
#!/usr/bin/env python
#-*- coding:utf-8 -*-
# Author:summer_han
# python标准库 直接import不用安装的就是标准库 ,import getpass ,使用密文密码
import getpass
username = input("username:")
password = getpass.getpass("password:")

print(username,password)

说明:getpass在pycharm是没法使用的,必须到命令行下运行py脚本,能看到密文效果。

密文输入,判断对错

#!/usr/bin/env python
#-*- coding:utf-8 -*-
# Author:summer_han
# python标准库 直接import不用安装的就是标准库 ,import getpass ,使用密文密码
import getpass
_username = 'Han'
_password = 'abc'
username = input("username:")
password = getpass.getpass("password:")

if _username == username and _password == password:
print("Welcome user {_name} login..." .format(_name=username))
else:
print("Invalid username or password!")

#print(username,password)


加入循环次数限制 猜年龄
#!/usr/bin/env python
#-*- coding:utf-8 -*-
# Author:summer_han
age_of_summer = 4
#guess_age=int(input("guess age: "))
count=0
while True:
guess_age=int(input("guess age: "))
if count > 3:
break
if guess_age == age_of_summer:
print("Good boy ,You got it.")
break
elif guess_age > age_of_summer:
print("Think smaller...")
else:
print("Think bigger...")
count+=1


for 循环
for i in range(10):
print("loop ",i)

continue 跳出本次循环,进行下次循环
break 结束整个循环

posted @ 2017-12-02 15:45  boundshunter  阅读(110)  评论(0编辑  收藏  举报