写给小白的Python之002:变量 注释 输入 输出

导读:

1.变量

2.字符编码

3.注释

4.输出

5.输入

6.缩进

7.报错单词释义

8.代码规范

 

基础语法是任何语言的基础,只有熟练掌握,才能灵活用语言,写出高效、优美、简洁的代码。

Python的语法是非常灵活别具一格的。学习语言就要学习它的风格、特点,这才是语言的精粹。Python尤其如此。

一、变量

变量(Variables)是为了存储程序运算过程中的一些中间结果,为了方便日后调用。

1.声明变量

1 #_*_coding:utf-8_*_         推荐这种
2 #coding=utf-8
3 name = "salmond"

2.变量的赋值

1 name = "salmond"
2 name2 = name
3 print(name,name2)          #salmond salmond
4 
5 name = "Jack"
6 print("name2")                #salmond

 

3.标识符和关键字

标识符:开发人员在程序中自定义的一些符号和名称。标识符是自己定义的,如变量名 、函数名等。

标识符由字母、下划线和数字组成,且数字不能开头。

标识符区分大小写:Andy≠andy

关键字:python一些具有特殊功能的标识符,这就是所谓的关键字。关键字是python已经使用的了,所以不允许开发者自己定义和关键字相同的名字的标识符。

4.变量的命名规则

 1)要具有描述性,见名知意;

  2)变量名只能由下划线、数字、字母组成,不可以是空格或特殊字符(#?<.,¥$*!~);

  3)最好不要以中文或拼音为变量名;

  4)不能以数字开头;

  5)驼峰命名;

  小驼峰命名:myName

  大驼峰命名:MyName

  #还有一种 my_name,Python中常用。

  6)保留字符(关键字)不能被使用。

  可以通过以下命令查看当前系统中python的关键字:

>>> import keyword

>>> keyword.kwlist

['False', 'None', 'True', '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']

思考题:下面的标识符哪些是正确的,哪些不正确为什么?

 

   fromNo12
   from#12
   my_Boolean
   my-Boolean
   Obj2
   2ndObj
   myInt
   test1
   Mike2jack
   My_tExt
   _test
   test!32
   haha(da)tt
   int
   jack_rose
   jack&rose
   GUI
   G.U.I

 

 

 

5.常量

常量(constant) :不变的量 pie = 3.141592653....

  在py里面所有的变量都是可变的 ,所以用全部大写的变量名来代表此变量为常量。

 

二、字符编码

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

报错:ASCII码无法表示中文

   #!/usr/bin/env python

   print "你好,世界"

改正:应该显式的告诉python解释器,用什么编码来执行源代码,即:

   #!/usr/bin/env python

   # -*- coding: utf-8 -*-  (或者:#coding:utf-8)

   print "你好,世界"

Python2.x == ASCII默认编码

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

     #coding:utf-8    

Python3.x == Unicode默认编码

     Unicode 是向下兼GB2312 , GBK

扩展知识:

 ASCII

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

关于中文

支持中文的第一张表就叫 GB2312。

   1980 gb2312 6700+

   1995 gbk1.0 20000

   2000 gb18030 27000

   big5 台湾

为了处理汉字,程序员设计了用于简体中文的GB2312和用于繁体中文的big5。

GB2312(1980年)一共收录了7445个字符,包括6763个汉字和682个其它符号。汉字区的内码范围高字节从B0-F7,低字节从A1-FE,占用的码位是72*94=6768。其中有5个空位是D7FA-D7FE。

GB2312 支持的汉字太少。1995年的汉字扩展规范GBK1.0收录了21886个符号,它分为汉字区和图形符号区。汉字区包括21003个字符。2000年的 GB18030是取代GBK1.0的正式国家标准。该标准收录了27484个汉字,同时还收录了藏文、蒙文、维吾尔文等主要的少数民族文字。现在的PC平台必须支持GB18030,对嵌入式产品暂不作要求。所以手机、MP3一般只支持GB2312。

从ASCII、GB2312、GBK 到GB18030,这些编码方法是向下兼容的,即同一个字符在这些方案中总是有相同的编码,后面的标准支持更多的字符。在这些编码中,英文和中文可以统一地处理。区分中文编码的方法是高字节的最高位不为0。按照程序员的称呼,GB2312、GBK到GB18030都属于双字节字符集 (DBCS)。

有的中文Windows的缺省内码还是GBK,可以通过GB18030升级包升级到GB18030。不过GB18030相对GBK增加的字符,普通人是很难用到的,通常我们还是用GBK指代中文Windows内码。

Unicode

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

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

UTF-8

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

ASCII -->GB2312 ->GBK1.0-->GB18030

ASCII -->Unicode -->UTF-8   /UTF-16

在计算机内存中,统一使用 Unicode 编码,当需要保存到硬盘或者需要传输的时候,就转换为 UTF-8 编码。

 

 

三、注释

单行注释

语法:
# 被注释内容

为了保证代码的可读性,# 后面建议添加一个空格,然后再编写相应的说明文字 。

在程序开发时,同样可以使用 # 在代码的后面(旁边)增加说明性的文字。但是,需要注意的是,为了保证代码的可读性,注释和代码之间 至少要有 两个空格。示例代码如下:

 print("hello python")  # 输出 `hello python`

多行注释

语法:

''' 被注释内容 '''

""" 被注释内容 """

 

四、输出

1.普通的输出

你可以给它传递零个或多个用逗号隔开的表达式:

print([object, ...][, sep=' '][, end='endline_character_here'][, file=redirect_to_here])

方括号内是可选的,sep表示分割符,end表示结束符,file表示重定向文件。如果要给sep、end、file指定值必须使用关键字参数。

print('hello world')

print('hello', 'world', sep='%')  # 输出hello%world
print('hello', 'world', end='*')  # 输出hello world*, 并且不换行

2.格式化输出

如果希望输出文字信息的同时,一起输出数据,就需要使用到 格式化操作符。

 % 被称为格式化操作符,专门用于处理字符串中的格式。包含 % 的字符串,被称为格式化字符串。

 % 和不同的 字符 连用,不同类型的数据 需要使用 不同的格式化字符。

语法格式如下: 

print("格式化字符串" % 变量1)

print("格式化字符串" % (变量1, 变量2...))

2.1 格式化字符含义

%s 字符串

%d 有符号十进制整数

%06d 表示输出的整数显示位数,不足的地方使用 0 补全

f 浮点数

%.2f 表示小数点后只显示两位

%%输出 %

2.2 格式化输出案例

定义字符串变量 name,输出 我的名字叫 小明,请多多关照!

定义整数变量 student_no,输出 我的学号是000001 。

定义小数 price、weight、money,输出 苹果单价 9.00 元/斤,购买了 5.00 斤,需要支付 45.00 元。

定义一个小数 scale,输出数据比例是10.00%。

print("我的名字叫 %s,请多多关照!" % name)

print("我的学号是 %06d" % student_no)

print("苹果单价 %.02f 元/斤,购买 %.02f 斤,需要支付 %.02f 元" % (price, weight, money))

print("数据比例是 %.02f%%" % (scale * 100)

2.3 常见的格式符号


 

2.4 换行输出

print("1234567890-------")  # 会在一行显示

print("1234567890\n-------")  # 一行显示1234567890,另外一行显示-------

 名片小案例:

print('==================================\n姓名: salmond\nQQ:xxxxxxx\n手机号:110xxxxxx\n公司地址:上海市xxxx\n==================================')

结果如下:

==================================

姓名: salmond

QQ:xxxxxxx

手机号:110xxxxxx

公司地址:上海市xxxx

==================================

 

五、输入

1.Python2.x版本中

raw_input()

Python2中,获取键盘输入的数据的方法是采用 raw_input 函数

password = raw_input("请输入密码:")

print '您刚刚输入的密码是:', password

注意:

raw_input()的小括号中放入的是,提示信息,用来在获取数据之前给用户的一个简单提示;

raw_input()在从键盘获取了数据以后,会存放到等号右边的变量中;

raw_input()会把用户输入的任何值都作为字符串来对待。

 

input()

input()函数与raw_input()类似,但其接受的输入必须是表达式

input()接受表达式输入,并把表达式的结果赋值给等号左边的变量。

>>> a = input()

123

>>> a

123

>>> type(a)

<type 'int'>

>>> a = input()

abc

Traceback (most recent call last):

  File "<stdin>", line 1, in <module>

  File "<string>", line 1, in <module>

NameError: name 'abc' is not defined

>>> a = input()

"abc"

>>> a

'abc'

>>> type(a)

<type 'str'>

>>> a = input()

1+3

>>> a

4

>>> a = input()

"abc"+"def"

>>> a

'abcdef'

>>> value = 100

>>> a = input()

value

>>> a

100

 

2.python3.x版本中

没有raw_input()函数,只有input()。

并且python3中的input与python2中的raw_input()功能一样。

小括号中放入的是,提示信息,用来在获取数据之前给用户的一个简单提示。

input()会把用户输入的任何值都作为字符串来对待

 

六、缩进

Python对缩进敏感。缩进级别必须保持一致 。

官方建议使用4个空格进行缩进。

因为使用原生Tab键在Linux系统中会出错。

tab != 4个空格

缩进错误:
IndentationError: expected an indented block   
IndentationError: unindent does not match any outer indentation level

 

七、报错单词释义

每个程序员都会遇到程序报错的情况,此时能够读懂报错信息,便显得尤为重要。所以,英语对程序员很重要啊!

以下是报错信息中一些常见的单词:

* error 错误
* name 名字
* defined 已经定义
* syntax 语法
* invalid 无效
* Indentation 索引
* unexpected 意外的,不期望的
* character 字符
* line 行
* encoding 编码
* declared 声明
* details 细节,详细信息
* ASCII 一种字符编码

 

八、代码规范

Python语言的一大特点就是优雅,这要归功于它有着很严格的代码规范。

关于代码规范,Python 官方提供有一系列 PEP(Python Enhancement Proposals) 文档。其中第 8 篇文档专门针对 Python 的代码格式 给出了建议,也就是俗称的 PEP 8。谷歌有对应的中文文档

 

九、小案例与练习题

1.小案例:死亡倒计时

death_age = 80 
name = input("your name:")
age = input("your age:")  #input 接收的所有数据都是字符串,即便你输入的是数字,但依然会被当成字符串来处理
print( type(age) )    #结果为:<class 'str'>
#int integer =整数  把字符串转成int,用int(被转的数据)
#str string =字符串 把数据转成字符串用str(被转的数据)
print("Your name:",name)
#print("You can still live for ",  death_age - int(age)," years ....")
print("You can still live for " +  str(death_age - int(age)) +" years ....")

 

2.练习题

以后每篇教程的最后都会加入一些练习题,进行巩固。练习题的答案会在下一篇教程中给出。

练习题1:编写程序,从键盘获取用户名和密码,然后判断,如果正确就输出以下信息

亲爱的xxx,欢迎登陆 爱学习管理系统

 

练习题2:从键盘获取一个人的信息,然后按照下面格式化输出显示

    ==================================

    姓名: salmond    

    QQ:xxxxxxx

    手机号:110xxxxxx

    公司地址:上海市xxxx

    ==================================

 

 

练习题3:编写程序,完成以下要求:

提示用户进行输入数据;

获取用户的数据数据(需要获取2个);

对获取的两个数字进行求和运行,并输出相应的结果。

提示:int()可将字符串转换成数字

 

posted @ 2018-03-30 20:18  salmond  阅读(1071)  评论(0编辑  收藏  举报