第一周学习记录,这个阶段学习Python的语法。
一、开发IDE,使用的是PyCharm,新建一个project后,可以在里面设置一些默认的代码
# Author:BH
这是关于PyCharm设置相关,步骤:
点击 -->edictor-->Code Style-->File and Code Templates-->Python Script
在右侧的里面输入要添加的内容。(这部分有个注意,后面说)然后apply-->ok 即可设置成功,需要我们重新新建一个Python file即可看到效果。
还有关于程序的运行,鼠标点击右键-->Run
二、程序
2.1 Hello World
print ("Hello World!")
直接输出:
Hello World!
Process finished with exit code 0
2.2 变量
name = "Hei Han" name2 = name print("My name is ",name, name2) name = "Xu Da" print(name,name2) gf_of_zxy = "Liu De Hua"
定义变量时,直接写变量的名字即可,这是我在做了iOS时与OC/C语言不同的地方,很简单的定义,在OC/C都是需要首先设置数据类型的,以OC为例
Nsstring *name = @"Hei Han"
在Python中,不需要指定数据类型,这个很简洁。打印name的时候也和OC不同,OC在后面是一定要加上占位符的,%@、%d。。。。
Python里表达比较长的变量时候,是小写+下划线,OC中常用是驼峰方式,第一个单词小写,以后单词首字母大写,这个就不用多说了,做某一种语言开发的都有自己的规则。
2.3 input 和 条件判断
# Author:BH import getpass _username = "bh" _password = "123" username = input("username:") # password = getpass.getpass("password:") # 密文输入 getpass 在pycharm中 不好用 password = input("password:") # print(username, password) if username == _username and password == _password: print("Welcome user {name} login...".format(name = username)) else: print("Invalid username or password")
上面代码,是简单的一个登录小程序。这里需要学习的是input
input 输入函数,定义username 和 password 进行输入,当使用input函数,程序运行时,就会让用户进行输入操作。
条件判断,if...else,这里的语法与OC不同,并且使用的是 "and" OC中是逻辑运算符"&&",if里面的代码也不是使用{},而是使用:来决定作用域
这里需要注意一点,在条件判断下面的代码,必须要缩进,否则报错,缩进说明下面代码的作用域属于if语句。
上面的代码中还包含了import getpass,import是导入 框架/类库的意思 getpass 是Python中的一个对于密码密文显示的库,但是在PyCharm中,对于这个库的支持是不行的,我们可以在终端下,执行这个脚本,可以看到是密文。上面打印,还有一段是格式化输出,下面就介绍Python几种格式化输出。
2.4 注释
Python注释,单行注释:在代码前加 #code
多行注释:''' code '''
其中''' ''' 还可以用来表示多行字符串
2.4 字符串格式化
# Author:BH # raw_input 2.x input 3.x name = input("name:") age = int(input("age:")) # 强制转换 print(type(age), type(str(age))) #打印数据类型 job = input("job:") salary = input("salary:") info = ''' ------------ info of %s --------- Name:%s Age:%d Job:%s Salary:%s ''' % (name,name,age,job,salary) info2 = ''' ------------ info of {_name} --------- Name:{_name} Age:{_age} Job:{_job} Salary:{_salary} ''' .format(_name = name, _job = job, _age = age, _salary = salary) info3 = ''' ------------ info of {0} --------- Name:{0} Age:{1} Job:{2} Salary:{3} ''' .format(name,job,age,salary) print(info3)
三种字符串,格式化方式
2.4.1
info = ''' ------------ info of %s --------- Name:%s Age:%d Job:%s Salary:%s ''' % (name,name,age,job,salary)
和OC语言类似,使用占位符占位,%s 代表字符串,%d就是整型,%f 就是浮点型最后加一个%(变量名)
2.4.2
info2 = ''' ------------ info of {_name} --------- Name:{_name} Age:{_age} Job:{_job} Salary:{_salary} ''' .format(_name = name, _job = job, _age = age, _salary = salary)
{形参} 占位,最后.format()给各个参数赋值。
info3 = ''' ------------ info of {0} --------- Name:{0} Age:{1} Job:{2} Salary:{3} ''' .format(name,job,age,salary
这种方式{数字顺序}后面接.format(变量名),这种方式不好,0 1 2这类数字很难表达具体含义,不推荐
2.5循环
2.5.1 while
# Author:BH count = 0 while True: print("count:",count) count += 1 if count == 1000 : break
和OC类似 while 条件: 缩进进入循环作用域
2.5.2 for
for i in range(10): print("-------",i) for j in range(10): print(j) if j >5: break
格式:for 临时变量 in range(循环次数):
循环中都设计break和continue关键字,与OC语言相同,break跳出当前循环,循环结束;continue跳出当次循环,继续下一次循环
上面红字说到注意的地方,其实就是Python版本的问题,现在Python2.x 和 Python3.x 我的文字都是基于Python3.x
注意1:Python2.x 不支持中文所以要在脚本程序最上面加上一句代码
# -*- coding:utf-8 -*-
代码编码utf-8否则,输入中文报错。Python3.x不存在这个问题。
注意2:Python2.x 中raw_input 和 Python3.x的input等价
注意3:Python3.x 中input函数输入 默认是字符串类型,如果想要输入整型,需要强制转换。