Catalog
  1. 1. 基础语法部分
    1. 1.1. 数据类型和变量
    2. 1.2. 字符串和编码
    3. 1.3. python中的list和tuple(元组)
    4. 1.4. python中的dict(字典)和set
    5. 1.5. 条件判断
    6. 1.6. 循环
Python自学(一)基础语法部分

基础语法部分

数据类型和变量

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
# 赋值进行判断输出 通过r"///"来进行非转义输出 "/'"进行转义 '''来进行换行输出
a = -1
if a > 0:
print("a>0")
else:
print('''print1
print2
print3
''')

# not取代java中的!
if not a > 0:
print("true print ", "not a > 0")

# 变量没有明确的类型 属于弱类型语言
a = '弱类型语言'
print(a)

# 分别为浮点数结果 只保留整数部分结果 取余结果
floutVar = 10 / 3
intVar = 10 // 3
yuVar = 10 % 3

字符串和编码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
# 以ascii方式进行编码 会输出b'ABC'  表示bytes(二进制)类型的数据 英文转化后不变 中文转化后会不同
"ABC".encode("ascii")
# 以utf-8格式编码为二进制类型数据 中文不能编码为ascii 因为没有中文的表示范围 会报错
"中文".encode("utf-8")
# 以ascii方式解码 将二进制转为ascii码 流等需要通过此来解码 但不可解码中文
b'ABC'.decode("ascii")
# 以utf-8格式解码中文
b'\xe4\xb8\xad\xe6\x96\x87'.decode('utf-8')

# 计算该字符串包含几个字符
len("ABC")
len("中文")
# bytes类型的会计算包含几个字节书
len(b"ABC")

# 格式化输出变量 其实都可以直接用%s来进行格式化输出 .2f表示保留两位小数 字符串中如果要输出% 则需要%%来进行转义表达
print("test %s" % "testStr")
print("test %s %0d %.2f" % ("testStr", 20, 20.00000))
# 还可以用format函数来进行表示 使用{0},{1}来进行占位
print("test format {0} , {1:.2f}".format("str", 20.111))


# homework: 小明的成绩从去年的72分提升到了今年的85分,请计算小明成绩提升的百分点,并用字符串格式化显示出'xx.x%',只保留小数点后1位:
s1 = 72
s2 = 85
print("提升了 %.1f%%" % ((s2-s1) / 72 * 100))

python中的list和tuple(元组)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
# py中集合 list列表 弱类型语言 其中的类型也可以不同 甚至list中还能套list 相当于一个二维数组  使用testListInList[1][2]来去123
testList = ["test1", 123, True]
testListInList = ["inList", testList]
# 使用len函数来获取集合中元素个数
len(testList)
# 通过索引获得元素
print(testList[0], testList[1])
# 从最后一个开始倒序获得各个元素
print(testList[-1], testList[-2])
# 在集合最后增加一个元素
testList.append("lastone")
# 在索引1号位置插入一元素
testList.insert(1, "testInsert")
# 删除集合末尾的元素
testList.pop()
# 删除指定位置的元素
testList.pop(1)

# 元组 相当于固定的大小的数组 其大小不可以改变 且元素不可以赋值 对于只有一个元素的元组应写成(1,) 区别于数字1 优点就是对于list更加安全
testTuple = ("tuple1", "tuple2", 123)
# 元组中可以放list集合 且list集合是可以变化的 元组的不变性是指他的元素指针指向元素地址的不变 testList地址每变 变得是他里面元素的地址
testInTuple = ("testInTuple", testList)
testTuple[1][0] = "chen's"

python中的dict(字典)和set

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
# 字典 类似java中的map
d = {"dictElem1": 1, "dictElem2": 2, "dictElem3": 3}
dictElem1 = d["dictElem1"]
# 修改字典中元素的值
d["dictElem1"] = "赋值"
# 判断字典中是否包含某个key 可防止没有元素报错
isHavaKey = "dictElem1" in d
# 也可以通过这种方式获取该key对应的value 而且如果不存在此key 会输出none
d.get("dictElem1")
# 也可以在不存在此key时输出自定义的值
d.get("dictElem1", -1)
# 删除操作 其实就是出栈操作 毕竟map本身定义的就是一个栈(不是堆) java中map有类似方法(remove) 但是会出现同步问题因为底层代码加锁了 会报错 一般通过迭代器中remove搭配while循环进行删除
d.pop("dictElem1")

# set是无序不可重复的集合 存入相同元素 不会有任何变化 pyCharm提示可以直接写成 {1,2,3}
testSet1 = set([1, 2, 3])
testSet1.add(4)
testSet1.remove(4)
# set因为不可重复的特性 可以做集合中交并操作
testSet2 = {2, 3, 4}
print(testSet1 & testSet2)
print(testSet1 | testSet2)

条件判断

1
2
3
4
5
6
7
8
9
10
11
# 条件判断基本语法 elif 是else if的缩写 注意和java进行区分和对比
condition = 123
if condition >= 456:
print(condition)
elif condition >= 234:
print(234)
else:
print(456)
# 判空判0写法 直接将变量作为条件
if condition:
print("只要条件是非0数字 非空字符 非空list 则判断那位True 且输出此句")

循环

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
# 使用foreach循环 和 java的foreach以及大部分模板语言类似
for elem in testList:
print(elem)
# ranger函数生成从0开始小于5的整数
range(5)

# while循环 只要满足条件则一直循环 使用break可以跳出语句
testSum = 0
n = 99
while n > 0:
if n > 10:
break
n = n - 1
# 只输出奇数 使用continue跳过偶数虚幻
if n % 2 == 0:
continue
print(n)
Author: ChenS
Link: http://miumiucry.cn/2019/10/18/Python自学(一)基础语法部分/
Copyright Notice: All articles in this blog are licensed under CC BY-NC-SA 4.0 unless stating additionally.
Donate
  • 微信
  • 支付寶