目录
简单案例
py文件名只能是英文字母、数字和下划线的组合
Windows:
写test.py
print('hello, world')
PS D:\python-lessons> python .\test.py
hello, world
PS D:\python-lessons>
Linux:
有同学问,能不能像.exe文件那样直接运行.py
文件呢?在Windows上是不行的,但是,在Mac和Linux上是可以的,方法是在.py
文件的第一行加上一个特殊的注释:
#!/usr/bin/env python3
print('hello, world')
然后,通过命令给hello.py
以执行权限:
$ chmod a+x hello.py
就可以直接运行hello.py
了:
输入输出
输出
print('hello, world1')
输入
>>> name=input()
哈哈
>>> name
'哈哈'
>>>
字符编码
由于Python源代码也是一个文本文件,所以,当你的源代码中包含中文的时候,在保存源代码时,就需要务必指定保存为UTF-8编码。当Python解释器读取源代码时,为了让它按UTF-8编码读取,我们通常在文件开头写上这两行:
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
第一行注释是为了告诉Linux/OS X系统,这是一个Python可执行程序,Windows系统会忽略这个注释;
第二行注释是为了告诉Python解释器,按照UTF-8编码读取源代码,否则,你在源代码中写的中文输出可能会有乱码。
申明了UTF-8编码并不意味着你的.py
文件就是UTF-8编码的,必须并且要确保文本编辑器正在使用UTF-8 。
格式化
在Python中,采用的格式化方式和C语言是一致的,用%
实现,举例如下:
>>> 'Hi, %s, you have $%d.' % ('Michael', 1000000)
'Hi, Michael, you have $1000000.'
%
运算符就是用来格式化字符串的。在字符串内部,%s
表示用字符串替换,%d
表示用整数替换
其中,格式化整数和浮点数还可以指定是否补0和整数与小数的位数:
>>> print('%2d-%02d' % (3, 1))
3-01
>>> print('%.2f' % 3.1415926)
3.14
>>>
如果你不太确定应该用什么,%s
永远起作用,它会把任何数据类型转换为字符串:
>>> 'Age: %s. Gender: %s' % (25, True)
'Age: 25. Gender: True'
有些时候,字符串里面的%
是一个普通字符怎么办?这个时候就需要转义,用%%
来表示一个%
:
>>> 'growth rate: %d %%' % 7
'growth rate: 7 %'
format()
>>> 'Hello, {0}, 成绩提升了 {1:.1f}%'.format('小明', 17.125)
'Hello, 小明, 成绩提升了 17.1%'
list和tuple
ist和tuple是Python内置的有序集合,一个可变,一个不可变。根据需要来选择使用它们:
https://www.liaoxuefeng.com/wiki/1016959663602400/1017092876846880
条件判断
if <条件判断1>:
<执行1>
elif <条件判断2>:
<执行2>
elif <条件判断3>:
<执行3>
else:
<执行4>
注意不要少写了冒号:
if
判断条件还可以简写,只要x
是非零数值、非空字符串、非空list等,就判断为True
,否则为False,
比如写:
if x:
print('True')
循环
Python的循环有两种,
一种是for...in循环,依次把list或tuple中的每个元素迭代出来,看例子:
names = ['Michael', 'Bob', 'Tracy']
for name in names:
print(name)
第二种是while循环,只要条件满足,就不断循环:
sum = 0
n = 99
while n > 0:
sum = sum + n
n = n - 2
print(sum)
break:
n = 1
while n <= 100:
if n > 10: # 当n = 11时,条件满足,执行break语句
break # break语句会结束当前循环
print(n)
n = n + 1
print('END')
continue:
n = 0
while n < 10:
n = n + 1
if n % 2 == 0: # 如果n是偶数,执行continue语句
continue # continue语句会直接继续下一轮循环,后续的print()语句不会执行
print(n)
dict
dict全称dictionary,在其他语言中也称为map
>>> d = {'Michael': 95, 'Bob': 75, 'Tracy': 85}
>>> d['Michael']
95
请务必注意,dict内部存放的顺序和key放入的顺序是没有关系的。
和list比较,dict有以下几个特点:
- 查找和插入的速度极快,不会随着key的增加而变慢;
- 需要占用大量的内存,内存浪费多。
而list相反:
- 查找和插入的时间随着元素的增加而增加;
- 占用空间小,浪费内存很少。
所以,dict是用空间来换取时间的一种方法。
dict可以用在需要高速查找的很多地方,在Python代码中几乎无处不在。
set
set和dict类似,也是一组key的集合,但不存储value
>>> s = set([1, 2, 3])
>>> s
{1, 2, 3}