目录
字面量:在代码中,被写下来的固定的值,称为字面值。
| 类型 | 描述 | 说明 |
| 数字(Number) | 支持 -整数(int) -浮点数(fooat) -复数(complex) -布尔(boot) | 整数(int):10 ,-10 浮点数(float):13.14 ,-13.14 复数(complex):4+3j,以j结尾表示符输 布尔(bool):表达现实生活中的逻辑,即真和假,True表示真,False表示假(True本质上是一个数字记做1,False记作0) |
| 字符串(String) | 描述文本的一种数据类型 | 字符串(String)由任意数量的字符组成 |
| 列表(List) | 有序的可变序列 | Python中使用最频繁的数据类型,可有序记录一堆数据 |
| 元组(Tuple) | 有序的不可变序列 | 可有序记录一堆不可变的Python数据集合 |
| 集合(Set) | 无序不重复集合 | 可无序记录一堆不重复的Python数据集合 |
| 字典(Dictionary) | 无序Key-Value集合 | 可无序记录一堆Key-Value型的Python数据集合 |
字符串(string)又称文本,是由任意数量的字符如中文,英文,各类符号,数字等组成,所以叫做字符的串。
需要注意的是:Python中,字符串需要双引号("")包围起来。被双引号包围的都是字符串。
- >>> name = "Alex Li" #双引号
- >>> age = "22" #只要加引号就是字符串
- >>> age2 = 22 #int型在这里是
- >>>
- >>> msg = '''My name is Alex, I am 22 years old''' #三个引号也可以表示字符型
- >>>
- >>> hometown = 'ShangDong' #单引号也可以
单引号和双引号没有任何区别,只有下面这种情况需要注意单双引号的配合
msg = "My name is Alex , I'm 22 years old!"
多引号作用就是多行字符串必须用多引号
- msg = '''
- 今天是个好日子
- 今天开启py学习
- py学起来很好玩
- '''
- print (msg)
数字可以进行加减乘除等运算,字符串同样可以使用
- >>> age = '22'
- >>> name = 'Alex Li'
- >>> name + age
- >>> 'Alex Li22'
- >>> name * 10
- >>> 'Alex LiAlex LiAlex LiAlex LiAlex LiAlex LiAlex LiAlex LiAlex LiAlex Li'
不用尝试相减、相除、臣妾办不到呀。
注意,字符串的拼接只能是双方都是字符型,不能跟数字或其他类型拼接
- >>> name = "Aliex Li"
- >>> age = 23
- >>>
- >>> type(name),type(age)
- (<class 'str'>, <class 'int'>)
- #name是字符型 age是整形
- >>>
- >>> name + age
- #报错信息
- Traceback (most recent call last):
- File "
" , line 1, in - name + age
- TypeError: can only concatenate str (not "int") to str
布尔类型很简单,就两个值,一个True(真),一个False(假),主要用作逻辑判断。
但对于初学者并不是很明白这句话说明意思,简单说,我现在有两个值,a=3,b=5我说a>b你说成立吗?结果肯定是不成立,但是计算机怎么去描述这不成立呢?或者说a
答案肯定是,用布尔类型
- >>> a=3
- >>> b=5
- >>> a
- True
- >>> a>b
- False
计算机为什么要描述这种条件呢?因为接下来就可以根据条件结果来干不同的事,比如:
- a=4
- b=5
- if a > b :
- print ("a is bigger then b")
- else :
- print("a is small than b")

1.4、列表(list)
如果要把全班的人名都在内存里存下来,用上面的字符串类型可以做到,但是取的时候不方便
- name = "alex,zhangsan,lisi,wangwu,jack"
- print(name)
- names = ["alex","zhangsan","lisi","wangwu","jack"]
- print(names[2]

print(name)它打印所有人的信息,如果要想单独去除lisi,这里用列表(示例的第二种方法)
因为列表是通过下标来标记元素位置的,下标来标记元素位置的,下标也可称为索引。下标从0开始,每添加一个元素,就自动+1
元素名 alex zhangsan lisi wangwu jack 下标(索引) 0 1 2 3 4
元素添加(插入与追加)
- names = ["alex","zhangsan","lisi","wangwu","jack"]
- #元素插入
- names.insert(3,"小明") #3代表你想插入的下表位置
- print(names)
- #元素追加
- names.append("小强") #append添加到列表的尾部
- print(names)

列表的修改
直接根据下表找到元素重新赋值即可
- names = ["alex","zhangsan","lisi","wangwu","jack"]
- print(names)
- #列表的修改
- names[0] = "小赤"
- print(names)

删除元素
有两种方法删除方法:
一:元素删除:
- #元素值删除
- names = ["alex","zhangsan","lisi","wangwu","jack"]
- print(names)
- #删除元素
- names.remove("alex") #通过指定元素名删除,会删除从左边开始找到的第一个小明,如果有多个小明就删除找到的第一个
- print(names)

二:下标删除
- names = ["alex","zhangsan","lisi","wangwu","jack"]
- print(names)
- #下标删除元素
- del names[0] #通过指定下标删除
- print(names)

判断某匀速是否在列表里
- names = ["alex","zhangsan","lisi","wangwu","jack"]
- print(names)
-
- if ("alex" in names): #判断alex是否在数组names里,主要是通过("alex" in names)来判断
- print("true")
- else:
- print(false)

二、运算符
计算机可以进行的运算很多种,可不知加减乘除怎么简单,运算按种类可分为算术运算,比较运算,逻辑运算,赋值运算,成员运算,身份运算,位运算,今天我们暂时只讲算术运算,比较运算,逻辑运算,赋值运算,成员运算。
2.1、算术运算符
预先设置变量:a=10 b=20
运算符 描述 实例 + 加-两个对象相加 a+b输出结果30 - 减-得到符输或是一个数减去另一个数 a-b输出结果-10 * 乘-两个数相乘或是返回一个被重复若干次的字符串 a*b输出结果200 / 除-两数相除 b/a输出结果为2 % 取余(模)-返回除法的余数 b%a输出结果为0 ** 幂-返回x的y次幂 a**b为10的20次方 // 取整数-返回商的整数部分 9//2输出结果4
2.2、比较运算符
预先设置变量:a=10 b=20
运算符 描述 实例 == 等于-比较对象是否相等 (a==b)返回false != 不等于-比较两个对象是否不相等 (a!=b)返回true <> 不等于-比较两个对象是否不相等 (a<>b)返回true > 大于-返回x是否大于y (a>b)返回false < 小于-返回x是否小于y。所有的比较运算符返回1表示真,返回0表示假,这分别与特殊的变量True和False等价。注意,这些变量名大写 (a >= 小于等于-返回x是否大于等于y (a>=b)返回false <= 小于等于-返回x是否小于等于y (a<=b)返回true
2.3、赋值运算符
运算符 描述 实例 = 简单的赋值运算符 c=a+b将a+b的运算结果赋值给c += 假发赋值运算符 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
2.4、逻辑运算
a=10 b=20
运算符 描述 实例 and 判断多个条件均为真事时,返回真 a>10 and b>10 返回false or 判断多个任意一个为真时,返回真 a>10 or b>10 返回true not 取反 not a>b 返回为true
2.5、成员运算
运算符 描述 实例 in 如果在指定的序列中找到值返回true x在y序列中,如果x在y序列中返回true not in 如果在指定的序列中没有找到返回true x不在y序列中,如果x不在y序列中返回true
三、读取用户输入
若你的程序要接收用户指令,可以用input语法:
- name = input("What is you name? ")
- print("Hello " + name)

执行脚本就会发现,程序会等待你输入姓名后再往下继续走。
可以让用户输入多个信息,如下。
- name = input("what's you name? ")
- age = input("how old are you? ")
- hometown = input("where is your hometown? ")
- print("Hello",name,"your are",age,"years old,you come from",hometown)

四、格式化打印
现在有一个需求,问用户的姓名、年龄、工作、爱好,然后打印成一下格式
- ------------ info of Alex Li ----------
- Name : Alex Li
- Age : 22
- job : Teacher
- Hobbie: girl
- ------------- end ----------------
其实也结合上面很简单
- name = input("Name:")
- age = input("Age:")
- job = input("Job:")
- hobbie = input("Hobbie:")
-
- info = f''' ------------ info of {name} -----------
- Name : {name}
- Age : {age}
- job : {job}
- Hobbie: {hobbie}
- ------------- end ----------------'''
- print(info)

五、流程控制之if...else....
只需要在程序里预设一些条件判断语句,满足哪个条件完成什么操作,这个过程就是流程控制。
5.1、单分支
- if 条件: #if后加.是固定语法
- 满足条件后要执行的代码
- salary = 100
- if salary>50:
- print("super big")

5.2、双分支
- if 条件:
- 满足条件执行代码
- else:
- if条件不成立就走这段代码
- salary = 30
- if salary>50:
- print("super big")
- else:
- print("not so big")

5.3、缩进
你会发现,上面的if代码里,每个条件的下一行都缩进4哥空格,这是为什么呢?这就是python一大特色,强制缩进,目的是为了让程序知道,每段代码依赖哪个条件,如果不通过缩进来区分,程序怎么会知道,当你的条件成立后,去执行哪些代码呢?
在其他语言里,大多通过{}来确定代码块,比如c,c++,java,javascripts,以下就是一个javascripts的例子
- var age = 56
- if (age<50){
- console.log("还能折腾")
- console.log('可以执行多行代码')
- }else{
- console.log('太老了')
- }
在有{}来区分代码块的情况下,缩进的作用就只剩下让代码变的整洁了
Python是们超级简洁的语言,发明者肯定是觉得用{}太丑了,所有索性直接不用它,那怎么能区分代码块呢?答案就是强制缩进。
5.4、多分支
- if 条件:
- 满足条件执行代码
- elif 条件: #else if ...
- 满足条件执行代码,前提是上一层的elif条件不满足
- elif 条件: #else if ...
- 满足条件执行代码,前提是上一层的elif条件不满足
- else:
- if条件不成立就走这段代码
- number = int(input("输入成绩:"))
- if number>0 and number<39:
- print("这成绩再不学习就只能搬砖了")
- elif number>40 and number<59:
- print("这成绩补补还有救")
- elif number>60 and number<79:
- print("成绩良好")
- elif number>80 and number<89:
- print("成绩优秀")
- elif number>90 and number<100:
- print("成绩相当好")
