Python 学习笔记

来源:互联网 发布:nba总决赛数据2016 编辑:程序博客网 时间:2024/06/05 14:54

1

打印字符串

输出字符

print("Hello, World")

在输出的过程中直接计算结果

print(5 + 3)

这里写图片描述

简直可以当计算器用(滑稽)

这里写图片描述

输出过程中可以拼接字符串

print("Hello" + ", " + "World")

这里写图片描述

输出的字符串可以以乘法运算输出

print(("Hello" + ", " + "World") * 8)

逆天了…( ̄▽ ̄”)

这里写图片描述

python 自带大数运算库

这里写图片描述

关于IDLE

快捷键

alt + N: 下一条命令alt + P: 上一条命令

课后作业

  1. python 环境变量设置
    这里写图片描述

2

代码

print("------Guess A Number------")temp = input("Guess a number:")guess = int(temp)if guess == 8:    print("Correct!")else:    print("Wrong!");print("Over")

代码解释

  • input(), 将字符串显示到屏幕上,要求用户输入字符串,将字符串返回给一个变量

  • int(), 表示将一个变量转换为整型变量

与 C 语言不同之处

  • 用缩进来替换 C 语言中大括号的作用
  • 在 if 和 else 后有冒号

关于BIF(Built-in Functions)

内置函数,方便快速编程。输入 dir(__builtins__) 可以查看 python 中有哪些内置函数。其中,纯小写的是 bif。如果需要查看 BIF 的功能,则输入 help(input)。

这里写图片描述

这里写图片描述

关于IDLE

新建文件编写代码

使用快捷键 Ctrl + N

这里写图片描述

IDLE 的提示功能

输入 pr,按 Tab 键, 将提示可能会输入的内容

这里写图片描述

运行

快捷键 F5

这里写图片描述

课后练习

第一题

这里写图片描述

name = input("请输入你的姓名:")print("你好, " + name)
  • 字符串的拼接

第二题

这里写图片描述

temp = input("请输入数字:")num = int(temp)if num >= 1 and num <= 100:  #1 <= num <= 100    print("输入正确!")else:    print("输入错误!")
  • 数字的上下临界值竟然可以用想数学这样子的表示
  • C 语言中的 && 相等于 python 中的 and

3 变量和字符串

python 中不是把值值存储在变量中,更像是把名字贴在值上边。

字符串

字符串的定义

Python 为一个变量定义一个字符串时,可以是 单引号 或者 双引号

原始字符串

在字符串前边加一个英文字母 r,使用原始字符串,避免反斜杠转义字符的影响。

这里写图片描述

这里写图片描述

话说 print 和字符串直接输出有什么区别呢

三重引号字符串

可以分段输出字符串

这里写图片描述

课后练习

非要在结尾加反斜杆的方法

str = r'C:\Program Files\FishC\Good''\\'

4

代码

import random       #导入模块times = 3secret = random.randint(1,10)# 这里先给guess赋值(赋一个绝对不等于secret的值)guess = 0# print()默认是打印完字符串会自动添加一个换行符,end=" "参数告诉print()用空格代替换行print("Guess a number:", end=" ")while (guess != secret) and (times > 0):    temp = input()    guess = int(temp)    times = times - 1 # 用户每输入一次,可用机会就-1    if guess == secret:        print("Correct!")    else:        if guess > secret:            print("is bigger")        else:            print("is smaller")        if times > 0:            print("try again", end=" ")        else:            print("Chance used up")print("Game Over")
  • 打印时避免回车换行,只要再后面加个参数 end = ” “

引入 random 模块

randint(), 会返回一个随机的数

课后练习

C 语言的 and 和 python 的 and 的区别

这里写图片描述

1

这里写图片描述

temp = input("Please input a number:")num = int(temp)while num > 0:    print(num)    num -= 1
  • python 中貌似没有 num– 这样自减的语法

2

这里写图片描述

temp = input("Please input a number:")num = int(temp)while num > 0:    print(" " * num, end = " ")    print("*" * num)    num -= 1

5

数据类型

  • 整型:长度不受限制

  • 浮点型

  • e 记法:表示非常大或者非常小的数

这里写图片描述

  • 布尔类型
    not 相当于 C 语言中的 !
    这里写图片描述

字符串的判断

s 为字符串

s.isalnum() 所有字符都是数字或者字母,为真返回 True,否则返回 False。s.isalpha() 所有字符都是字母,为真返回 True,否则返回 False。s.isdigit() 所有字符都是数字,为真返回 True,否则返回 False。s.islower() 所有字符都是小写,为真返回 True,否则返回 False。s.isupper() 所有字符都是大写,为真返回 True,否则返回 False。s.istitle() 所有单词都是首字母大写,为真返回 True,否则返回 False。s.isspace() 所有字符都是空白字符,为真返回 True,否则返回 False。

数据类型的转换函数

  • 整数:int()
    这里写图片描述
  • 字符串:str()

  • 浮点数:float()

获得关于类型的信息

这里写图片描述

type()

告诉我们数据类型

这里写图片描述

isinstance()

更建议使用这个函数来确定变量的类型

这里写图片描述

作业

1

import randomtimes = 3secret = random.randint(1,10)# 这里先给guess赋值(赋一个绝对不等于secret的值)guess = 0# print()默认是打印完字符串会自动添加一个换行符,end=" "参数告诉print()用空格代替换行print("Guess a number:", end=" ")while (guess != secret) and (times > 0):    temp = input()    while not temp.isdigit():        temp = input("Wrong type! Enter again!")    guess = int(temp)    times = times - 1 # 用户每输入一次,可用机会就-1    if guess == secret:        print("Correct!")    else:        if guess > secret:            print("is bigger")        else:            print("is smaller")        if times > 0:            print("try again", end=" ")        else:            print("Chance used up")print("Game Over")

2

temp = input("请输入年份:")while not temp.isdigit():    temp = input("请输入正确的年份:")Year = int(temp)if Year % 400 == 0:    print("该年份为闰年")elif Year % 100 == 0:    print("该年份不为闰年")elif Year % 4 == 0:    print("该年份为闰年")else:    print("该年份不为闰年")

6 常用操作符

//(地板除法)

这里写图片描述

**(幂运算操作符)

这里写图片描述

not 操作符

取相反的布尔类型值

这里写图片描述

优先级参考

这里写图片描述

作业

1

#打印出 0~100 所有的奇数temp = 0while temp <= 100:    if temp % 2 != 0:        print(temp)    temp = temp + 1

2

#爱因斯坦曾出过这样一道有趣的数学题:有一个长阶梯,若每步上2阶,最后剩1阶;#若每步上3阶,最后剩2阶;若每步上5阶,最后剩4阶;若每步上6阶,最后剩5阶;#只有每步上7阶,最后刚好一阶也不剩。nNum = 1bFlag = 0while not bFlag:    if nNum % 2 == 1:        if nNum % 3 == 2:            if nNum % 5 == 4:                if nNum % 6 == 5:                    if nNum % 7 == 0:                        print(nNum)                        bFlag = 1    nNum = nNum + 1########################################更好的写法↓########################################x = 7i = 1flag = 0while i <= 100:    if (x%2 == 1) and (x%3 == 2) and (x%5 == 4) and (x%6==5):        flag = 1    else:        x = 7 * (i+1) # 根据题意,x一定是7的整数倍,所以每次乘以7    i += 1if flag == 1:    print('阶梯数是:', x)else:    print('在程序限定的范围内找不到答案!')

7 循环

elif

#按照100分制,90分以上成绩为A,80到90为B,60到80为C,60以下为D,写一个程序,当用户输入分数,自动转换为ABCD的形式打印。score = int(input('请输入一个分数:'))if 100 >= score >= 90:    print('A')elif 90 > score >= 80:    print('B')elif 80 > score >= 60:    print('C')elif 60 > score >= 0:    print('D')else:    print('输入错误!')

三元操作符

x, y = 4, 5  #原来还可以这样赋值if x < y:    small = xelse:    small = yprint(small)#可以改进为三元操作符small = x if x < y else y#python 未有三元操作符时,三元操作符的实现方式small = (x < y and [x] or [y])[0]

断言

当条件为假的时候,程序自动崩溃并抛出 AssertionError 的异常。避免出现莫名奇妙的错误。

assert 3 > 4

for 循环

python 的 for 循环可以自动调用迭代器的 next 方法,自动捕获 stop iteration 异常并结束循环。

#循环打印一组字符串中的一个字符mystr = 'HelloWorld'for i in mystr:    print(i, end = ' ')
#打印列表member = ['Hello', 'World', 'Welcome', 'to', 'python']for each in member:    print(each, len(member)) # len(member) 表示列表中的元素个数?

range

作用:生成一个从 start 参数的值开始到 stop 参数的值结束的数字序列
+ 中括号表示可选参数
+ step = 1 表示这个参数的默认值为 1,表示每一次递增的数是多少

range([strat, ] stop[ , step = 1])

这里写图片描述

#循环打印数字for i in range(2, 10):    print(i)

break/continue 太简单不看

作业

1

'''将以下代码改为三元操作符'''x, y, z = 6, 5, 4if x < y:    small = x    if z < small:        small = zelif y < z:    small = yelse:    small = z
x, y, z = 6, 5, 4small = x if (x < y and x < z) else (y if y < z else z)