BUSS6002 Python 基础语法

BUSS6002 Python 基础语法

print

print('xxxxx')

输出字符串

print() 函数也可以接受多个字符串,用逗号“,”隔开,就可以连成一串输出, 默认用一个空格来间隔多个对象,这里sep = '' 使打印时不加空格

print('Hello','world!')
print('Hello','world!', sep = '')

在需要在字符中使用特殊字符时,用反斜杠\转义字符

在行尾时 续行符
\ 反斜杠符号
\' 单引号
\" 双引号
\n 换行
\b 退格(Backspace)
  • 注意中文的标点和英文标点的不同

  • 注意题目中输出的格式里空格的要求

  • 字符串运算符

    下表实例变量 a 值为字符串 "Hello",b 变量值为 "Python":

    操作符 描述 实例
    + 字符串连接 >>>a + b 'HelloPython'
    * 重复输出字符串 >>>a * 2 'HelloHello'
    [] 通过索引获取字符串中字符 >>>a[1] 'e'
    [ : ] 截取字符串中的一部分 >>>a[1:4] 'ell'
    in 成员运算符 - 如果字符串中包含给定的字符返回 True >>>"H" in a True
    not in 成员运算符 - 如果字符串中不包含给定的字符返回 True >>>"M" not in a True
    r/R 原始字符串 - 原始字符串:所有的字符串都是直接按照字面的意思来使用,没有转义特殊或不能打印的字符。 原始字符串除在字符串的第一个引号前加上字母"r"(可以大小写)以外,与普通字符串有着几乎完全相同的语法。 >>>print r'\n' \n >>> print R'\n' \n

Variables

  • Python有五个标准的数据类型:

    Numbers(数字)

    String(字符串)

    List(列表)

    Tuple(元组)

    Dictionary(字典)

  • 数字类型包括 int 整数型和 float 浮点数型(有小数点)

  • 数据类型可以相互转换

    int(x) 转换成整数型

    str() 转化成字符串型

    type(x) 查看x 的数据类型

List

  • 序列 list 是Python中最基本的数据结构。序列中的每个元素都分配一个数字 - 它的位置,或索引,第一个索引是0,第二个索引是1

  • 创建一个列表,只要把逗号分隔的不同的数据项使用方括号括起来

    列表里的元素可以是不同数据类型的

    list1 = ['physics', 'chemistry', 1997, 2000]

  • 使用下标索引来访问列表中的值,注意索引是从0开始数的

    当索引超出了范围时,Python会报一个IndexError错误,所以,要确保索引不要越界,记得最后一个元素的索引是len(classmates) - 1

    list = [1, 2, 3, 4, 5, 6, 7 ]
    print( list[0] )
    
  • 如果要取最后一个元素,除了计算索引位置外,还可以用-1做索引,直接获取最后一个元素:

    以此类推,可以获取倒数第2个、倒数第3个:

    list[ -1 ]
    list[ -2 ]
    
  • list.append(x) 向 list 的末尾里加入元素 x

    list.insert(index, x)把元素x插入到指定的位置,比如索引号为1的位置:

    list.insert(1, 'x')
    
  • pop()方法, 删除list末尾的元素

    list.pop()
    print(list)
    

    pop(index)方法删除指定位置的元素

    list.pop(1)
    print(list)
    
  • 要把某个元素替换成别的元素,可以直接赋值给对应的索引位置:

    list[1] = 9
    print(list)
    
  • list元素也可以是另一个list,比如:

    list[0] = ['a','b']
    print(list)
    

    要拿到'a'可以写s[0][0],因此s可以看成是一个二维数组,类似的还有三维、四维……数组,不过很少用到。

  • len()函数可以获得list元素的个数:

    len(list)

  • list 也可以是空的,他的长度为0

    L = []
    print(len(L))
    

Input

可以让用户输入字符串,并存放到一个变量里,并且可以让你显示一个字符串来提示用户

name = input('Your name: ')
print(name)

input 函数输出的是字符串,如果想对输入的数字进行操作,需要用int() 函数用于将一个字符串转换为整型。float()函数转换成浮点数(有小数点的数)

Conditionals

  • "判断条件"成立时(非零),则执行后面的语句,而执行内容可以多行,以缩进来区分表示同一范围。

    else 为可选语句,当需要在条件不成立时执行内容则可以执行相关语句

  • 判断条件可以用>(大于)、<(小于)、==(等于)、!=(不等于)、>=(大于等于)、<=(小于等于)

  • 如果判断需要多个条件需同时判断时,可以使用 or (或),表示两个条件有一个成立时判断条件成功;

    使用 and (与)时,表示只有两个条件同时成立的情况下,判断条件才成功,not (非)

  • 任何非零、或非空(null)的值均为true

  • ==(等于)不能写成= ,语法不报错但是逻辑会出错

flag = False
name = input('Your name: ')
if name == 'python':    
    flag = True          
    print ('welcome')
else:
    print (name)                                    

Loops

  • for 循环语句

    • 可以遍历任何序列的项目,如一个 list 或者一个字符串
    for letter in 'Python':     
       print '当前字母 :', letter
    

    流程图

if.png
  • 通过索引遍历

想获取 list 变量有多少元素,用len() 函数

range(x) 函数生成 0 到 X-1 的整数序列 [ 0, 1, 2 ]

fruits = ['banana', 'apple',  'mango']
for index in fruits:
   print ('水果 :', index)
 
print ("Good bye!")
  • for … else for 中的语句和普通的没有区别,else 中的语句会在循环正常执行完

    for num in range(10,20):  # 迭代 10 到 20 之间的数字
       for i in range(2,num): # 根据因子迭代
          if num%i == 0:      # 确定第一个因子
             j=num/i          # 计算第二个因子
             print ('num 等于 i * j ')
             break            # 跳出当前循环
       else:                  # 循环的 else 部分
          print num, '是一个质数'
    
loop_architecture.jpg
  • while 循环

    执行语句可以是单个语句或语句块。判断条件为真时执行下面的语句块。当判断条件假false时,循环结束

    count = 0
    while (count < 9):
       print ('The count is:', count)
       count +=  1
    
    print ("Good bye!")
    

    流程图

    python_while_loop.jpg

Comments

  • python中单行注释采用 # 开头。

    # 注释
    
  • 可以用鼠标框选许多行之后用 command + / 键一键注释(Windows 是 Ctrl+/

  • 注释可以在语句或表达式行末

  • python 中多行注释使用三个单引号(''')或三个双引号(""")。

    '''
                         _oo0oo_
                         o8888888o
                         88" . "88
                         (| -_- |)
                         0\  =  /0
                       ___/`---'\___
                     .' \\|     |// '.
                    / \\|||  :  |||// \
                   / _||||| -:- |||||- \
                  |   | \\\  -  /// |   |
                  | \_|  ''\---/''  |_/ |
                  \  .-\__  '-'  ___/-. /
                ___'. .'  /--.--\  `. .'___
             ."" '<  `.___\_<|>_/___.' >' "".
            | | :  `- \`.;`\ _ /`;.`/ - ` : | |
            \  \ `_.   \_ __\ /__ _/   .-` /  /
        =====`-.____`.___ \_____/___.-`___.-'=====
                   佛祖保佑         永无BUG
    '''
    

Function

  • 函数是可重复使用的,用来实现某种功能的代码段
  • 函数代码块以 def 关键词开头,后接函数标识符名称和圆括号()
  • 任何传入参数和自变量必须放在圆括号中间。圆括号之间可以用于定义参数。
  • 函数内容以冒号起始,并且缩进。
  • return [表达式] 结束函数,选择性地返回一个值给调用方。不带表达式的return相当于返回 None
def my_abs(x):
#   "绝对值"
    if x >= 0:
        return x
    else:
        return -x 
    
my_abs(-2)

import

我们可以使用 import 语句来引入库文件(模块),Python 有大量的好用模块,同样我们也能调用自己写的模块

在调用模块中的函数时,必须这样引用:

模块名.库文件名
import numpy  
a = numpy.array([1])
print(a)

有时候模块名太长,我们也可以给模块取个小名,以后这个小名和他大名是等价的

import numpy as np
a = np.array([1])
print(a)

String Formatting

字符串格式化,.format(x,y)是将 x 插入到字符串的{0} 处,y插入到{1} 位置处

year = int(input("Enter your birth year: "))
age = 2017 - year
fancy_string = "Hi {0}, you are {1} years old".format(name, age)
print(fancy_string)

还有种用法是将一个字符串插入到一个有字符串格式符 %s 的字符串中,

%d 格式化整数

%f 格式化浮点数字,可指定小数点后的精度

print "My name is %s and weight is %d kg!" % ('Ming', 21) 

Jupyter notebook 快捷键

  • mac/win

    Tab 代码补全或缩进 Ctrl(command)-UP 跳到单元开头
    Command-A 全选 Ctrl-Down 跳到单元末尾
    Command-Z 撤销 Ctrl-Left 跳到左边一个字首
    Ctrl-Enter 运行本单元 Ctrl-Right 跳到右边一个字首
    Ctrl-S 文件存盘 Ctrl-Backspace 删除前面一个字
    Shift-Tab 提示 Ctrl-Delete 删除后面一个字
    ESC-F 查找和替换 Shift + M 合并cell

Challenges Week1

Nice to meet you!

Write a program that reads in a user's name and prints out 'Hello <>. Nice to meet you!'

input()print() 输入输出函数

转义字符

  • name = input('Enter your name: ')
    print('Hello ', name,'.' , '\n' ,'Nice to meet you!',sep = '')
    
    

    print() 函数默认用一个空格来间隔多个对象,这里sep = '' 使打印时不加空格

    在需要在字符中使用特殊字符时,用反斜杠\转义字符

    在行尾时 续行符
    \ 反斜杠符号
    \' 单引号
    \" 双引号
    \n 换行
    \b 退格(Backspace)

Double that number!

Write a program that reads in an integer from the user, doubles it, and prints the result.

处理输入字符串

input 函数输出的是字符串,如果想对输入的数字进行操作,需要用int() 函数用于将一个字符串转换为整型。float()函数转换成浮点数(有小数点的数)

num = input('Enter a number: ')
print( int(num) * 2 )

Convert from USD to AUD

Write a program to convert USD (US dollars) to AUD (Australian dollars). The program should read in a conversion rate first, then the number of USD. It should then convert the USD to AUD and print the result.

print() 特殊字符转义,input输入结果处理成浮点数

rate = input('What\'s the conversion rate? ')
rate = float(rate)
usd = float( input('How many USD do you have? '))
aud = usd * rate
print('That\'s', aud, 'AUD!' )

Positive or negative

输入一个数,根据这个数的正负性,输出不同的字符串

条件判断

注意Python的缩进规则

如果if语句判断是True,就执行缩进的语句,否则,不执行

也可以给if添加一个else语句,意思是,如果if判断是False,不要执行if的内容,去把else执行了:

elifelse if的缩写,完全可以有多个elif,所以if语句的完整形式就是:

if <条件判断1>:
    <执行1>
elif <条件判断2>:
    <执行2>
elif <条件判断3>:
    <执行3>
else:
    <执行4>
1-14050G33353Z5.png

else if语句的逻辑图

注意条件判别式后不要少写了冒号:

条件判别式里 相等 是== 而不是 = ,否则程序结果会出错,但不会报语法错误

elifelse if的缩写

num = int( input('Enter a number: ') )
if num > 0 :
  print ( num, 'is', 'positive.')
elif num < 0 :
  print ( num, 'is', 'negative.')
else :
  print ( 'It is', '0!')

Odd or Even

Write a program that asks the user for an integer and then displays whether the number is odd or even.

取余运算

num = int(input('Enter a number: '))

if num % 2 == 1:
  parity = 'odd'
else:
  parity = 'even'
  
print('The number ',num,' is ',parity,'.', sep = '')

What to buy

Write a program that loops through a shopping list and tells the user what they need to buy.

循环运算

之前三段代码是文本读取操作,现在课程里还没做要求

import sys
with open(sys.argv[1], 'r') as f:
  shopping_list = f.read().splitlines()

首先确定,循环次数与shopping_list 里的元素个数相等

想获取 list 变量有多少元素,用len() 函数

range(x) 函数生成 0 到 X 的整数序列

for i in range(len(shopping_list)) :
  print('You need to buy', shopping_list[i])

What is the password?

提示输入密码,如果密码不在密码本上,提示密码错误并提示继续输入密码。如果密码正确,提示“欢迎回家”

while循环

psd = input('Enter password: ')

while not psd in passwords:
  print('Not a valid password.')
  psd = input('Enter password: ')
  
print('Welcome back!')

Count

Write a program that reads in an integer, and counts from 0 up to, or down to, that integer.

条件语句和循环语句的嵌套

range(x) 生成的是[0,1,2,3,...,x-1]的列表

num = int( input('Enter a number: '))

if num > 0:
  for x in range( num + 1):
      print(x)
elif num < 0:
  for x in range ( -1 * (num-1) ):
      print( x * -1)
else:
  print ( 0 ) 

Task1 Dice roll

提示是否摇色子,如果是 y,随机显示1到6中间的一个整数,并继续提示是否摇色子;如果是n,程序结束.

这题和What is the password? 是一样的 while循环语句

random 库用来进行随机数相关的运算

加入别的库文件用import xxx 命令

import random
psg = input('Roll the dice again? (y/n) ')

while psg == 'y':
    rand_num = random.randint(1, 6)
    print(rand_num)
    psg = input('Roll the dice again? (y/n) ')

你可能感兴趣的:(BUSS6002 Python 基础语法)