前言:

由于博主最近开始研究机器学习,第一个首要任务便是学习Python的基本语法,因为很多机器学习库都是基于Python的,这里记录了自己的首个Python学习日志,供自己和初学者学习!

声明:由于博主自己使用的是Python3之后的,所以代码都是基于Python3的

一个简单的入门程序

记得自己之前在看别人写好的简历上发现了一句牛逼的话语:精通各种语言的HelloWorld编程。。。。。这里也是以一个Python中的Hello World程序来介绍

hello.py代码如下:

1
2
3
#!/usr/bin/env python
-*-coding:utf-8-*-
print("Hello World!");

首先,第3行代码用来打印”Hello World”,第2行代码指定解释器我们使用UTF-8编码,第1行代码是当我们希望在Linux下面希望像shell脚本一样执行Python脚本(如下),此时我们就需要指定Python的解释器:

./hello.py

Python中的注释

在我们学习了一个入门程序之后,我们最迫切的便是每个编程语言的注释,尤其是对于我们自己不太理解的地方,我们往往会在代码附近通过注释做上笔记

  1. 表示单行注释,Python会把Python后面的内容全部注释

  2. ‘’’ 或 “”” ,三个单引号或者三个双引号,用来表示多行注释,当然这里也可以是单行注释(当我们’’’的开始和结束都写在一行的时候)

示例:

1
2
3
4
5
6
7
# 这里是单行注释
'''
这里表示多行注释
这里表示多行注释
这里表示多行注释
'''
'''这里也可以表示单行注释'''

三个单引号或者三个双引号的额外用处:

例子1:

1
2
3
4
5
6
7
8
9
10
11
12
13
name = input("请输入姓名:");
age = int(input("请输入年龄:"));
job = input("请输入工作:");
salary = input("请输入薪水:");

output = '''-----------info of %s-----
Name: %s
Age: %d
Job: %s
Salary: %s
'''

print(output % (name, name, age, job, salary));

例子2:

1
2
3
4
5
6
7
8
9
10
11
12
13
name = input("请输入姓名:");
age = int(input("请输入年龄:"));
job = input("请输入工作:");
salary = input("请输入薪水:");

info2 = '''
---------------info of ${_name_} --------------
Name: {_name_}
Age: {_age_}
Job: {_job_}
Salary: {_salary_}
'''.format(_name_=name,_age_=age,_job_=job,_salary_=salary);
print(info2);

例子3:根据顺序

1
2
3
4
5
6
7
8
9
10
11
12
13
name = input("请输入姓名:");
age = int(input("请输入年龄:"));
job = input("请输入工作:");
salary = input("请输入薪水:");

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

例子4:使用拼接

1
2
3
4
5
6
7
8
9
10
11
12
13
name = input("请输入姓名:");
age = int(input("请输入年龄:"));
job = input("请输入工作:");
salary = input("请输入薪水:");

info4 = '''
---------------info of ''' + name + '''
Name:''' + name + '''
Age:''' + str(age) + '''
Job:''' + job + '''
Salary:''' + salary + '''
''';
print(info4);

注意:对于字符串,官方不建议采用字符串拼接的方式,因为每次字符串拼接都会额外开辟一块内存,对于拼接次数过多,不建议使用!


接收用户的输入

接受用户普通的输入

Python可以使用input()函数来接受用户的输入,但是在Python2中还可以使用raw_input()用来获取用户的输入,等同于Python3中的input(),并且input()在python2中将会根据用户的输入自动决定类型,而不像Python3一样接受用户输入之后一定是字符串类型。

代码如下:

1
2
3
4
5
6

#将用户输入的内容赋值给username,并且username将会是字符串
username = input("Please input your username:");

# 如果在Python2中,我们可以使用如下代码,等同于Python3中的input()
# username2 = raw_input("Please input your username:");

Python2中的代码如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
>>> a = raw_input("Please input your username:");
Please input your username:aaa
>>> a
'aaa'
>>> a = input();
"dd"
>>> a
'dd'
>>> print(type(a));
<type 'str'>
>>> a = input();
122
>>> print(type(a));
<type 'int'>
>>>

可以看出,在Python3中,input()将会得到一个字符串,等同于Python2中的raw_input(),但是在Python2中,当我们采用input()函数的时候,如果用户输入了双引号或者单引号,那么将会是一个字符串;如果用户输入的是纯数字,那么将会得到一个整形的数据!

接收用户的特殊输入(不可见输入)

当我们需要用户输入一些敏感词的时候,我们希望不会以明文的形式显示,而是希望能够以特别的方式进行展示,例如当我们输入密码的时候,并不会将我们输入的密码进行显示!

1
2
3
4
import getpass;
username = input("Please input your username:");
password = getpass.getpass("Please input your password:");
print(username, password);

需要注意的是:由于Pycharm中不支持这样输入密码,因此我们需要进入该Python文件所在目录,执行Python test.py,当我们输入密码的时候,我们就可以看到效果


Python中的类型转换

由于input()在Python3中将会返回一个字符串,所以即使我们输入了纯数字,也会被识别为一个字符串,因此我们需要进行类型转换。

1
2
3
4
5
6
7
8
9
10
11

num1 = input("Please input first number");
print(type(num1)); #

# 将字符串转换为一个整形数据
num1 = int(num1);
print(type(num1));

# 将整形数据转换为一个字符串
num1 = str(num1);
print(type(num1));

结果如下:

1
2
3
4
Please input first number:5
<class 'str'>
<class 'int'>
<class 'str'>


if语句

最基本的if–else语句

当我们只有一个分支的时候我们只需要使用一个分支语句,也就是if-else语句

1
2
3
4
5
6
7
8
9
10
11
12
13
14
username = input("请输入用户名:");
password = input("请输入密码:");
# password = getpass.getpass("请输入密码:"); #这句话在pycharm中不好使,需要手动进入目录使用命令行执行,所以这里进行了注释
print(username, password);



# 下面实现一个逻辑判断,判断用户名和密码正确与否
_username = "admin";
_password = "admin";
if _username == username and _password == password:
print("Welcome {name} login....".format(name=username));
else:
print("Invalid username or password");

注意:我们在Python中使用if语句,不仅仅需要在if和else后面的语句后面加上1个冒号;更重要的是我们在写if和else的子句的时候,前面需要缩进,这里的缩进也就是我们其他语言里面的括号。

进阶的if-elif-else语句

1
2
3
4
5
6
7
8
9
10
11
12
13
14
age_of_oldboy = 56;
count = 0;
while count < 3:
guess_age = int(input("guess age:"));
if guess_age == age_of_oldboy:
print("Congradualtions,you got it");
break;
elif guess_age > age_of_oldboy:
print("You should think smaller!");
else:
print("You should think bigger!");
count += 1;
else:
print("Sorry,you have tried too many times!");

while语句

Python中的while字句也可以搭配else子句,当while无法进行的时候,将会执行else语句

1
2
3
4
5
6
7
8
9
10
11
12
13
14
age_of_oldboy = 56;
count = 0;
while count < 3:
guess_age = int(input("guess age:"));
if guess_age == age_of_oldboy:
print("Congradualtions,you got it");
break;
elif guess_age > age_of_oldboy:
print("You should think smaller!");
else:
print("You should think bigger!");
count += 1;
else:
print("Sorry,you have tried too many times!");

for语句

当我们使用Python中的for语句的时候,需要注意range()中可以指定3个参数,第1个参数是开始的数字,第2个参数是结束的数字n(也就是到n-1),第3个参数是每隔多少次执行一次循环

例1:

1
2
3
4
5
6
7
8
9
10
11
12

# 将会打印0-9
for i in range(10):
print(i);

# 将会打印22-89
for i in range(22,90):
print(i);

# 只打印偶数,从零开始,每隔2个打印一下
for i in range(0,10,2):
print(i)

例2:

1
2
3
4
5
6
7
8
9
10
11
12
13
14

age_of_oldboy = 56;

for i in range(3):
guess_age = int(input("guess age:"));
if(guess_age == age_of_oldboy):
print("Congratulations,you have got it...");
break;
elif guess_age > age_of_oldboy:
print("Please Think Smaller...");
else:
print("Please Think Bigger...");
else:
print("Sorry,You have tried too many times");


综合应用:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
age_of_oldboy = 56;
count = 0;
while count < 3:
guess_age = int(input("guess age:"));
if guess_age == age_of_oldboy:
print("Congratulations,you have got it");
break;
elif guess_age > age_of_oldboy:
print("You should think smaller!");
else:
print("You should think bigger!");
count += 1;
if count == 3:
cotinue_confirm = input("Please confirm if continue:");
if cotinue_confirm != 'n':
count = 0;

总结:这篇文章仅仅是我记录学习的一小步,但是对自己来说却进步了一大步!Python,一定会是我手中的利器!