【python课程学习1】——语言特点、字符编码、if-while-for

@第一周python学习记录

前言

将来会使用python做自动化测试脚本,所以在学习python的过程中将知识点和问题记录下来,是对自己的所学知识的总结,以及便于后面的复习和查看。

一、python语言特点

python是一门动态解释性的强类型定义语言。

编程语言为什么会有这两种翻译方式?
那是因为计算机不能直接理解高级语言,只能直接理解机器语言,所以必须要把高级语言翻译成机器语言,计算机才能执行高级语言编写的程序。
翻译的方式有两种,一个是编译,一个是解释。两种方式只是翻译的时间不同。

(1)解释性语言的定义:
解释性语言的程序不需要编译,在运行程序的时候才翻译,每个语句都是执行的时候才翻译。这样解释性语言每执行一次就需要逐行翻译一次,效率比较低。
现代解释性语言通常把源程序编译成中间代码,然后用解释器把中间代码一条条翻译成目标机器代码,一条条执行。

(2)编译性语言的定义:
编译性语言写的程序在被执行之前,需要一个专门的编译过程,把程序编译成为机器语言的文件,比如exe文件,以后要运行的话就不用重新翻译了,直接使用编译的结果就行了(exe文件),因为翻译只做了一次,运行时不需要翻译,所以编译型语言的程序执行效率高。

(3)强类型定义语言:
强制数据类型定义的语言,Java、.Net和C++等一些语言都是强制类型定义的,也就是说,一旦一个变量被指定了某个数据类型,如果不经过强制转换,那么它就永远是这个数据类型了。强类型定义语言是类型安全的语言。

(4)弱类型定义语言:
变量类型可以被忽略的语言。与强类型定义相反,一个变量可以赋不同数据类型的值。像VB,PHP等一些语言就属于弱类型语言。比如VBScript是弱类型定义的,在VBScript中就可以将字符串’12’和整数3进行连接得到字符串’123’,然后可以把它看成整数123,而不用显示转换。但其实他们的类型没有改变,VB只是在判断出一个表达式含有不同类型的变量之后,自动在这些变量前加了一个clong()或(int)()这样的转换函数而已。能做到这一点其实是归功于VB的编译器的智能化而已,这并非是VB语言本身的长处或短处。

(5)强类型语言和弱类型语言比较
强类型语言在速度上可能略逊色于弱类型语言,但是强类型语言带来的严谨性可以有效地帮助避免许多错误。另外,“这门语言是不是动态语言”与“这门语言是否类型安全”之间是完全没有联系的!

二、pycharm使用

2.1 pycharm首次使用

(1)创建项目(project )其中Pure Python选择python3版本
(2)右键单击项目,创建目录(Directory)。
(3)右键单击目录(Directory),新建Python File(文件.py格式)

2.2 py文件程序开头声明默认设置

程序开头默认

(1)点击View——Toolbar——Editor——File and Code Templates——Python Script进行设置。
例如可设置为:
补图templates英文意思解释
(2)再重新新建文件,即可设置生效。

备注:#!/usr/bin/python
指定 【/usr/bin/python】目录下的python解释器执行python脚本

#!/usr/bin/env python
这种用法是为了防止操作系统用户没有将python装在默认的/usr/bin路径里。当系统看到这一行的时候,首先会到env设置里查找python的安装路径,再调用对应路径下的解释器程序完成操作。

2.3 变量和字符编码

一、变量存储在内存中,存东西在里面方便调用,类似容器。
变量定义规则:
~变量名只能是字母、数字或下划线的任意组合
~变量名的第一个字符不能是数字

二、字符编码
(1)python默认编码
  python 2.x默认的字符编码是ASCII,默认的文件编码也是ASCII。
  python 3.x默认的字符编码是unicode,默认的文件编码是utf-8。
  
  备注:unicode:统一码、万国码、单一码。
  python3相比python2特别明显的变化是字符集默认支持中文,按照utf-8处理的,python2按照ASCII处理的。
  
  由于所有的系统、编程语言都默认支持unicode,所有我们的gbk编码软件放在其他国家电脑上,加载到内存里面,变成了unicode,中文就可正常展示。
  类似用如下的转码的过程:
    源有编码 -> unicode编码 -> 目的编码
    decode(“UTF-8”) 解码 --> unicode --> encode(“gbk”) 编码

(2)# -- coding:utf-8 -- 的作用
  在python2文件中,经常在文件开头看到“ #_coding:utf-8 _ ”语句,它的作用是告诉python解释器此.py文件是utf-8编码,需要用utf-8的编码去读取这个.py文件。
  在python3中就不用加入这句话。
  
(3)字符编码的历史
~ASCII 255 占1个字节(1byte)
~为表示中文 在1980年 出现编码方式GB2312 能表示7k+汉字
~为拓展中文 在1995年 出现编码方式GBK1.0 能表示2w+汉字
~继续拓展中文和图形 在2000年 出现编码方式GB18030 能表示2.7w+汉字
~~后来国际标准组织统一编码为unicode 占2个字节(2bytes)

为了解决英文占位问题(原来人家是1个字节,现在占2个字节,不好用),所以又出现了
~~utf-8 英文占位1字节,中文占位3字节。

二、代码注释
单行注释:#
多行注释:‘’‘ ’‘’或“”“ ”“”
‘’‘ ’‘’除了注释的意思还可以打印多行。例如:
单引号和双引号相同的意思,除非单套双,或双套单。三个单引号可打印多行

2.4 用户输入

(1)字符串的格式化
方式一:%的使用
%s:string 字符型
%d:double 整数型
%f:float 浮点型
%.2s——截取2位字符串
%10.2s——10位占位符,截取两位字符串
打印数据类型 :print(type(var)) 帮助验证赋值类型输入是否正确

方式二:format的使用
formt方法是一个通用于python3和python2所有版本的内置函数,它提供了许多格式化输出的样式;包括输出指定的内容,按照指定的格式进行输出等多种输出方式。
format实现格式化输出
(2)密码密文输入
在python中可用模块getpass中的getpass方法去实现,具体用法是:
import getpass
username = input(“username”)
password = getpass.getpass(“password”)
print(username,password)
需要注意的是,在pycharm中执行时,不会显示有密文方式,需要在cmd命令行中执行这个py文件才会有密文显示。

2.5 if 和 while

(1)if语句是判断 if else

(2)while是循环 while True:

(3)猜年龄小游戏,只有3次机会猜年龄是否正确

#猜年龄,只有三次机会,while实现,是否继续猜。
boy_age = 56
count = 0
while count<=2:
    guess_age = int(raw_input("you think age is:"))
    if boy_age == guess_age:
        print("you are great!,his age is {age}".format(age=boy_age))
        break
    elif boy_age > guess_age:
        print("littler ")
    elif boy_age < guess_age:
        print("bigger")
    else:
        print("other error")
    count = count + 1
    if count == 3:
        guess_again = raw_input("do you want to try?")
    if guess_again == 'n':
        break
    else:
        count = 0
else:
    print("too many times")
#猜年龄,只有三次机会,for实现
boy_age = 56
for i in range(3):
    guess_age = int(raw_input("you think age is:"))
    if boy_age == guess_age:
        print("you are great!,his age is {age}".format(age=boy_age))
        break
    elif boy_age > guess_age:
        print("littler ")
    elif boy_age < guess_age:
        print("bigger")
    else:
        print("other error")
else:
    print("too many times")

知识点总结,
~while作为循环结合if进行判断
~while的结束是break以及条件进行结束的
~while也可以有else这个分支
~if可以多个嵌套
~for循环的break,就不会执行else了。
~ i +=1 等于i=i+1
break是跳出当前循环,即结束目前整个循环(循环嵌套);continue是结束本次循环,继续下次循环。

2.6 for循环

(1)for 循环
for 循环是一种迭代循环机制,迭代即重复相同的逻辑操作,每次的操作都是基于上一次的结果而进行的。并且for循环可以遍历任何序列的项目,如一个列表或者一个字符串

for 循环的一般格式如下:
for in

注释:variable 为变量,用于控制被迭代的对象;sequence 是可迭代的对象多为列表或者字符串

for循环实例:

str="hello"
for i in str :
    print(i)

(2)for语句中的range()函数

如果你需要遍历数字序列,可以使用内置range()函数,它会生成数列。

range()的语法:

range(start,end,step=1)
(1) range(10):默认step=1,start=0,生成的可迭代对象,包含[0,1,2,3,4,5,6,7,8,9]
(2) range(1,10):指定start=1,end=10, 默认step=1,生成的可迭代对象,包含[1,2,3,4,5,6,7,8,9]
(3) range(1,10,2): 指定start=1,end=10, step=2,生成的可迭代对象,包含[1,3,5,7,9]

注:for基于range()实现计数循环,range()声称可迭代对象,说明for循环本质还是一种迭代循环
你可以结合range()和len()函数以遍历一个序列的索引,如下所示:

str=['hu','jin','xie','xu']
for i in range(len(str)) :
    print(i+1 ,str[i])

2.7 if-else 语句

Python编程中if语句用于控制程序的执行,基本形式为:

if 判断条件:
执行语句…
elif:
执行语句…
else:
执行语句…

其中“判断条件”成立时(非零),则执行后面的语句,执行的内容以缩进来区分表示同一范围。else为可选语句,当条件不成立时执行相关语句。

2.8 while循环

Python编程中while循环语句用于循环执行程序,即在某条件下,循环执行某段程序,以处理需要重复处理的相同任务,其基本形式如下:

while 判断条件:
执行语句…
else:
执行语句…

执行语句可以是单个语句块。判断语句可以是任何表达式,任何非零或非空的值均为True。当判断条件是Flase时,循环结束

while语句还有另外两个重要的命令continue,break来跳过循环,continue用来跳过该次循环,break则用来退出本次循环,此外“判断条件”还可以是个常数,表示循环必定成立

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值