Python笔记1(基础语法)

2019-06-26  本文已影响0人  Demon_半夏

一、数据类型和变量

1)、数据类型

1.整数 int

十六进制用0x前缀和0-9a-f表示

2.浮点数 float

对于很大或很小的浮点数,就必须用科学计数法表示,把10用e替代,1.23x109就是1.23e9,或者12.3e8,0.000012可以写成1.2e-5

3.字符串 String

str = 'Runoob'

print(str)  # 输出字符串
print(str[0:-1])  # 输出第一个到倒数第二个的所有字符
print(str[0])  # 输出字符串第一个字符
print(str[2:5])  # 输出从第三个开始到第五个的字符
print(str[2:])  # 输出从第三个开始的后的所有字符
print(str * 2)  # 输出字符串两次
print(str + '你好')  # 连接字符串

print('------------------------------')

print('hello\nrunoob')  # 使用反斜杠(\)+n转义特殊字符
print(r'hello\nrunoob')  # 在字符串前面添加一个 r,表示原始字符串,不会发生转义

输出结果为:


4.布尔值 bool

if age >= 18:
    print('adult')
else:
    print('teenager')

5.空值

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

2)、变量

1.变量

同时为多个变量赋值
a = b = c = 1
为多个对象指定多个变量
a, b, c = 1, 2, "runoob"

2.常量

PI = 3.14159265359

print(9 / 3)
3.0
print(10 // 3)
3
print(10 % 3)
1

二、字符串和编码

1)、字符编码

对bytes类型的数据用带b前缀的单引号或双引号表示:
x = b'ABC'

①以Unicode表示的str通过encode()方法可以编码为指定的bytes

print('ABC'.encode('ascii'))
b'ABC'
print('中文'.encode('utf-8'))
b'\xe4\xb8\xad\xe6\x96\x87'
print('中文'.encode('ascii'))
Traceback (most recent call last):
  File "D:/Study/str.py", line 22, in <module>
    print('中文'.encode('ascii'))
UnicodeEncodeError: 'ascii' codec can't encode characters in position 0-1: ordinal not in range(128)

② 把bytes变为str,就需要用decode()方法

print(b'ABC'.decode('ascii'))
ABC
print( b'\xe4\xb8\xad\xe6\x96\x87'.decode('utf-8'))
中文

bytes中只有一小部分无效的字节,可以传入errors='ignore'忽略错误的字节

print(b'\xe4\xb8\xad\xff'.decode('utf-8', errors='ignore'))
中

④计算str包含多少个字符,可以用len()函数

print(len('ABCD'))
4
print(len('你好,北京'))
5

2)、格式化

1.%运算符:用来格式化字符串的

%d ---- 整数
%f ---- 浮点数
%s ---- 字符串(不太确定应该用什么,%s永远起作用)
%x ---- 十六进制整数

print('%2d-%02d' % (13, 14))
13-14
print('%.2f' % 3.1415926)
3.14

2.format()方法:用传入的参数依次替换字符串内的占位符{0}、{1}……

print('你好, {0}, 你的成绩提升了 {1:.2f}%'.format('张晓华', 11.23565))
你好, 张晓华, 你的成绩提升了 11.24%

三、使用list和tuple

1)、list

list是一种有序的集合,可以随时添加和删除其中的元素
列表使用 方括号[ ]

list1 = ['Google', 'Runoob', 1997, 2000];
list2 = [1, 2, 3, 4, 5, 6, 7 ];

print ("list1[0]: ", list1[0])
list1[0]:  Google
print ("list2[1:5]: ", list2[1:5])
list2[1:5]:  [2, 3, 4, 5]
nickname = ['Mary','John','Hele']

nickname.append('Sam')
print(nickname)
['Mary', 'John', 'Hele', 'Sam']
nickname = ['Mary','John','Hele']
nickname.append('Sam')

nickname.insert(2,'Lili')
print(nickname)
['Mary', 'John', 'Lili', 'Hele', 'Sam']
nickname = ['Mary','John','Hele']
nickname.append('Sam')
nickname.insert(2,'Lili')

nickname.pop()
print(nickname)
['Mary', 'John', 'Lili', 'Hele']
nickname = ['Mary','John','Hele']
nickname.append('Sam')
nickname.insert(2,'Lili')
nickname.pop()

nickname.pop(1)
print(nickname)
['Mary', 'Lili', 'Hele']
nickname = ['Mary','John','Hele']
nickname.append('Sam')
nickname.insert(2,'Lili')
nickname.pop()
nickname.pop(1)

nickname[1] = 'Sunny'
print(nickname)
['Mary', 'Sunny', 'Hele']
squares = [1, 4, 9, 16, 25]
squares += [36, 49, 64, 81, 100]
print(squares)
[1, 4, 9, 16, 25, 36, 49, 64, 81, 100]
L = ['Apple', 123, True]
print(L)
['Apple', 123, True]
s = ['python', 'java', ['asp', 'php'], 'scheme']
print(len(s))
4
p = ['asp', 'php']
s = ['python', 'java', p, 'scheme']
print(s)
['python', 'java', ['asp', 'php'], 'scheme']
print(p[1])
php
print(s[2][1])
php

2)、tuple

tuple:是一种有序列表叫元组。tuple和list非常类似,但是tuple一旦初始化就不能修改。
元组使用 小括号()

tup1 = (12, 34.56);
tup2 = ('abc', 'xyz')
 
# 以下修改元组元素操作是非法的。
# tup1[0] = 100
 
# 创建一个新的元组
tup3 = tup1 + tup2;
print (tup3)
(12, 34.56, 'abc', 'xyz')
tup = ('Google', 'Runoob', 1997, 2000)
 
print (tup)
('Google', 'Runoob', 1997, 2000)
del tup;
print (tup)
Traceback (most recent call last):
  File "D:/Study/str.py", line 67, in <module>
    print(tup)
NameError: name 'tup' is not defined
元组运算符
元组内置函数

四、条件判断

1)、if 语句

if <条件判断1>:
    <执行1>
elif <条件判断2>:
    <执行2>
elif <条件判断3>:
    <执行3>
else:
    <执行4>

1. if中常用的操作运算符:

<   小于
<=  小于或等于
>   大于
>=  大于或等于
==  等于,比较两个值是否相等
!=  不等于

2.input

因为input()返回的数据类型是strstr不能直接和整数比较,必须先把str转换成整数

s = input('birth: ')
birth = int(s)
if birth < 2000:
    print('00前')
else:
    print('00后')

birth: 1955
00前

2)、if 嵌套

在嵌套 if 语句中,可以把 if...elif...else 结构放在另外一个 if...elif...else 结构中

if 表达式1:
    语句
    if 表达式2:
        语句
    elif 表达式3:
        语句
    else:
        语句
elif 表达式4:
    语句
else:
    语句

举个栗子:

num=int(input("输入一个数字:"))
if num%2==0:
    if num%3==0:
        print ("你输入的数字可以整除 2 和 3")
    else:
        print ("你输入的数字可以整除 2,但不能整除 3")
else:
    if num%3==0:
        print ("你输入的数字可以整除 3,但不能整除 2")
    else:
        print  ("你输入的数字不能整除 2 和 3")

输入一个数字:8
你输入的数字可以整除 2,但不能整除 3

五、循环

1)、while 循环

while 判断条件:
语句

举个栗子:

n = 100

sum = 0
counter = 1
while counter <= n:
    sum = sum + counter
    counter += 1

print("1 到 %d 之和为: %d" % (n, sum))

1 到 100 之和为: 5050
var = 1
while var == 1 :  # 表达式永远为 true
   num = int(input("输入一个数字  :"))
   print ("你输入的数字是: ", num)
 
print ("Good bye!")

输入一个数字  :11
你输入的数字是:  11
输入一个数字  :25
你输入的数字是:  25
输入一个数字  :

count = 0
while count < 5:
   print (count, " 小于 5")
   count = count + 1
else:
   print (count, " 大于或等于 5")

0  小于 5
1  小于 5
2  小于 5
3  小于 5
4  小于 5
5  大于或等于 5

2)、for 语句

for <variable> in <sequence>:
    <statements>
else:
    <statements>

举个栗子:for x in ...循环就是把每个元素代入变量x,然后执行缩进块的语句

nickname = ['Mary','John','Hele']
for name in nickname:
    print(name)

Mary
John
Hele

3)、range()函数

for i in range(5):
    print(i)

0
1
2
3
4
for i in range(5,9) :
    print(i)

5
6
7
8
for i in range(0, 10, 3) :
    print(i)

0
3
6
9
for i in range(-10, -100, -30) :
    print(i)
   
-10
-40
-70
L=list(range(5))
print(L)
   
[0, 1, 2, 3, 4]

4)、结束循环

n = 1
while n <= 100:
    if n > 10: # 当n = 11时,条件满足,执行break语句
        break # break语句会结束当前循环
    print(n)
    n = n + 1
print('END')

1
2
3
4
5
6
7
8
9
10
END
n = 0
while n < 10:
    n = n + 1
    if n % 2 == 0: # 如果n是偶数,执行continue语句
        continue # continue语句会直接继续下一轮循环,后续的print()语句不会执行
    print(n)

1
3
5
7
9

break语句可以在循环过程中直接退出循环,而continue语句可以提前结束本轮循环,并直接开始下一轮循环。这两个语句通常都必须配合if语句使用

5)、pass 语句:pass 不做任何事情,一般用做占位语句

六、dict和set

1)、dict

dict字典是另一种可变容器模型,且可存储任意类型对象
字典的每个键值(key=>value)对用冒号(:)分割,每个对之间用逗号(,)分割,整个字典包括在花括号({})中
格式:

d = {key1 : value1, key2 : value2 }

访问字典里的值
dict = {'Name': 'Runoob', 'Age': 7, 'Class': 'First'}
 
print ("dict['Name']: ", dict['Name'])
print ("dict['Age']: ", dict['Age'])

dict['Name']:  Runoob
dict['Age']:  7
d = {'Michael': 95, 'Bob': 75, 'Tracy': 85}
d.pop('Bob')
print(d)

{'Michael': 95, 'Tracy': 85}

2)、set

set集合是一个无序的不重复元素序列
可以使用大括号{ }或者 set()函数创建集合,注意:创建一个空集合必须用set()而不是 { },因为 { } 是用来创建一个空字典
格式:

parame = {value01,value02,...}
或者
set(value)

s1 = set([1, 2, 3])
s2 = set([2, 3, 4])

s3 = s1 & s2
print(s3)
s4 = s1 | s2
print(s4)

{2, 3}
{1, 2, 3, 4}

1. 添加元素

语法格式:s.add( x )s.update( x )

2. 移除元素

语法格式:s.remove( x )s.discard( x )

3. 计算集合元素个数

语法格式:len(s)

4. 清空集合

语法格式:s.clear()

5. 判断元素是否在集合中存在

语法格式:x in s

上一篇 下一篇

猜你喜欢

热点阅读