Python 3.5 之路 day1
首先python是一种面向对象、开源的、具有解析性的编程语言.接下来我们来看看python的基本一些语法.
学习一门语言,第一个程序就是Hello World程序.在Python里面,Hello World的程序代码如下:
print("Hello World")
从这句代码我们可以看出来,python是非常优雅简洁的,不像Java语言、C语言等其他语言那么繁琐.接下来我们来对比一下它们的Hello World程序.
Java:
class HelloWorld{
public static void main(String[] args){
System.out.println("Hello World");
}
}
C语言:
#include<stdio.h>
main(){
printf("Hello World\n");
}
C++:
#include <iostream>
using namespace std;
int main() {
cout << "Hello, World!";
}
这些语言相互对比,我们可以发现python在代码的书写上是完胜于其它语言的,不过在编译的效率上却慢于其它语言.
在python里面,标识符是由字母、数字、下划线组成,但是不能以数字开头,标识符的字母也是区分大小写的.如"Helloword"与"HellWord"是两个完全不同的标识符.切记python标识符里面没有"$",学过Java的可能会在这儿有所弄混.因为在python里面的"$"只能被当做是一个特殊字符.
接下里说说字符编码的演变过程:最开始的时候是ASCII编码,里面可以存255个字符,每个字符只占用了1bytes.但是编码是由外国人编的,外国人考虑到其它国家也会用到,但由于没有想到外文很多,字节不够用,于是就只留下来了128个字符的占位,所以最开始的ASCII编码就只有127个.但是光一个中国的汉字就是上万,128个占位根本不够用,所以又是怎么样解决这个问题的呢?于是后来人们想出来了扩展列表.就是在占位的地方再扩展出来一张列表来进行占位.所以正因为这样便出现了中文的字符编码,也就是1980年的GB3212,里面收录了中文汉字七千多个.随着发展,后来1995年又出现了GBK1.0,里面收录了汉字两万多个.到了2000年,发展到了GB18030,里面收录了汉字两万七千余个.但是每个国家有每个国家的编码,且这些编码并不统一,于是在安装运行的时候经常出现乱码的情况.为了解决这个问题,联合国于是制作出来了一套统一的标准UTF-8.在UTF-8中,英文只占一个字节,汉字占三个字节.
接下来我们说说输出语句,输出语句的语法是:
print("HelloWorld")
有以下程序:
name = "Bailinghu"
name2 = name
print("My name is ",name2)
在这个程序里面,我们对name进行赋值,然后把name的值再赋值给name2,所以运行之后的结果是:
My name is Bailinghu
在python里面,我们如果不想执行一个语句或者一段程序,我们可以将该语句或者该程序注释掉.python里面单行注释的语法是在语句前加"#",多行注释就是加"""语句"""或者'''语句'''.当然,多行注释的话还作为多行打印.
有以下程序:
name = "Bailinghu"
'''
name2 = "ZHANGSAN"
name = name2
'''
name3 = "WANGMAZI"
#print(name3)
print(name)
在这段代码里面,单引号里面的语句和#号后面的语句是不执行的.所以程序运行的结果是:
Bailinghu
在这段代码里面,如果我们想把引号内的内容打印出来,那我们只需要把它赋值给一个变量就行了.代码如下:
msg='''
name2 = "ZHANGSAN"
name = name2
'''
print(msg)
程序执行结果如下:
name2 = "ZHANGSAN"
name = name2
若我们要实现以下功能:用户可以输入自己的用户名和密码,则代码执行如下:
username = input("username:")
password = input("password:")
这里的input("")就是输入语法.然后运行的结果就是:
username:
password:
用户只需要输入用户名和密码就可以了.但是在各类软件和注册的网站上,我们输入密码是看不见的,所以我们要用密文表示.在python中有专门的可供调用的程序.即上述代码可以改成下面代码:
import getpass
username = input("username:")
password = getpass.getpass("password:")
这样用户在输入密码的时候就不能看见自己输入的密码了.
若在文件内存在着一个用户名和密码,这时候我们需要判断用户输入的用户名和密码是否正确.如果正确就显示"Welcome user 名字 login...",如果不正确就显示"Invalid username or password!".代码如下:
import getpass
_username = 'Bailinghu'
_password = 'abc123'
username = input("username:")
password = getpass.getpass("password:")
if _username == username and _password == password :
print("Welcome user {name} login...".format(name = username)) #format:格式,就是给大括号内name的赋值username的值.
else :
print("Invalid username or password")
这里使用了条件语句if-else,在这里要注意的是,在python中,所有的一级代码都要顶格书写,子代码会自动缩进.如果不这样写,那么代码执行的时候就会报"缩进错误"的错误.
接下来我们来做一个猜年龄游戏,设置翠花的年龄为56岁,当猜错的时候显示"think wrong.",猜对了就是"yes,you got it.".代码如下:
age_of_cuihua = 56
guess_age = input("guess age:")
if guess_age == age_of_cuihua :
print("yes,you got it.")
else :
print("think wrong")
在上面代码里面执行的时候,只能猜一次,且有时候运行时候报错"数据类型不同无法比较".为了实现持续可执行性.我们便要使用循环语句.如下:
age_of_cuihua = 56
while True :
guess_age = int(input("guess age:")) #把输入的语言强制转化成int型
if guess_age == age_of_cuihua :
print("yes,you got it.")
else :
print("think wrong")
这个程序就是不管猜对或者猜错都会一直运行下去.若我们要该程序只能猜三次,在猜对了就停止,猜大了就显示"think smaller",猜小了就显示"think smaller",且实现猜完之后连续错误显示"you have tried too many many times...fuck off".则代码如下:
age_of_cuihua = 56
count = 0
while count < 3 :
guess_age = int(input("guess age:"))
if guess_age == age_of_cuihua :
print("yes,you got it.")
break #跳出循环
elif guess_age > age_of_cuihua : # elif在其它语言里面就是 else if
print("think smaller...")
else :
print("think bigger!")
count += 1 # count += 1相当于count = count + 1
else:
print("you have tried too many times...fuck off")
若我们再要求猜错三次之后程序可再询问用户是否继续,则代码如下:
age_of cuihua = 56
count = 0
while count < 3 :
guess_age = int(intput("guess age:"))
if guess_age == age_of_cuihua :
print("yes,you got it.")
break
elif guess_age > age_of_cuihua :
print("think smaller...")
else :
print("think bigger!")
count += 1
if count == 3
countine_confirm = input("do you want to keep guessing..?")
if countine_confirm != 'n' :
count = 0
接下来我们来谈谈for语句的语法:
for i in range(0,10,1) : #从0开始,循环10次,1表示补偿为1,即一个一个循环.如果是2的话则是隔一个隔一个循环.i为自定义标识符,
print("loop ",i)
则程序运行结果如下:
loop 0
loop 1
loop 2
loop 3
loop 4
loop 5
loop 6
loop 7
loop 8
loop 9
再如有下程序:
for i in range(0,10) :
if i < 3 :
print("loop ",i)
else :
continue #跳出本次循环
print("hehe...")
则程序运行结果为:
loop 0
hehe...
loop 1
hehe...
loop 2
hehe...
接下里我们来一个表格,可以让用户输入名字、年龄、工作、工资,然后自动形成一个表格.先看第一种形式:
name = input("name:")
age = int(input("age:"))
job = input("job:")
salary = input("salary:")
info1 = '''
------info of %s ------
Name:%s
Age:%d
Job:%s
Salary:%s
'''%(name,name,age,job,salary)
print(info1)
第二种形式:
name = input("name:")
age = int(input("age:"))
job = input("job:")
salary = input("salary:")
info2 = '''
------info of {_name} ------
Name:{_name}
Age:{_age}
Job:{_job}
Salary:{_salary}
'''.format(_name = name,
_age = age
_job = job
_salary = salary)
print(info2)
第三种形式:
name = input("name:")
age = int(input("age:"))
job = input("job:")
salary = input("salary:")
info3 = '''
------info of {0} ------
Name:{1}
Age:{2}
Job:{3}
Salary:{4}
'''.format(name,name,age,job,salary)
print(info3)
在这三种形式里面,我们最常用的是第二种,因为第二种更加形象直观的看出来代码在那里表示的是什么意思.当然第三种也比较常用.但是有些时候我们只能使用第二种.假如我们输入"翠花,56,老师,1000",三种形式最终的执行结果都是:
------info of 翠花 ------
Name:翠花
Age:56
Job:老师
salary:1000
以上就是本次的基础知识.