python笔记:while.if.for.编码-chenhao&rongrong

Python简介

Python的创始人为Guido van Rossum。1989年圣诞节期间,在阿姆斯特丹,Guido为了打发圣诞节的无趣,决心开发一个新的脚本解释程序,做为ABC 语言的一种继承。之所以选中Python(大蟒蛇的意思)作为程序的名字,是因为他是一个叫Monty Python的喜剧团体的爱好者。

  ABC是由Guido参加设计的一种教学语言。就Guido本人看来,ABC 这种语言非常优美和强大,是专门为非专业程序员设计的。但是ABC语言并没有成功,究其原因,Guido 认为是非开放造成的。Guido 决心在Python 中避免这一错误。同时,他还想实现在ABC 中闪现过但未曾实现的东西。

  就这样,Python在Guido手中诞生了。可以说,Python是从ABC发展起来,主要受到了Modula-3(另一种相当优美且强大的语言,为小型团体所设计的)的影响。并且结合了Unix shell和C的习惯。

  Python  已经成为最受欢迎的程序设计语言之一。2011年1月,它被TIOBE编程语言排行榜评为2010年度语言。自从2004年以后,python的使用率是呈线性增长 。

Python入门

一、python安装

windows系统:

python笔记:while.if.for.编码-chenhao&rongrong
1、下载安装包
    https://www.python.org/downloads/
2、安装
    默认安装路径:C:\python35
3、配置环境变量
    【右键计算机】--》【属性】--》【高级系统设置】--》【高级】--》【环境变量】--》【在第二个内容框中找到 变量名为Path 的一行,双击】 --> 【Python安装目录追加到变值值中,用 ; 分割】
    如:原来的值;C:\python35,切记前面有分号
python笔记:while.if.for.编码-chenhao&rongrong

linux系统:

无需安装,原装Python环境

ps:如果自带2.6,请更新至3.0以上

更新版本到3.5.2
下载:wget https://www.python.org/ftp/python/3.5.2/Python-3.5.2.tgz

解压:tar zxvf Python-3.5.2.tgz

编译:cd Python-3.5.2
./configure

安装:make && make install

默认安装位置/usr/local/lib/python3.5

执行命令python3.5进入到运行环境

、python第一行代码

在 /home/python/ 目录下创建 hello.py 文件,内容如下:

#! /usr/bin/env python
# -*- coding: utf-8 -*-
# __author__ = "chenhao"
# Email: 312779641@qq.com
print('hello python')

执行: ./hello.py      注:执行前需给予 hello.py 执行权限,chmod 755 hello.py

三、变量赋值及命名规则

变量定义的规则:
name = chenhao
变量名只能是 字母、数字或下划线的任意组合
变量名的第一个字符不能是数字
以下关键字不能声明为变量名
['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']

 

 

扩展 (给变量name1赋值Alex li,变量name2赋值为变量name1,name1重赋值Jack Chen,此时name2的值为多少?

#! /usr/bin/env python
# -*- coding: utf-8 -*-
# __author__ = "chenhao"
# Email: 312779641@qq.com
name1 = "Alex Li"

name2 = name1
print(name1, name2)

name1 = "Jack Chen"

print("What is the value of name2 now?")

 

所以最后name1的值为Jack Chen,name2的值为Alex li

 

 四、字符编码

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

ASCII(American Standard Code for Information Interchange,美国标准信息交换代码)是基于拉丁字母的一套电脑编码系统,主要用于显示现代英语和其他西欧语言,其最多只能用 8 位来表示(一个字节),即:2**8 = 256,所以,ASCII码最多只能表示 256 个符号。

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

Unicode(统一码、万国码、单一码)是一种在计算机上使用的字符编码。Unicode 是为了解决传统的字符编码方案的局限而产生的,它为每种语言中的每个字符设定了统一并且唯一的二进制编码,规定虽有的字符和符号最少由 16 位来表示(2个字节),即:2 **16 = 65536,
注:此处说的的是最少2个字节,可能更多

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

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

报错:ascii码无法表示中文

 

五、用户交互及字符串拼接

跟用户进行交互,并把输入的信息打印出来
#!/usr/bin/env python
# -*- coding:utf-8 -*-
###########用户交互及字符串拼接################
# python2.X与python3.X区别:    python2.X raw_input = python3.X input
# 提示用户输入姓名、年龄、工作、工资并以信息列表的形式打印出

name = input("Please input your name:")
age = int(input("Please input your age:"))  #str强制转换为int
job = input("Please input your job:")
salary = input("Please input your salary:")

info1 = '''
------------  Info of %s  ---------
Name:%s
Age:%d
Job:%s
Salary:%s
''' %(name,name,age,job,salary)     #%s检测数据类型为字符串,%d检测数据类型为整数,%f检测数据类型为浮点数 强制
print(info1)

info2 = '''
------------  Info of {_Name}  ---------
Name:{_Name}
Age:{_Age}
Job:{_Job}
Salary:{_Salary}
''' .format(_Name=name,
_Age=age,
_Job=job,
_Salary=salary)
print(info2)

info3 = '''
------------  Info of {0}  ---------
Name:{0}
Age:{1}
Job:{2}
Salary:{3}
''' .format(name,age,job,salary)
print(info3)

六、if判断语句

① 实例:用if语句验证用户登录,密文密码

python笔记:while.if.for.编码-chenhao&rongrong
#! /usr/bin/env python
# -*- coding: utf-8 -*-
# __author__ = "chenhao"
# Email: 312779641@qq.com

#############验证用户登录-密文密码##############
# 提示输入用户名密码
# 验证用户名密码
#       如果错误,则输出用户名密码错误
#       如果成功,则输出欢迎,xxx!
 
import getpass     #标准模块,import调用
 
name = input("Please input your name:")
password = getpass.getpass("Please input your password:")
 
if name == "chenhao" and pwd == "chenhao@123":
    print ("Welcome to,chenhao!")
else:
    print ("The user name and password cuowu")
python笔记:while.if.for.编码-chenhao&rongrong

② 实例:用if语句实现猜幸运数字游戏

python笔记:while.if.for.编码-chenhao&rongrong
#! /usr/bin/env python
# -*- coding: utf-8 -*-
# __author__ = "chenhao"
# Email: 312779641@qq.com


age = 24
counter = 0
for i in range(10):
    print('-->counter:',counter)
    if counter < 3:
      num = int(input("qingshuru :"))
      if num == age:
         print("huanying")
         break
      elif num > age:
         print("tai da")
      else:
         print("tai xiao")
    else:
      continue_num= input("ni xiang jixu ma: ")
      if continue_num == 'y':
         counter = 0
         continue
      else:
         print("bye")
         break
counter = counter + 1
python笔记:while.if.for.编码-chenhao&rongrong

七、while循环语句

① 实例:猜数字游戏升级版(循环猜数字,直到猜到为止)

python笔记:while.if.for.编码-chenhao&rongrong
#! /usr/bin/env python
# -*- coding: utf-8 -*-
# __author__ = "chenhao"
# Email: 312779641@qq.com
##############猜幸运数字################
 
lucky_num = 66       # 设置幸运数字
 
     
while True:    # while循环:
               # 输入猜的的幸运数字范围1-100

   guess_num = int(input("Please enter your guess lucky number(1-100):"))
 
    if guess_num == lucky_num:      # 如果猜对,输出恭喜你猜对了,并退出
        print ("Congratulations you guessed it!")
        break                       #break 结束循环 continue 跳出本次循环,继续下次循环 exit 结束程序
    elif guess_num > lucky_num :    # 如果猜的数字大了,输出数字往小点猜
        print ("Think it smaller...")
    else:                           # 否则,输出数字往大点猜
        print ("Think it bigger...")
python笔记:while.if.for.编码-chenhao&rongrong

② 实例:猜数字游戏完善版(循环猜数字,允许猜三次机会)

python笔记:while.if.for.编码-chenhao&rongrong
##############猜幸运数字+次数限制################
 
lucky_num = 66       # 设置幸运数字
count = 0            # 设置初始值count=0
 
while count < 3 :    # while判断count是否小于3,如果小于3则:
                     # 输入猜的的幸运数字范围1-100
    guess_num = int(input("Please enter your guess lucky number(1-100):"))
 
    if guess_num == lucky_num:      # 如果猜对,输出恭喜你猜对了,并退出
        print ("Congratulations you guessed it!")
        break                       #break 结束循环 continue 跳出本次循环,继续下次循环 exit 结束程序
    elif guess_num > lucky_num :    # 如果猜的数字大了,输出数字往小点猜
        print ("Think it smaller...")
    else:                           # 否则,输出数字往大点猜
        print ("Think it bigger...")
    count += 1                       #每次循环结束count加1
else:
    print ("You tried so many times!")  #while循环超过三次,则输出试过太多次了
python笔记:while.if.for.编码-chenhao&rongrong

八、for循环语句

实例:用for循环实现猜数字游戏,限制三次机会

python笔记:while.if.for.编码-chenhao&rongrong
lucky_num = 66       # 设置幸运数字
 
for i in range(3):    # while判断count是否小于3,如果小于3则:
                     # 输入猜的的幸运数字范围1-100
    guess_num = int(input("Please enter your guess lucky number(1-100):"))
 
    if guess_num == lucky_num:      # 如果猜对,输出恭喜你猜对了,并退出
        print ("Congratulations you guessed it!")
        break                       #break 结束循环 continue 跳出本次循环,继续下次循环 exit 结束程序
    elif guess_num > lucky_num :    # 如果猜的数字大了,输出数字往小点猜
        print ("Think it smaller...")
    else:                           # 否则,输出数字往大点猜
        print ("Think it bigger...")
else:
    print ("You tried so many times!")  #while循环超过三次,则输出试过太多次了
python笔记:while.if.for.编码-chenhao&rongrong