第一篇博客——python学习旅程开启
今天开始学习Python,以后会将自己的学习内容以及学习心得进行记录,以博客的形式和广大志同道合的朋友分享,如有错误还请大家能够批评指正,如果能帮到大家那就再好不过了。
今天的内容有些长,而且很简单,纯属是为了给自己回顾而写,加深印象,所以不接受吐槽。
在进入正式的python学习之前,你要知道的是python是一门动态解释型的强类型定义语言。
我们先来了解一下动态语言和静态语言的区别。动态类型语言是在运行时确定数据类型的语言,即永远不需要给任何变量指定数据类型。静态类型语言是指在编译时变量的数据类型即可确定的语言,多数静态类型语言要求在使用变量之前必须声明数据类型。
解释型指的是 不需要编译,在运行的时候将代码翻译成机器语言。打个比方,就是你在看一本外国小说的时候,编译型语言是直接让别人翻译好给你读;而解释型语言就是你边读,他边给你翻译,等你想要回过头再去看看前面章节的时候,他还需要给你重新翻译。所以相对来说,速度相比于编译型要慢那么一丢丢。
强类型定义语言是指强制数据类型定义的语言,一旦一个变量被指定了某个数据类型,如果不经过强制转换,那么久永远都是这个数据类型了。换句话说,强类型定义语言是类型安全的语言。
首先,需要安装IDE,大家都知道学python应该用pycharm来编写python的代码,好处多多,在此我就不进行赘述。
如果是一名学生,就不用花钱购买了,可以用教育邮箱,即xxxx@xxx.edu.cn这种形式的邮箱,来免费申请使用pycharm,具体申请方法大家自行百度。
需要说明的是,如果邮箱中被回复到的是已经提交申请,但是好几个小时均没有收到验证成功的提醒,请不要傻傻等待,直接去Jetbrain网站用你的注册登录即可。
我使用的是python 3.x的版本,建议大家都使用最新版的python,以后2.x版本要被淘汰。
装好以后,我们就可以写自己的第一个python小程序了,那就是Hello,world。毕竟仪式感还是要有滴嘛
print('Hello,world')
把一个变量赋给另一个变量,当前变量的值做修改,另一个变量的值会随着改变吗? 不妨看一下下面的代码
name = "Alex Li"
print("The name is",name)
name2 = name;
print("The names are",name,name2)
name = "Yang yang"
print("The names are",name,name2)
输出结果为:
The name is Alex Li
The names are Alex Li Alex Li
The names are Yang yang Alex Li
可以看到name的改变并不会影响到name2,name2的值仍然为第一次name赋给他的值。
接着写一个交互式的格式化输出的代码,体会格式化输出的几种方法。代码功能是打印一个人的身份信息。
name = input("name:")
age = input("age:")
job = input("job:")
salary = input("salary:")
1. 使用字符串拼接的方式进行格式化输出:可以看到,使用这种方法非常不直观,在进行实际代码编写的时候不到万不得已,非常不建议使用这种方法。
info1 = ''' info of ''' + name + '''
Name:''' + name + '''
Age:''' + age + '''
Job:''' + job + '''
Salary:''' + salary
print(info1)
看一下输出结果:
name:yangyang
age:18
job:student
salary:2000
--------info of yangyang -------
Name:yangyang
Age:18
Job:student
Salary:2000
2.使用.format 进行打印输出,这种方式是最规范的,也是我们需要熟练掌握使用的,一般在实际情况均使用这种方法。
info2 = '''
--------info of {_Name} -------#.format的方式做格式化输出
Name:{_Name}
Age:{_Age}
Job:{_Job}
Salary:{_Salary}'''.format(
_Name = name,
_Age = age,
_Job = job,
_Salary = salary)
print(info3)
3.使用.format的方式,变量与数字进行对应打印输出。可以看到这种方式很不直观,不方便阅读。
info3 = '''
--------info of {0} -------
Name:{0}
Age:{1}
Job:{2}
Salary:{3}'''.format(name,age,job,salary)
print(info3)
4.使用%s的方式对应变量打印
info4 = '''
--------info of %s -------
Name:%s
Age:%s
Job:%s
Salary:%s''' %(name,name,age,job,salary)
print(info4)
总之,第二种方法是最好的格式化打印方式。
接下来,写一个交互式的登录判断的功能,具体要求是输入的用户名和密码正确则显示登录成功,否则显示登录失败。来重温上面格式化输出的方法。
username = input("What's your username...?")
password = input("Please input your password")
user_name = 'yangyang'
pass_word = '123456'
if username == user_name and password == pass_word:
print("Welcome user {name} log in...".format(name = user_name))#这里用username或user_name均可
else:
print("Wrong username or password")
接下来写一个猜数字大小的小游戏,具体玩法是每回有3次猜测的机会,如果3次都没猜对,则系统自动询问是否还有继续,如果按下“no”,则退出,否则按任意键继续。
yang_age = 20
count = 0;
while count<3:
guess = int(input("Guess his age:"))
if guess == yang_age:
print("Congratulations!")
break # break的话本次循环结束
elif guess>yang_age:
print("Think smaller")
else:
print("Think bigger")
count = count+1 #count+=1
if count==3:
userwill = input("Do you want to keep guessing...?If you don't want to go on,please input no,otherwise you can input any other else")
if userwill != "no":
count = 0
运行结果如下:
Guess his age:0
Think bigger
Guess his age:50
Think smaller
Guess his age:18
Think bigger
Do you want to keep guessing...?If you don't want to go on,please input no,otherwise you can input any other else20
Guess his age:20
Congratulations!
可以看到这个程序主要是为了学习break的使用方法,break的功能是跳出循环。另外也可以使用for循环记性编写,如下:此时的功能有一点点不一样的地方,那就是超过3次猜错直接不允许玩了。for...else.。另外也有while...else的使用组合
yang = 56
for i in range(3):
guess = int(input("Guess his age:"))
if guess == yang:
print("Congratulations!")
break
elif guess>yang:
print("Think smaller")
else:
print("Think bigger")
else:
print("You have tried many times,fuck off")
本周的学习内容就是这么多,下周同一时间不见不散