1.3.1 输入和输出
input输入(屏幕输入):
● input()的小括号中放入的是,提示信息,用来在获取数据之前给用户的一个简单提示
● input()在从键盘获取了数据以后,会存放到等号右边的变量中
● input()会把用户输入的任何值都作为字符串来对待
>>> str = input("请输入:")
请输入: #这里是输入完代码直接的输出
>>> str = input("请输入:")
请输入:Hello World! #这里是输入Hello Worild!之后IDLE的显示
>>> print("你输入的内容是:",str)
你输入的内容是: Hello World! #此时输出了我们输入的str内容
print输出(屏幕打印):
● print 默认输出是换行的,如果要实现不换行需要在变量末尾加上 end=""
>>>print("abc") # 输出字符串
abc
>>> print(10) # 输出数字
10
>>> str = 'abc'
>>> print(str) # 输出变量
abc
>>> x = [1,2,'a'] # 列表
>>> print(x)
[1, 2, 'a']
>>> z = (1,2,'a') # 元组
>>> print(z)
(1, 2, 'a')
>>> d = {'a':1, 'b':2} # 字典
>>> print(d)
{'a': 1, 'b': 2}
>>> print(x,z) #多变量输出
[1, 2, 'a'] (1, 2, 'a')
>>> print("字符串为:%s"%str) #加变量输出
字符串为:abc
1.3.2 字符串的格式化
字符串的格式化方法分为两种,分别为占位符(%)和format方式。占位符方式在Python2.x中用的比较广泛,随着Python3.x的使用越来越广,format方式使用的更加广泛。
python字符串格式化符号:
符号 | 描述 |
---|---|
%c | 格式化字符及其ASCII码 |
%s | 格式化字符串 |
%d | 格式化整数 |
%u | 格式化无符号整型 |
%o | 格式化无符号八进制数 |
%x | 格式化无符号十六进制数 |
%X | 格式化无符号十六进制数(大写) |
%f | 格式化浮点数字,可指定小数点后的精度 |
%e | 用科学计数法格式化浮点数 |
%E | 作用同%e,用科学计数法格式化浮点数 |
%g | %f和%e的简写 |
%G | %f 和 %E 的简写 |
%p | 用十六进制数格式化变量的地址 |
format格式化函数
格式化字符串的函数 str.format(),它增强了字符串格式化的功能。
基本语法是通过 {} 和 : 来代替以前的 % 。
- 用format可以做到:元素访问、填充对齐、精度设置
>>>"{} {}".format("hello", "world") # 不设置指定位置,按默认顺序
'hello world'
>>> "{0} {1}".format("hello", "world") # 设置指定位置
'hello world'
>>> "{1} {0} {1}".format("hello", "world") # 设置指定位置
'world hello world'
>>> print("网站名:{name}, 地址 {url}".format(name="百度", url="www.baidu.com")) #指定参数名
'网站名:百度, 地址 www.baidu.com'
>>>site = {"name": "百度", "url": "www.baidu.com"}
>>>print("网站名:{name}, 地址 {url}".format(**site)) # 通过字典设置参数
'网站名:百度, 地址 www.baidu.com'
>>>my_list = ['百度', 'www.baidu.com']
>>>print("网站名:{0[0]}, 地址 {0[1]}".format(my_list)) # "0" 是必须的 通过列表索引设置参数
'网站名:百度, 地址 www.baidu.com'
>>> print("{:.2f}".format(3.1415926)); #数字格式化
3.14
数字 | 格式 | 输出 | 描述 |
---|---|---|---|
3.1415926 | {:.2f} | 3.14 | 保留小数点后两位 |
3.1415926 | {:+.2f} | +3.14 | 带符号保留小数点后两位 |
-1 | {:+.2f} | -1.00 | 带符号保留小数点后两位 |
2.71828 | {:.0f} | 3 | 不带小数 |
5 | {:0>2d} | 05 | 数字补零 (填充左边, 宽度为2) |
5 | {:x<3d} | 5xx | 数字补x (填充右边, 宽度为4) |
^, <, > 分别是居中、左对齐、右对齐,后面带宽度, : 号后面带填充的字符,只能是一个字符,不指定则默认是用空格填充。
表示在正数前显示 +,负数前显示 -; (空格)表示在正数前加空格
b、d、o、x 分别是二进制、十进制、八进制、十六进制。
1.3.3 注释
python中单行注释采用 # 开头
>>> print ("Hello, Python!") # 第二个注释
Hello, Python!
python 中多行注释使用三个单引号(’’’)或三个双引号(""")
'''
这是多行注释,使用单引号。
这是多行注释,使用单引号。
这是多行注释,使用单引号。
'''
"""
这是多行注释,使用双引号。
这是多行注释,使用双引号。
这是多行注释,使用双引号。
"""
1.3.4 标识符
- 在Python里,标识符: 由字母、数字、下划线组成,但不能以数字开头。
- Python 中的标识符是区分大小写的。
- 特殊标识符:
- 以下划线开头的标识符是有特殊意义的。以单下划线开头 _foo 的代表不能直接访问的类属性,需通过类提供的接口进行访问,不能用 from xxx import * 而导入;
- 以双下划线开头的 __foo 代表类的私有成员;以双下划线开头和结尾的 foo 代表 Python 里特殊方法专用的标识,如 init() 代表类的构造函数。
- python保留字: 保留字即关键字,我们不能把它们用作任何标识符名称。Python 的标准库提供了一个 keyword 模块,可以输出当前版本的所有关键字:
>>> import keyword
>>> keyword.kwlist
['False', 'None', 'True', 'and', 'as', 'assert', 'break', 'class', 'continue',
'def', 'del', 'elif', 'else', 'except', 'finally', 'for', 'from', 'global',
'import', 'in', 'is', 'lambda', 'nonlocal', 'not', 'or', 'pass', 'raise', 'if',
'return','try', 'while', 'with', 'yield']
1.3.5 变量
Python 中的变量不需要声明。每个变量在使用前都必须赋值,变量赋值以后该变量才会被创建。
在 Python 中,变量就是变量,它没有类型,我们所说的"类型"是变量所指的内存中对象的类型。
等号(=)用来给变量赋值。
等号(=)运算符左边是一个变量名,等号(=)运算符右边是存储在变量中的值
多个变量赋值
Python允许你同时为多个变量赋值
a = b = c = 1
以上实例,创建一个整型对象,值为1,三个变量被分配到相同的内存空间上。
也可以为多个对象指定多个变量
a, b, c = 1, 2, "abc"
以上实例,两个整型对象 1 和 2 的分配给变量 a 和 b,字符串对象 “abc” 分配给变量 c
1.3.5 行与缩进
Python程序的最基本的组成元素是语句,一条语句可以占有一个物理行,过长的语句可以占有多个物理行,此时这多个物理行组成了一个逻辑行,它们在物理上虽然跨越多行,但是逻辑上是属于同一部分。每个物理行的结尾可以是注释,#之后到物理行结尾为止的所有字符都是注释部分,Python解释器将忽略注释部分。
当然多个语句也可以在一行,就是多个逻辑行占一个物理行。
print(1) #一个物理行,一个逻辑行
一个逻辑行占多个物理行,‘可以将两个相邻的物理行连接成一个逻辑行,这需要一个条件就是连接的第一个物理行必须没有注释,’‘添加到第一个物理行的后面,注意:’'前面的空格会被当成是物理行的内容。
另外[]、{}、()可以跨越物理行。
例如:
a=""" 占一个物理行\
占两个物理行\
占三个物理行"""
b=[1,2,
3,4]
多个逻辑行占一个物理行,语句之间用;隔开
print 1;print 2; print 3
空行
● 函数之间或类的方法之间用空行分隔,表示一段新的代码的开始。类和函数入口之间也用一行空行分隔,以突出函数入口的开始。
● 空行与代码缩进不同,空行并不是Python语法的一部分。书写时不插入空行,Python解释器运行也不会出错。但是空行的作用在于分隔两段不同功能或含义的代码,便于日后代码的维护或重构。
● 记住:空行也是程序代码的一部分。
缩进
- 在C语言中有花括号来表示一个语句块。与其他语言不一样,Python没有使用花括号或者其他开始和结束的定界符来表示一个语句块。
- 缩进是Python表示语句块的唯一方法。
- 一个语句块中的所有语句必须使用相同的缩进,表示一个连续的逻辑行序列。
- 源文件的第一行不需要缩进(不允许以任何空格开始)