Python入门
目录
- Hello World!
- 字符串操作
- 简单数学计算
- if elif else
- 循环
- 小测试
为什么学Python
简单方便代码少. 不用太关注类型, 声明等琐事. 使用灵活, 第三方支持包也多.
所有的深度学习框架一般都有一个Python版的接口.
为什么使用IPython/Jupyter
IPython Notebook号称 “编码器的实验室笔记本” - 允许用户在单个基于浏览器的页面中交叉显示/执行数据,代码和说明文本,而不是在单独的文件中
基础类型
python中的主要基本数据类型是数字(整数和浮点数),布尔值和字符串
Hello World!
# This is a one line comment#描述
print('Hello World!')
Hello World!
# Strings can be enclosed by ',", or
print("Hello World!")
# \ is used as a escape character#转义字符.
# There are many special escape sequences#有许多特殊的转义序列
# Notable are: \t (tab)#tab键
# \n (new line)换行
print("The \n makes a new line")
The
makes a new line
print("The \t is a tab")
The is a tab
print('I\'m going to the movies')
I'm going to the movies
firstVariable="hello,world"
print(firstVariable)
hello,world
字符串操作
字符串是python的特殊类型。作为对象,在类中,您可以使用.methodName()表示法调用字符串对象上的方法。字符串类在python中默认可用,因此您不需要import语句即可将对象接口用于字符串。
# go over ? mark after if you are not sure what method does.
print(firstVariable.lower())
print(firstVariable.upper())
print(firstVariable.title())
hello,world
HELLO,WORLD
Hello,World
# To look up what each method does
firstVariable.lower?
#函数名
#文档描述
#内部函数或方法
#help(firstVariable.lower)
# Can also use help
#help(firstVariable.lower)
#help()
firstVariable.split(',')
['hello', 'world']
a=firstVariable.split(',')
a
['hello', 'world']
' '.join(a)#"内是空格" 表示 拼接时用
'hello world'
help(' '.join)
Help on built-in function join:
join(iterable, /) method of builtins.str instance
Concatenate any number of strings.
The string whose method is called is inserted in between each given string.
The result is returned as a new string.
Example: '.'.join(['ab', 'pq', 'rs']) -> 'ab.pq.rs'
print("0" + "1")
01
"0" * 3
'000'
# You can add strings together.
"Fizz" + "Buzz"
'FizzBuzz'
基础数学
有四种不同的数字类型:普通整数,长整数,浮点数和复数。另外,布尔值是普通整数的子类型。
# Addition, add two int together
1+1
2
# if one of the operands is a float, the result is a float.
130-2.0
128.0
130-2
128
# integer division
130/2
65.0
130.0/2
65.0
# Multiplication
2*3
6
# Exponentiation **
# This operator raises the number to its left to the power of the number to its right
2**3
8
# Modulo
# Returns the remainder of the division of the number to the left by the
# number on its right.
9%3#and
0
if 语句
| 比较操作符 | 功能 |
|---|---|
| < | 小于 |
| <= | 小于或等于 |
| > | 大于 |
| >= | 大于或等于 |
| == | 等于 |
| != | 不等于 |
检查某些东西是否为True,如果是,则执行此操作。如果它不是True(False),则不执行
# Notice you have to indent after you start a if statement. indet缩进 statement 语句
num = 3
if num == 3:
print(num)
3
# Nothing is outputted because num > 10 is FALSE
num = 3
if num > 10:
print(num)
num = 3
if num % 3 == 0:
print("Fizz")
Fizz
num = 10
if num % 5 == 0:
print("Buzz")
Buzz
if True:
print("This was True")
This was True
if False:
print("Nothing printed")
| 逻辑操作符 | 描述 |
|---|---|
| and | 如果两个操作数均为True,则condition变为True. |
| or | 如果两个操作数中的任何一个为True,则condition变为True. |
| not | 用于反转逻辑(不是False变为True,而不是True变为False |
姓名|性别
--- | ---
马文翰 | 男
File "<ipython-input-15-b9a42e501bf6>", line 2
--- | ---
^
SyntaxError: invalid syntax
num = 4
num > 0 and num < 15
True
# both the conditions are true, so the num will be printed out
if num > 0 and num < 15:
print(num)
4
# num > 0 is True, num > 15 is False
# Since the first condition is True, it is True
num = 4
num > 0 or num > 15
True
num > 0 or num > 15
True
# or will only evaluate to False if both are False
if False or False:
print('Nothing will print out')
num = 10
not num < 20
False
else 语句
必须在if或elif语句之后。最多可以有一个其他声明。仅当上面的所有“if”和“elif”语句都为False时才会执行
num = 1
if num > 3 :
print("Hi")
"""We will execute what is inside the else statement
because num is not greater than 3
"""
num = 1
if num > 3 :
print("Hi")
else:
print("number is not greater than 3")
number is not greater than 3
"""We will execute what is inside the if statement because num > 4"""
num = 4
if num > 3 :
print("Hi")
else:
print("number is not greater than 3")
Hi
Task(困难的)任务
- 将num分配给整数值。
- 如果整数是偶数,写一个if else组合将打印“你的整数是偶数”。否则,打印“你的整数是奇数”。
提示:任何可以精确地除以2的整数都是偶数(例如:2,4,6)。任何不能精确地除以2的整数都是奇数(例如:1,3,5)。使用模运算符(%),它将数字左边的余数除以右边的数字。
num = 3
if num % 2 == 0:
print("Your integer is even")#even偶数
else:
print("Your integer is odd") #odd奇数
Your integer is odd
elif 语句
必须在if语句之后。 elif语句语句允许您检查True的多个表达式,并在其中一个条件求值为True时立即执行代码块。
与else类似,elif语句是可选的。但是,与其他情况不同,最多只能有一个语句,if后面可以有任意数量的elif语句。
num = 21
if num > 50:
print('num is larger than 50')
elif num == 21:
print('num = 21')
else:
print('Catchall condition')
num = 21
num = 21
if num > 50:
pirnt("num is larger than 50")
elif num == 22:
print("num == 21")
else:
print("catchall condition")
catchall condition
my_num = 5
if my_num % 2 == 0:
print("Your number is even")
elif my_num % 2 != 0:
print("Your number is odd")
else:
print("Are you sure your number is an integer?")
Your number is odd
my_num = 3
if my_num % 2 == 0:
print("your integer is even")
elif my_num % 2 != 0:
print ("your integer is odd")
else :
print ("Are you sure your number is an integer ?")
your integer is odd
# You can have mulitpled elif statements.# statements 声明/报告 mulitpled多重
# Remember only the first True statement has its block of code executed.
dice_value = 3#点数
if dice_value == 1:
print('You rolled a {}. Great job!'.format(dice_value))#format格式 roll摇
elif dice_value == 2:
print('You rolled a {}. Great job!'.format(dice_value))
elif dice_value == 3:
print('You rolled a {}. Great job!'.format(dice_value))
elif dice_value == 4:
print('You rolled a {}. Great job!'.format(dice_value))
elif dice_value == 5:
print('You rolled a {}. Great job!'.format(dice_value))
elif dice_value == 6:
print('You rolled a {}. Great job!'.format(dice_value))
else:
print('None of the conditions above (if elif) were evaluated as True')
You rolled a 3. Great job!
dice_value = 6#这里犯过一个优质的错误 把赋值"="写成了"=="
if dice_value == 1:
pirnt("you rolled a {}. Great job ! ".format(dice_value))
elif dice_value == 2:
print("your rolled a {} . Great job!".format (dice_value) )
elif dice_value == 3:
print("your rolled a {} . Great job!".format (dice_value) )
elif dice_value == 4:
print("your rolled a {} . Great job!".format (dice_value) )
elif dice_value == 5:
print("your rolled a {} . Great job!".format (dice_value) )
elif dice_value == 6:
print("your rolled a {} . Great job!".format (dice_value) )
your rolled a 6 . Great job!
Task
- 将num分配给整数值。
- 编写一系列if,elif,else语句,打印您指定的num。但是对三的倍数要打印“Fizz”而不是数字, 五的倍数要打印“Buzz”。对于三和五共同的倍数则打印“FizzBuzz”
# Solution 1
num = 15
if num % 3 == 0 and num % 5 == 0 :
print("FizzBuzz")
elif num % 3 == 0 :
print("Fizz")
elif num % 5 == 0:
print("Buzz")
FizzBuzz
if num % 3 == 0 and num % 5 == 0:
print('FizzBuzz')
elif num % 3 == 0:
print('Fizz')
elif num % 5 == 0:
print('Buzz')
else:
print(str(num))
FizzBuzz
# Solution 2
num = 15
"""Notice how difficult this solution is relative to Solution 1"""
string = ""
if num % 3 == 0:
string = string + "Fizz"
if num % 5 == 0:
string = string + "Buzz"
if num % 5 != 0 and num % 3 != 0:
string = string + str(num)
print(string)
FizzBuzz
列表(list)
列表后面要加上方括号 [ ]
| z = | [3, | 7, |
| index | 0 | 1 |
# Defining a list
z = [3, 7, 4, 2]
访问列表里面的值
# The first element of a list is at index 0
z[0]
3
z[2]
4
# Access Last Element of List #Access 访问
z[-2]
4
切分列表
# first index is inclusive (before the :) and last (after the :) is not.
# not including index 2
z[0:2]
[3, 7]
# everything up to index 3
z[:3]
[3, 7, 4]
# index 1 to end of list
z[1:]
[7, 4, 2]
取列表的最大值, 最小值, 长度, 以及总和
print(min(z), max(z), len(z), sum(z))
2 7 4 16
对列表中对象出现次数进行统计
random_list = [4, 1, 5, 4, 10, 4]
random_list.count(4)#count计数
3
返回列表第一个指针
| random_list = | [4, | 1, | 5, | 4, |
| index= | 0 | 1 | 2 | 3 |
random_list.index(4)
0
# you can specify(指定) where you start your search
random_list.index(4, 4)#(需要查找的数,从哪个序号开始)
5
# random_list.index(value, [start, stop])
random_list.index(4, 4, 6)
5
再次注意保留开始不保留结尾
对列表进行排序
x = [3, 7, 2, 11, 8, 10, 4]
y = ['Steve', 'Rachel', 'Michael', 'Adam', 'Monica', 'Jessica', 'Lester']
# Sorting and Altering original list
# low to high
x.sort()
print(x)
[2, 3, 4, 7, 8, 10, 11]
# Sorting and Altering original list
# high to low
x.sort(reverse = True)
print(x)
[11, 10, 8, 7, 4, 3, 2]
# Sorting and Altering original list 改变原始列表
# A-Z
y.sort()
print(y)
['Adam', 'Jessica', 'Lester', 'Michael', 'Monica', 'Rachel', 'Steve']
# Sorting and Altering original list
# Z-A
y.sort(reverse = True)# reverse/rɪˈvɜːs/颠倒
print(y)
['Steve', 'Rachel', 'Monica', 'Michael', 'Lester', 'Jessica', 'Adam']
# sorting list WITHOUT altering original list
new_list = sorted(y)
new_list
['Adam', 'Jessica', 'Lester', 'Michael', 'Monica', 'Rachel', 'Steve']
# notice y is unchanged
y
['Steve', 'Rachel', 'Michael', 'Adam', 'Monica', 'Jessica', 'Lester']
在列表结尾添加一个对象
x
[11, 10, 8, 7, 4, 3, 2]
x.append(3)
print(x)
[3, 7, 2, 11, 8, 10, 4, 3]
删除列表中一个对象
x.remove(10)
print(x)
[3, 7, 2, 11, 8, 4, 3]
删除列表中指定位置的对象
# List before you remove an item
print(x)
[3, 7, 2, 11, 8, 4, 3]
# Remove item at the index item(对象)
# this function will also return the item you removed from the list
# Default is the last index
x.pop(3)
11
print(x)
[3, 7, 2, 8, 4, 3]
合并列表
通过在末尾续加的方式来延长列表
x.extend([4, 5])
x
[3, 7, 2, 8, 4, 4, [4, 5], 4, 3, 4, 5]
# lists can be diverse, each element in the list can be of a different type.
# lists are really list of pointers, and these pointers can
# point to anything.
# Concatenating Lists
print('x+y=',x+y)
x+y= [11, 8, 7, 3, 2, 3, 4, 5, 'Steve', 'Rachel', 'Monica', 'Michael', 'Lester', 'Jessica', 'Adam']
在列表指定位置前插入对象
x
[3, 7, 2, 11, 8, 10, 4]
x.insert(4, 4)#插入一个数
x
[3, 7, 2, 11, 4, 8, 10, 4]
x.insert(4,[4,5])#插入一个列表
x
[3, 7, 2, 11, [4, 5], [4, 5], 4, 8, 10, 4]