python基础知识说明

1.列出python中的标识符命名规则

  1. 标示符由字母、下划线和数字组成
  2. 数字不能开头
  3. 不能有特殊符号:,/,;,#
  4. python中的标识符是区分大小写的
  5. pycharm不要使用test开头来作为文件名,因为test开头会默认为是测试文件,eclipse无所谓
  6. 命名规则:见名知义、驼峰式命名
  7. 不允许开发者自己定义和关键字相同的名字的标示符

思考:下面的标示符哪些是正确的,哪些不正确为什么

fromNo12 from#12 my_Boolean my-Boolean Obj2 2ndObj myInt

test1 Mike2jack My_tExt _test test!32haha(da)ttint jack_rose jack&rose GUI G.U.I

不正确:from#12 2ndObj test!32haha(da)ttint jack&rose G.U.I

2.详细说明python中的数据类型

1.整数

Python可以处理任意大小的整数,当然包括负整数,在程序中的表示方法和数学上的写法一模一样,例如:1,100,-8080,0,等等。

计算机由于使用二进制,所以,有时候用十六进制表示整数比较方便,十六进制用0x前缀和0-9,a-f表示,例如:0xff00,0xa5b4c3d2,等等。

2.浮点数

浮点数也就是小数,之所以称为浮点数,是因为按照科学记数法表示时,一个浮点数的小数点位置是可变的,比如,1.23x109和12.3x108是完全相等的。浮点数可以用数学写法,如1.23,3.14,-9.01,等等。但是对于很大或很小的浮点数,就必须用科学计数法表示,把10用e替代,1.23x109就是1.23e9,或者12.3e8,0.000012可以写成1.2e-5,等等。

整数和浮点数在计算机内部存储的方式是不同的,整数运算永远是精确的(除法难道也是精确的?是的!),而浮点数运算则可能会有四舍五入的误差。

3.字符串

字符串是**以单引号'或双引号"**括起来的任意文本,比如'abc'"xyz"等等。请注意,’‘或"“本身只是一种表示方式,不是字符串的一部分,因此,字符串’abc’只有a,b,c这3个字符。如果’本身也是一个字符,那就可以用”"括起来,比如"I’m OK"包含的字符是I,’,m,空格,O,K这6个字符。

如果字符串内部既包含’又包含"怎么办?可以用转义字符\来标识,比如:

'I\'m \"OK\"!'

表示的字符串内容是:

I'm "OK"!

转义字符\可以转义很多字符,比如\n表示换行,\t表示制表符,字符\本身也要转义,所以\\表示的字符就是\,可以在Python的交互式命令行用print()打印字符串看看:

如果字符串里面有很多字符都需要转义,就需要加很多\,为了简化,Python还允许用r’‘表示’'内部的字符串默认不转义,可以自己试试:

如果字符串内部有很多换行,用\n写在一行里不好阅读,为了简化,Python允许用’’’…’’'的格式表示多行内容

print('''hello
world
python
''')

4.布尔值

布尔值和布尔代数的表示完全一致,一个布尔值只有True、False两种值,要么是True,要么是False,在Python中,可以直接用True、False表示布尔值(请注意大小写),也可以通过布尔运算计算出来

布尔值可以用and、or和not运算。

and运算是与运算,只有所有都为True,and运算结果才是True:

5.空值

空值是Python里一个特殊的值,用None表示。None不能理解为0,因为0是有意义的,而None是一个特殊的空值。

此外,Python还提供了列表、字典等多种数据类型,还允许创建自定义数据类型

怎样知道一个变量的类型呢?

在python中,只要定义了一个变量,而且它有数据,那么它的类型就已经确定了,不需要咱们开发者主动的去说明它的类型,系统会自动辨别

可以使用type(变量的名字),来查看变量的类型

a=10
a="abcd"
a=3.14
print(a)
print(type(a))
b='qwer'
print(b)
print(type(b))
str1='i\'m ok'
str2="i'm ok"
print(str1)
print(str2)
print('''hello
world
python
''')
flag=True
flag=False
str=None

6.字符串String

String字符串:不可变类型

1.下标索引

所谓下标,就是编号,就好比超市中的存储柜的编号,通过这个编号就能找到相应的存储空间

字符串实际上就是字符的数组,所以也支持下标索引,可通过下标索引来获取对应位置的值

从左边数下标是从0开始,从右边数是从-1开始。

如果想取出部分字符,那么可以通过下标的方法,(注意python中从左边数下标是从0开始,从右边数是从-1开始。)

2.切片(分片)

切片是指对操作的对象截取其中一部分的操作。字符串、列表、元组都支持切片操作。类似substring

切片的语法:

[起始:结束:步长]

步长:表示下标变化的规律。

注意:选取的区间属于左闭右开型,即从"起始"位开始,到"结束"位的前一位结束(不包含结束位本身)。

注意:如果步长为负数,则代表从右往左列出,起始位置要比介绍位置索引大

7.列表List

Python内置的一种数据类型是列表:list。list是一种有序的集合,可以随时添加和删除其中的元素。

列表用[ ]标识,用len()函数可以获取list元素个数,可以用下标索引来获取指定位置的元素。

列表中存放的数据是可以进行修改的,比如"增"、“删”、“改”"

1.添加元素("增"append, extend, insert)

a.append(b) :将b完整追加到a中

a.extend(b):将表中元素一个一个取出来加到a中

a.insert(index,object): 在指定位置index前插入元素object

2.修改

修改元素的时候,要通过下标来确定要修改的是哪个元素,然后才能进行修改

3.查找

所谓的查找,就是看看指定的元素是否存在

in(存在),如果存在那么结果为true,否则为false

not in(不存在),如果不存在那么结果为true,否则false

index, count index和count与字符串中的用法相同

4删除:

del:根据下标进行删除,其实可以删除所有变量

pop:默认删除最后一个元素

remove:根据元素的值进行删除第一个

5.排序:

sort方法是将list按特定顺序重新排列,默认为由小到大,参数reverse=True可改为倒序,由大到小。

  • 注意sort使用的时候元素的类型要一致

reverse方法是将list逆置。

6.按键值对形式输出列表中元素的下标和值: enumerate()

8.元组tuple

Python的元组与列表类似,不同之处在于元组的元素不能修改。元组使用小括号,列表使用方括号。

元组的元素不可修改,用()用作标识。

元素不可变指的是元素的指向不可变,当某个位置的元素指向一个list列表时,不可再指向其他列表,但是这个列表内的元素是可以被改变的。

1.访问

可以用下标来访问元组中元素

2.修改

python不允许修改元组的数据,包括不能删除其中的元素

9.字典dict和set

Python内置了字典:dict的支持,dict全称dictionary,在其他语言中也称为map,使用键-值(key-value)存储,具有极快的查找速度。

字典中的key不可以重复,如果有重复,覆盖之前的值
value可以重复
value可以为空
set:没有值的dict

dict是一个可变类型

  • 字典和列表一样,也能够存储多个数据
  • 列表中找某个元素时,是根据下标进行的
  • 字典中找某个元素时,是根据’名字’(就是冒号:前面的那个值,例如上面代码中的’name’、‘id’、‘sex’)
  • 字典的每个元素由2部分组成,键:值。例如 ‘name’:‘班长’ ,'name’为键,'班长’为值

若访问不存在的键,则会报错

在我们不确定字典中是否存在某个键而又想获取其值时,可以使用get方法,还可以设置默认值

注:通过key获取元素的value时,可能会有key不存在的情况,就就会报错。

​ 还有一种方式可以获取值: 字典名.get(“key”)

​ 这种方式如果key不存在的话不会报错,接收结果的对象为None 空值

  1. 修改元素:

    字典的每个元素中的数据是可以修改的,只要通过key找到,即可修改

  2. 添加元素:

    如果在使用 变量名[‘键’] = 数据 时,这个“键”在字典中,不存在,那么就会新增这个元素

  3. 删除元素

    demo:del删除指定的元素

可变类型与不可变类型

  1. 可变类型,值可以改变

    • 列表 list
    • 字典 dict
    • set (没有value的字典)
  2. 不可变类型,值不可以改变:

    • 数值类型 int, long, bool, float

    • 字符串 str

    • 元组 tuple

3.列出python中的运算规则

1.算术运算符

运算符 描述 实例
+ 两个对象相加 a + b 输出结果 30
- 得到负数或是一个数减去另一个数 a - b 输出结果 -10
* 两个数相乘或是返回一个被重复若干次的字符串 a * b 输出结果 200
/ x除以y b / a 输出结果 2
// 取整除 返回商的整数部分 9//2 输出结果 4 , 9.0//2.0 输出结果 4.0
% 取余(取模) 返回除法的余数 b % a 输出结果 0
** 返回x的y次幂 a**b 为10的20次方, 输出结果 100000000000000000000

2.赋值运算符

运算符 描述 实例
= 赋值运算符 把=号右边的结果给左边的变量 num=1+2*3 结果num的值为7

3.复合赋值运算符

运算符 描述 实例
+= 加法赋值运算符 c += a 等效于 c = c + a
-= 减法赋值运算符 c -= a 等效于 c = c - a
*= 乘法赋值运算符 c *= a 等效于 c = c * a
/= 除法赋值运算符 c /= a 等效于 c = c / a
%= 取模赋值运算符 c %= a 等效于 c = c % a
**= 幂赋值运算符 c **= a 等效于 c = c ** a
//= 取整除赋值运算符 c //= a 等效于 c = c // a

注意:Python中没有a++,a–,++a,–a等操作

4.逻辑运算符

运算符 逻辑表达式 描述 实例
and x and y 布尔"与" - 如果 x 为 False,x and y 返回 False,否则它返回 y 的计算值。 (a and b) 返回 20。
or x or y 布尔"或" - 如果 x 是 True,它返回 True,否则它返回 y 的计算值。 (a or b) 返回 10。
not not x 布尔"非" - 如果 x 为 True,返回 False 。如果 x 为 False,它返回 True。 not(a and b) 返回 False

5.比较(关系)运算符

运算符 描述 示例
== 检查两个操作数的值是否相等,如果是则条件变为真。 如a=3,b=3则(a == b) 为 true.
!= 检查两个操作数的值是否相等,如果值不相等,则条件变为真。 如a=1,b=3则(a != b) 为 true.
<> 检查两个操作数的值是否相等,如果值不相等,则条件变为真。 如a=1,b=3则(a <> b) 为 true。这个类似于 != 运算符
> 检查左操作数的值是否大于右操作数的值,如果是,则条件成立。 如a=7,b=3则(a > b) 为 true.
< 检查左操作数的值是否小于右操作数的值,如果是,则条件成立。 如a=7,b=3则(a < b) 为 false.
>= 检查左操作数的值是否大于或等于右操作数的值,如果是,则条件成立。 如a=3,b=3则(a >= b) 为 true.
<= 检查左操作数的值是否小于或等于右操作数的值,如果是,则条件成立。 如a=3,b=3则(a <= b) 为 true.

4.列出python中的循环和分支

1. if elif else条件判断

if <条件判断1>:
    <执行1>
elif <条件判断2>:
    <执行2>
elif <条件判断3>:
    <执行3>
else:
    <执行4>
    
age = input("请输入年龄:")
age = int(age)
if (age < 20):
    print("小孩")
elif (age < 40):
    print("青年")
else:
    print("老年")

2.if嵌套

if 条件1:
	满足条件1 做的事情1 
	满足条件1 做的事情2 
	...(省略)... 
	if 条件2: 
		满足条件2 做的事情1 
		满足条件2 做的事情2 
	...(省略)... 

3.while循环

while 条件:
        条件满足时,做的事情1
        条件满足时,做的事情2
        条件满足时,做的事情3
        ...(省略)...

4.while循环嵌套

while 条件1:
        条件1满足时,做的事情1
        条件1满足时,做的事情2
        条件1满足时,做的事情3
        ...(省略)...
        while 条件2:
            条件2满足时,做的事情1
            条件2满足时,做的事情2
            条件2满足时,做的事情3
            ...(省略)...
# 九九乘法表
i = 1
while (i <= 9):
    j = 1
    while (j <= i):
        print("%d*%d=%d" % (i, j, i * j), end='\t')
        j += 1;
    print()
    i += 1

5.for循环

for 临时变量 in 列表或者字符串等:
        循环满足条件时执行的代码
    else:
        循环不满足条件时执行的代码
        
# 九九乘法表
for i in range(1,10):
    for j in range(1,i+1):
        print("%d*%d=%d"%(i,j,i*j),end='\t')
    print()

5.写一个计算器程序:用循环封装,从控制台输入数据和运算符,能够从控制台退出。

'''
写一个计算器程序:用循环封装,从控制台输入数据和运算符,能够从控制台退出。
@author:cw
'''


# 进行运算的函数
def operator(num1, num2, opt):
    num1 = int(num1)
    num2 = int(num2)
    if (opt == "+"):
        return num1 + num2
    elif (opt == "-"):
        return num1 - num2
    elif (opt == "*"):
        return num1 * num2
    elif (opt == "/"):
        return num1 / num2


# 判断数据是否符合要求
def judgeNum(num, id):
    if (num == "q"):
        return False
    elif (num.isdigit() == False):
        while (True):
            print("输入错误!请重新输入第[", id, "]位数据")
            num = input("请输入数据:")
            if (num.isdigit()):
                break
            elif (num == "q"):
                return False
    return num


# 判断操作符是否符合要求
def judgeOpt(opt):
    if (opt not in ["+", "-", "*", "/"]):
        while (True):
            print("操作符不符合要求,应为:[+,-,*,/]中的一个")
            opt = input("请重新输入操作符:")
            if (opt in ["+", "-", "*", "/"]):
                return opt
    else:
        return opt


while (True):
    n1 = input("请输入数据1:")
    n1 = judgeNum(n1, 1)
    if (n1 == False):
        break
    n2 = input("请输入数据2:")
    n2 = judgeNum(n2, 2)
    if (n2 == False):
        break
    opt = input("请输入操作符:")
    opt = judgeOpt(opt)
    result = operator(n1, n2, opt)
    print("%s%s%s=%s" % (n1, opt, n2, result));

posted @ 2019-07-12 20:30  陈小哥cw  阅读(159)  评论(0编辑  收藏  举报