# 小白学 Python(一)
# 输入输出
# 输入
Python 主要使用 input()
函数来存入用户输入的信息。
input()
函数默认读入信息类型为字符串
案例展示
# 读入单个数据 | |
a = input("请输入内容:") # python 输入的一般形式,双引号内为提示信息,可以省略 | |
'''运行结果 | |
请输入内容: | |
''' | |
a = int(input("请输入一个整数:")) # 要求输入一个整数,输入字符会出错,其实原理是将输入的数字符号转换为 int 型数据,int 可改为其它数据类型 | |
'''运行结果 | |
请输入一个整数: | |
''' | |
# 读入多个数据 | |
a, b, c = input("请分别输入三个数据:").split() # python 读入多个数据的方法,原理是将读入的数据整合成一个列表,然后将里面的数据依次赋给前面的变量 | |
'''运行结果 | |
请分别输入三个数据: | |
''' | |
a, b, c = map(int, input("请分别输入三个整数:").split()) # 如果需要读入多个整数,需要借助 map () 函数 | |
'''运行结果 | |
请分别输入三个整数: | |
''' |
# 输出
Python 的输出主要属于 print()
函数实现。
print()
函数的语法为: print(*objects, sep=' ', end='\n', file=sys.stdout)
具体含义如下:
*objects
-- 表示输出的对象,多个对象用逗号分隔。
sep
-- 用来间隔多个输出对象,默认为空格。
end
-- 用来设定以什么结尾。默认值是换行符 \n,我们可以换成其他字符包括空字符。
file
-- 要写入的文件对象,输出到终端时可省略。
# 简单输出
案例展示
print("Hello World!") # 输出一个字符串 | |
'''运行结果 | |
Hello World! | |
''' | |
print("你好", "World") # 输出多个内容,内容间用,分隔,输出内容以空格分隔 | |
'''运行结果 | |
你好 World | |
''' | |
a = 999 | |
b = "hello" | |
print(a, b, sep = ',') # 输出变量 | |
'''运行结果 | |
999,hello | |
''' |
# 格式化输出
python 的格式化输出主要通过占位符来控制
三种常用的占位符:
- %
- format()
- f 表达式
%
可根据指定格式对字符串进行格式化。
具体语法为: %[key][flags][width][.precision][length type]conversion type %values
名词含义可参照 % (String Formatting Operator)
案例展示
num = 1 | |
car = "汽车" | |
print("如果有%d辆%s" %(num, car)) # % s,% d 就是占位符,会把占住的位置替换为后边变量 | |
'''运行结果 | |
如果有1辆汽车 | |
''' | |
print('%x' % 20) # 输出 20 的 16 进制形式 | |
'''运行结果 | |
14 | |
''' |
上面的 %d
、 %s
、 %x
都是 %
占位符的一种,类似的还有
%o
—— 八进制%d
—— 十进制%f
—— 保留小数点后面六位有效数字
-%.3f
,保留 3 位小数位%e
—— 保留小数点后面六位有效数字,指数形式输出%.3e
,保留 3 位小数位,使用科学计数法
%g
—— 在保证六位有效数字的前提下,使用小数方式,否则使用科学计数法
-%.3g
,保留 3 位有效数字,使用小数或科学计数法%s
—— 字符串%10s
—— 右对齐,占位符 10 位%-10s
—— 左对齐,占位符 10 位%.2s
—— 截取 2 位字符串%10.2s
—— 10 位占位符,截取两位字符串
······
以上信息并不全面,更多内容可以自行上网搜索
format
占位符一般形式为 str.format()
,可根据 str 格式字符串对 format () 里的变量进行格式化
案例展示
print("{}网址:{}".format("75%问题解决方案", "https://www.baidu.com")) | |
# 括号及其里面的字符 (称作格式化字段) 将会被 format () 中的参数替换 | |
'''运行结果 | |
%75问题解决方案网址:https://www.baidu.com | |
''' | |
print('{name}网址:{site}'.format(name='75%问题解决方案', site='https://www.baidu.com')) | |
# format () 也可以使用关键字参数,用来指向使用该名字的参数 | |
'''运行结果 | |
%75问题解决方案网址:https://www.baidu.com | |
''' | |
print('{0}网址:{1}'.format('75%问题解决方案', 'https://www.baidu.com')) | |
# 或者也可以使用位置参数进行指向 | |
'''运行结果 | |
%75问题解决方案网址:https://www.baidu.com | |
''' | |
# 位置及关键字参数可以任意的结合 |
{}
格式化字段的用法还有很多,有兴趣的朋友可以自行百度
f表达式
的一般使用形式为: f'格式化字符串'
或 F'格式化字符串'
案例展示
num = 1 | |
car = '汽车' | |
print(f'如果有{num}辆{car}') # {} 包裹的是替换字段,相当于上面的占位符 | |
'''运行结果 | |
如果有1辆汽车 | |
''' |
f表达式
还有很多高深用法,需要可自行百度
# 变量
与其他编程语言不同,Python 没有声明变量的命令
只有首次为其赋值时,才会创建变量
变量也不需要使用任何特定类型声明,甚至可以在设置后更改其类型
字符串变量可以使用单引号或双引号进行声明
Python 变量命名规则:
- 变量名必须以字母或下划线字符开头
- 变量名称不能以数字开头
- 变量名只能包含字母数字字符和下划线(A-z、0-9 和 _)
- 变量名称区分大小写(age、Age 和 AGE 是三个不同的变量)
有意思的是:python 的变量名可以为中文,不会报错,且能正常使用,不过建议不要这么做
案例展示
a = 1 | |
print(a) | |
b = "hello" | |
c = "world" | |
print(b, c) | |
a = "cat" | |
print(a) | |
十 = 10 | |
print(十) | |
'''运行结果 | |
1 | |
hello world | |
cat | |
10 | |
''' |
全局变量: 在函数外部创建的变量。全局变量可以被函数内部和外部的每个人使用。
局部变量: 通常,在函数内部创建变量时,该变量是局部变量,只能在该函数内部使用。要在函数内部创建全局变量,您可以使用 global 关键字。
# 注释
在 Python 中,单行注释用井号 #
标识。如 # 这是一行注释
。
多行注释用 """ """
或 ''' '''
标识。如:
""" | |
这是多行注释 | |
是多行注释 | |
多行注释 | |
行注释 | |
注释 | |
释 | |
""" | |
''' | |
这是多行注释 | |
是多行注释 | |
多行注释 | |
行注释 | |
注释 | |
释 | |
''' |
# Python 之禅
Python 之禅包含了 python 社区的理念。
只要你在解释器输入 import this
,就会出现 python 之禅的内容。
>>>import this | |
The Zen of Python, by Tim Peters | |
Beautiful is better than ugly. | |
Explicit is better than implicit. | |
Simple is better than complex. | |
Complex is better than complicated. | |
Flat is better than nested. | |
Sparse is better than dense. | |
Readability counts. | |
Special cases aren't special enough to break the rules. | |
Although practicality beats purity. | |
Errors should never pass silently. | |
Unless explicitly silenced. | |
In the face of ambiguity, refuse the temptation to guess. | |
There should be one-- and preferably only one --obvious way to do it. | |
Although that way may not be obvious at first unless you're Dutch. | |
Now is better than never. | |
Although never is often better than *right* now. | |
If the implementation is hard to explain, it's a bad idea. | |
If the implementation is easy to explain, it may be a good idea. | |
Namespaces are one honking great idea -- let's do more of those! | |
'''******************************************翻译为******************************************''' | |
''' | |
Python之禅 by Tim Peters | |
优美胜于丑陋(Python 以编写优美的代码为目标) | |
明了胜于晦涩(优美的代码应当是明了的,命名规范,风格相似) | |
简洁胜于复杂(优美的代码应当是简洁的,不要有复杂的内部实现) | |
复杂胜于凌乱(如果复杂不可避免,那代码间也不能有难懂的关系,要保持接口简洁) | |
扁平胜于嵌套(优美的代码应当是扁平的,不能有太多的嵌套) | |
间隔胜于紧凑(优美的代码有适当的间隔,不要奢望一行代码解决问题) | |
可读性很重要(优美的代码是可读的) | |
即便假借特例的实用性之名,也不可违背这些规则(这些规则至高无上) | |
不要包容所有错误,除非你确定需要这样做(精准地捕获异常,不写 except:pass 风格的代码) | |
当存在多种可能,不要尝试去猜测 | |
而是尽量找一种,最好是唯一一种明显的解决方案(如果不确定,就用穷举法) | |
虽然这并不容易,因为你不是 Python 之父(这里的 Dutch 是指 Guido ) | |
做也许好过不做,但不假思索就动手还不如不做(动手之前要细思量) | |
如果你无法向人描述你的方案,那肯定不是一个好方案;反之亦然(方案测评标准) | |
命名空间是一种绝妙的理念,我们应当多加利用(倡导与号召) | |
''' |
# 第一个 python 程序
print("Hello World!") |