1.变量

1.1变量作用

变量是用于存储数据

1.2变量定义规范

声明变量

name = "vita" pep8规范:等号两边要有空格

变量定义规则

  • 变量名只能是字母、数字、下划线的任意组合
  • 变量名的第一个字符不能是数字
  • 程序关键字不能是数字,例如if else while等

变量命名习惯

驼峰体 AgeOfVita = 27 下划线 age_of_vita = 27

变量定义的low方式

变量名为中文、拼音 名字 = "vita" 变量名过长 qeqweqwe_qweqweqw_qwewqeq 变量名词不达意 a = 23

1.3常量

常量定义

常量即指不变的量,如pai 3.1415926 ,或在程序运行过程中不会改变的量。 Python中没有专门的语法定义常量,程序员约定用变量名全部大写代表常量。 python中可自定义一个不修改的常量的类。

AGE_OF_VITA = 27

Java中定义常量,修改该常量会报错

public static final String SUNDAY = "SUNDAY";

c语言中定义常量,修改该常量也会报错

const int count = 60;

变量与常量用法示例

在使用中变量和常量没什么区别

Python 2.7.16 (v2.7.16:413a49145e, Mar  4 2019, 01:37:19) [MSC v.1500 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license()" for more information.
>>> a = 1
>>> b = a
>>> print(a)
1
>>> print(b)
1
>>> a=2
>>> print(a)
2
>>> print(b)
1
>>> 
>>> 
>>> A = 10
>>> B=A
>>> print(A)
10
>>> print(B)
10
>>> A=20
>>> print(A)
20
>>> print(B)
10
>>> 

2.读取用户输入

name = input("please input your name:")
age = input("please input your age:")
hometown = input("please input your hometown:")
print("your name is:"+name
      + " your age is:"+age
      + " your hometown is:"+hometown)
运行
E:\PythonProject\python-test\venvP3\Scripts\python.exe E:/PythonProject/python-test/BasicGrammer/test.py
please input your name:vita
please input your age:27
please input your hometown:jl
your name is:vita your age is:27 your hometown is:jl

3.注释

本行注释

age = input("please input your age:")    # age pep8规范:#号前面至少两个空格,后面一个空格

单行注释

hometown = input("please input your hometown:")
# print age pep8规范:#号前面无空格,后面一个空格

多行注释

"""
print age 
name hometown
"""
'''
print age 
name hometown
pep8规范:注释与下面的代码的空行不能多于两行
'''


print("your name is:"+name
      + " your age is:"+age
      + " your hometown is:"+hometown)

4.数据类型

4.1数字类型

4.1.1介绍

int(整型)

在32位机器上,整数的位数为32位,取值范围为-2**31~2**31 -1,即-2147483648~214748364
在64位系统上,整数的位数为64位,取值范围为-2**63~2**63-1,即-9223372036854775808~9223372036854775807

long(长整型)

跟C语言不同,Python的长整型没有指定宽度,即python没有限制长整数数值的大小,但实际上由于内存的限制,我们使用的长整数数值不可能无限大。

注意:

自从Python2.2起,如果整数发生溢出,Python会自动把int转换为long,所以现在在long数据后面不加字母L也不会导致严重后果了。
在Python3中没有int和long的区分了,全部都是int

除了int和long外,还有float浮点型,复数型

4.1.2Python2&3之int long

 (venvP3) E:\PythonProject\python-test>python2
Python 2.7.16 (v2.7.16:413a49145e, Mar  4 2019, 01:37:19) [MSC v.1500 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> type(2**4)
<type 'int'>
>>> type(2**65)
<type 'long'>
>>> quit()

(venvP3) E:\PythonProject\python-test>python3
Python 3.6.2 (v3.6.2:5fd33b5, Jul  8 2017, 04:57:36) [MSC v.1900 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> type(2**4)
<class 'int'>
>>> type(2**65)
<class 'int'>
>>>

4.2字符串

在Python中,加了引号的字符就被认为是字符串

4.2.1字符串种类

Name = "vita"   # 双引号
Age = "27"  # age是字符串
AgeNum = 27  # age是int
Msg = 'My name is vita,i am 27 years old!'  # 一对单引号
# 一对三个单引号
MsgThree = '''
My name is vita,
i am 27 years old!
'''
# 三个双引号
MsgDouThree = """
My name is vita,
i am 27 years old!
""" 

4.2.2单引号,双引号,多引号的区别

单引号和双引号没有任何区别,只是在下面情况下需要考虑单双引号配合

Msg = "my name is vita,I'm 27 years old"

多引号的作用是多行字符串,需要使用多引号

# 一对三个单引号
MsgThree = '''
My name is vita,
i am 27 years old!
'''
# 三个双引号
MsgDouThree = """
My name is vita,
i am 27 years old!
"""

4.2.3字符串拼接

字符串可以进行“相加”和“相乘”运算

>>> name = "vita"
>>> age = "27"
>>> print("your name is:"+name+" your age is:"+age)
your name is:vita your age is:27
>>> print("v"*3)
vvv

字符串不能喝整数拼接

>>> name = "vita"
>>> age = 27
>>> print(name+age)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: must be str, not int

4.3布尔型

布尔型就两个值,true和false,主要用于逻辑判断

>>> a =3
>>> b = 5
>>> a>b
False
>>> a<b
True

4.4格式化输出

name = input("input your name:")
age = input("input your age:")
hometown = input("input your hometown:")
msg = '''
------the info of %s is ------
name:       %s
age:        %s
hometown:   %s
------the info of end   ------
''' % (name, name, age, hometown)
print(msg)
E:\PythonProject\python-test\venvP3\Scripts\python.exe E:/PythonProject/python-test/BasicGrammer/test.py
input your name:vita
input your age:27
input your hometown:jl

------the info of vita is ------
name:       vita
age:        27
hometown:   jl
------the info of end   ------

4.5运算符

运算符种类算数运算符、比较运算符、逻辑运算符、赋值运算符


>>> a = 3
>>> b = 4
>>> a>b and a==3
False
>>> a<b and a==3
True

>>> a<b or a!=3
True
>>> a>b or a==3
True

>>> not a==3
False
>>>

4.6流程控制

4.6.1单分支

if 条件成立:
    执行代码
# _*_coding:utf-8_*_
"""
输入姓名,性别和年龄,
如果是女生且年龄小于28,输出我喜欢年轻女孩
"""
name = input("input your name:")
sex = input("input your sex(boy|BOY/girl|GIRL):")
#input()读入的age是字符串,要转换为int才能与28做大小比较
age = int(input("input your age:"))
if sex.lower() == "girl" and age < 28:
    print(name+" i like young girl")
E:\PythonProject\python-test\venvP3\Scripts\python.exe E:/PythonProject/python-test/BasicGrammer/singleif.py
input your name:vita
input your sex(boy|BOY/girl|GIRL):GIRL
input your age:26
vita i like young girl

4.6.2双分支

if 条件:
    条件满足,执行代码
else:
    条件不满足,执行代码
# _*_coding:utf-8_*_
"""
输入姓名,性别和年龄,
如果是女生
年龄小于28,输出我喜欢年轻女孩,
年龄不小于28,输出年龄比我大也可以
如果不是女生
输出我不喜欢男生
"""
name = input("input your name:")
sex = input("input your sex(boy|BOY/girl|GIRL):")
#input()读入的age是字符串,要转换为int才能与28做大小比较
age = int(input("input your age:"))
if sex.lower() == "girl" :
    if age < 28:
        print(name+" i like young girl")
    else:
        print("the age is greater than me is also ok!")
else:
    print("i do not like boy")
E:\PythonProject\python-test\venvP3\Scripts\python.exe E:/PythonProject/python-test/BasicGrammer/singleif.py
input your name:vita
input your sex(boy|BOY/girl|GIRL):girl
input your age:12
vita i like young girl

E:\PythonProject\python-test\venvP3\Scripts\python.exe E:/PythonProject/python-test/BasicGrammer/singleif.py
input your name:vita
input your sex(boy|BOY/girl|GIRL):girl
input your age:28
the age is greater than me is also ok!

E:\PythonProject\python-test\venvP3\Scripts\python.exe E:/PythonProject/python-test/BasicGrammer/singleif.py
input your name:vita
input your sex(boy|BOY/girl|GIRL):boy
input your age:23
i do not like boy

4.6.3多分支

if 条件:
    满足条件执行代码
elif 条件:
    上面条件不满足,执行这里
elif 条件:
    上面条件不满足,执行这里
else:
    所有条件都不满足,执行这里
# _*_coding:utf-8_*_
"""
输入姓名,性别和年龄,
如果是女生
年龄小于28,输出我喜欢年轻女孩,
年龄不小于28,输出年龄比我大也可以
如果不是女生
输出我不喜欢男生
"""
name = input("input your name:")
sex = input("input your sex(boy|BOY/girl|GIRL):")
#input()读入的age是字符串,要转换为int才能与28做大小比较
age = int(input("input your age:"))
if sex.lower() == "girl" :
    if age < 28:
        print(name+" i like young girl")
    else:
        print("the age is greater than me is also ok!")
elif sex.lower() == "boy":
    print("i do not like boy")
else:
    print("your input is not manual human")

E:\PythonProject\python-test\venvP3\Scripts\python.exe E:/PythonProject/python-test/BasicGrammer/singleif.py
input your name:vita
input your sex(boy|BOY/girl|GIRL):w
input your age:23
your input is not manual human

4.6.4while

while 条件:
    执行代码
"""
只打印1-10的偶数
"""
count = 0
while count < 10:
    if count%2 == 0:
        print(count)
    count = count + 1
E:\PythonProject\python-test\venvP3\Scripts\python.exe E:/PythonProject/python-test/BasicGrammer/test.py
0
2
4
6
8
"""
打印1-10,第五次不打印,6-8打印值的平方
"""
count = 0
while count <= 10:
    if count == 5:
        pass
    elif count>=6 and count<=8:
        print(count*count)
    else:
        print(count)
    count = count + 1

E:\PythonProject\python-test\venvP3\Scripts\python.exe E:/PythonProject/python-test/BasicGrammer/test.py
0
1
2
3
4
36
49
64
9
10

4.6.5死循环(dead loop)

只要运行起来,就不再停止,直到把内存耗尽

"""
只打印1-10的偶数
"""
count = 0
while count < 10:
    print(count)
    # count = count + 1
		#注释掉最后一行,程序一直成立,会一直运行

4.6.6循环终止

break:用于完全结束一个循环,跳出循环体执行循环后面的语句 continue:终止本次循环,下次的循环继续

"""
打印1-10,第五次不打印,6-8打印值的平方
"""
count = 0
while count <= 10:
    if count == 5:
        # 这里一定要记得把count+1,否则count就一直等于5,就死循环了
        count = count + 1
        continue
    elif count>=6 and count<=8:
        print(count*count)
    else:
        print(count)
    count = count + 1

E:\PythonProject\python-test\venvP3\Scripts\python.exe E:/PythonProject/python-test/BasicGrammer/test.py
0
1
2
3
4
36
49
64
9
10
"""
打印1-10,第五次不打印,6-8打印值的平方
"""
count = 0
while count <= 10:
    if count == 5:
        # 这里一定要记得把count+1,否则count就一直等于5,就死循环了
        count = count + 1
        break
    elif count>=6 and count<=8:
        print(count*count)
    else:
        print(count)
    count = count + 1

E:\PythonProject\python-test\venvP3\Scripts\python.exe E:/PythonProject/python-test/BasicGrammer/test.py
0
1
2
3
4

4.6.7while...else

只有在Python中有while...else while后面的else指,当while循环正常执行完,中间没有被break中止的话,就会执行else

count = 0
while count <= 3:
    if count == 2:
        count = count + 1
        continue
    else:
        print(count)
    count = count + 1
else:
    print("success")
		
		E:\PythonProject\python-test\venvP3\Scripts\python.exe E:/PythonProject/python-test/BasicGrammer/test.py
0
1
3
success

count = 0
while count <= 3:
    if count == 2:
        count = count + 1
        break
    else:
        print(count)
    count = count + 1
else:
    print("success")
		
		E:\PythonProject\python-test\venvP3\Scripts\python.exe E:/PythonProject/python-test/BasicGrammer/test.py
0
1

本章代码案例:

"""
猜年龄游戏:
允许用户最多猜三次,猜了三次后,询问是都继续玩,如果输入Y,可以继续猜三次,否则退出
"""
age = 23
count = 0
while count < 3:
    try:
        guess_age = int(input("input the age of you think:"))
    except ValueError:
        print("you should input one number!")
        count = count + 1
        continue

    if guess_age > 23:
        print("the age you input is too big!")
    elif guess_age < 23:
        print("the age you input is too small!")
    else:
        print("excellent!you are right!")
        break
    count = count + 1
    while count == 3:
        your_choice = input("you only have three chances,would you like to continue(Y|y/N|n):")
        if your_choice.lower() == "y":
            count = 0
        elif your_choice.lower() =="n":
            break
        else:
            print("your input is illegal!input again!")

运行

E:\PythonProject\python-test\venvP3\Scripts\python.exe E:/PythonProject/python-test/BasicGrammer/guessage.py
input the age of you think:2
the age you input is too small!
input the age of you think:45
the age you input is too big!
input the age of you think:33
the age you input is too big!
you only have three chances,would you like to continue(Y|y/N|n):y
input the age of you think:2w
you should input one number!
input the age of you think:24
the age you input is too big!
input the age of you think:55
the age you input is too big!
you only have three chances,would you like to continue(Y|y/N|n):y
input the age of you think:23
excellent!you are right!

Process finished with exit code 0