python习题1

本文详细介绍了Python编程的基本语法,包括变量、数据类型、运算符、流程控制、函数、模块导入、文件操作等内容。同时深入探讨了Turtle模块的使用,通过实例演示了如何利用Turtle进行图形绘制,涵盖了画笔控制、颜色设置、形状绘制等功能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

import turtle
turtle.showturtle()
turtle.penup() 抬起笔
turtle.goto(-1,+1)
turtle.pendown(3,4)落笔
turtle.circle(29)   以你上一次goto的位置为圆心
turtle.color("red")
turtle.done()程序继续运行(保持显示功能)
turtle.screensize(2800,3000) 屏幕
turtle.write("你好",font=("宋体",20,"normal"))  设定字体大小 
turtle.circle(100,steps=5)  steps=5表示五边形

turtle.begin_fill()  色彩填充
turtle.cirtle(100)
turtle.color("blue")
turtle.end_fill()  
填充一个蓝色的圆

turtle.reset()  重置清零
turtle.pensize(20)  笔变粗
turtle.hideturtle()  隐藏箭头
turtle.forward()  画直线
turtle.right(270)  旋转绘图方向

sss=input("nidemingzi")
print(sss)


计算机执行指令
import os
command=input("command")
os.system(command)

print(type(yourdef))   显示变量类型

id()   数据的内存地址  

注释

'''  
段落
 '''

复数
1+2j

del 变量 
删除变量 释放内存


连续赋值
num1=num2=1

对称幅值
num1,num2=1,3


R=eval(R)  转换为实数

运算符自动拆分换行
别的需要\

;多行合并一行

//整除 只取整数
/求实数(全部结果,带小数)
%求余数
**开方

强制转换
num=4.5
print(int(num))  取整数
string()

round() 四舍五入

data=eval(input("输入RMB")) 要把字符串转换为可以计算的实数

取时间
import time
timedata=time.time()
print(timedata/1000)  算出秒
print(timedata/3600)  小时
print(timedata/3600/24)  天
print(timedata/3600/24/356) 年
距离py发行的时间


num=none  #none让变量没有值

x1,x2=eval(input("输入两个值"))  
这时候输入要用,隔开

print("1a"+"2b")
显示1a2b
字符串相加
print

显示所有函数方法和函数说明
ipmort math
print(dir(math))
print(help(math.atan))
字符串的三种风格  'a'  "a"  """a"""

ord(a)  查询a字符的asic编号
chr(97)  找到97编号的字符

编号32转换为小写
\u  表示统一码

转义
ipmort os
os.system("\"/etc/passwd\"")  也可以用字符串加法
\\ 转义表示\
print高级用法
print("a",end=" ")   end=""默认换行  end=" " 空格
print(1,2,3,sep="---")   指定分隔符  默认为空格


print("abc".find(a))  写出a的下标
格式化
print(format(10.1234,"10.8f"))
10.8f  宽度10  小数点保留8位
默认为右对齐
d为显示整数
<19.8f  表示左对齐

0x# 16进制
0b# 二进制
0o# 八进制


字符串为空则为false
不为空为true


生成随机数
import random
num1=random.randint(0,100)  生成整数  包含100
print("num= %d"%(num1))  这个是%映射

与或非
and
or
not #

pass 是用来占坑的

if xxx:
elif :
else :


调用语音
首先安装 win32com.client
import win32com.client
speaker=win32.client.Dispatch("SAPI.SPVOICE")
speaker.Speak("可以说话了")
运行就可以

while i<5: 
    print(i)
    i+=1
else:
    print(i)


休眠
import time
time.sleep(0.5)  #休眠0.5秒

import time
i=2
while i-0>0.000000001: # 小数循环20次
    i -= 0.1
    print(i)
    time.sleep(0.2)
else:
    print(i)

 
b=2
print("b" if b>=2 else "b-1")
  b==2也可以
必须写判断条件
赋值也可以
num=1 if b==2 else 3
print(num)

else :
其他情况


for i in range(1,100,10):
   print(i)


import time
starttime=time.time()
c=1
for i in range(300000000):
    c+=1
endtime=time.time()
print(endtime-starttime)

continue 结束本次循环,本次循环中后续代码不再进行
break  跳出本(例如if)循环
print(i,end=" ")  不换行
print("") 换行


交换数据
a,b=1,2
a,b=b,a
或者
a,b=1,2
tmp=2
b=a
a=tmp

函数里面写变量就是局部变量了
函数嵌套
def Test():
    def TestX():
        print()
    TestX()
引用外部变量
nonlocal num
然后写 num=100
就可以内层覆盖外层

读取文件
import codecs
file1=codecs.open("Z:\\F\\eee\\eee.txt")
while 1:
    linestr=file1.readline() #读取一行
    if linestr.find("关键字")!=-1:
        print(linestr)


也可以让变量等于函数地址
op=add
print(op(1,2,3))
变量地址就是函数,也可以直接调用函数或者系统自带的函数


匿名函数(py3特性)
num=lamda a,b:a+b
print(num(a+b))

也可以
print((lamda a,b:a+b)(1,200))
直接匿名调用

可变长函数(未知数据个数)
def newadd(*num):
    lastnum=0
    for data in num:  #这里num代表一个序列
        lastnum+=data
    print(lastnum)


len()求字符串长度
"123"[i]  i为取出第几个字符

string.append(8) 增加数据


mylist=[1,2,3,4,5,6,7]
print(mylist[:])[1, 2, 3, 4, 5, 6, 7]
print(mylist[1:7])[2, 3, 4, 5, 6, 7]
print(mylist[0:7])[1, 2, 3, 4, 5, 6, 7]
print(mylist[1:6])[2, 3, 4, 5, 6]
print(mylist[0:6])[1, 2, 3, 4, 5, 6]
print(mylist[4:-1])[5, 6]
print(mylist[4:])[5, 6, 7]
print(mylist[:4])[1, 2, 3, 4]
print(mylist[-1:])[7]
print(mylist[-2:])[6, 7]
print(mylist[-3:])[5, 6, 7]
print(mylist[:-1])[1, 2, 3, 4, 5, 6]
print(mylist[:-2])[1, 2, 3, 4, 5]
print(mylist[:-3])[1, 2, 3, 4] 


list是[]   可以容纳变量(可以被修改)
tuple是()  不能修改里面定义好的值
集合{}  用来求交集并集等
set1={1,2,3,4}
set2={1,2,7,8}
set1-set2   #set1有set2没有
set1 | set2 #并集
set1 & set2  #交集
set1 ^ set2  #并集减交集  求出各自独立的部分


mylist={1,2,3}
print(1 in mylist)
print(1 not in mylist)
判断是否存在
会打印出true  false

字典
mydict={"qwewqe":10,"123213":2,"12312":2,"21432432":10}
for key in mydict:
    print(key,mydict[key])
循环打印左面的key和对应的value

eval只能处理字符串  字符串的数值或者表达式
exec(..)  执行字符串命令
print("""
1
2
3
""")
三引号表示换行
''用于字符
""用于字符串
""""""用于多行字符串
%c 字符 %s 字符串  %e指数
字符r""可以不用写转义字符
print(r"aaaa/aaa")
或者("//")
r只能处理除了双引号之外的转义字符


寻求字符串函数的帮助
mylist=dir("")
for i in mylist:
    print(i)
    print(help("str."+i))

一个字符一个字节
一个汉字两个字节(gbk)
utf-8中一个汉字三个字节  用一各字节表示汉字结束
mystr="hello"
print(mystr.encode("utf-8"))    #编码为二进制
print(b'hello'.decode("utf-8"))  #解码

解码失败强行解码 .decode("utf-8","ignore")

mystr="1\t2\t3\t"    
#\t转化为空格,默认为8个不写(tabsize=1)    
print(mystr.expandtabs(tabsize=1))

find函数
mystr="sam tom haha size"
print(mystr.find("sam"))   #
找到则返回下标,否则返回0
.find("str",3,5) 从3-5开始找
从头部开始只是返回第一个找到的下标(重复的不管)
.rfind() 从尾部开始查找,也是只返回第一个
类似于index()  rindex() 但是不存在时分别返回第一个、最后一个下标


字符判断函数
.isalnum   是否由数字字母组成,汉字为字母
.isdigit  是否为纯数字
.isalpha   是否为纯字母,包含汉字
.islower   纯小写  汉字不分大小写,都符合
.isupper   纯大写
.isspace 纯空格
.istitle  首字母大写,其他字母小写(标题判断)
.isdecimal  判断进制

字符串连接
"str".join("abc")
在abc中插入str
astrbstrc
len("")求长度

填充
for i in range(5,10):
    print("123".rjust(i,'a'))
aa123
aaa123
aaaa123
aaaaa123
aaaaaa123
for i in range(5,10):
    print("8888".rjust(i,'-'))
-8888
--8888
---8888
----8888
-----8888
for i in range(5,10):
    print("8888".ljust(i,'-'))
8888-
8888--
8888---
8888----
8888-----

'str'.upper()  转为大写
'str'.lower()  转为小写

max('str')
min('str') 
取出最大数(字符为ascll)

print(mystr.replace("a","b",1))
a换为b 一次  不加,1为全替换

.strip  前后去掉空格
.lstrip  去掉前面空格
.rstrip  去掉后面空格

切割处理
str.split("指定切割符",1)  #切割次数
切割符可以是 "\t"  " "
数据不规范的时候可以先替换

按行切割
.splitlines()  #里面写True 会换行两次  不写则换行一次

判断开头
"str".startwith("s")
则会输出true

.swapcase()  大小写切换


mystr="hello py a b c"
#生成表格
table=str.maketrans("abc","123") # a->1 b->2 c->3
#翻译表
print(mystr.translate(table))
hello py 1 2 3
#结果会在你指定的表格里按顺序进行翻译


指定字符串模板
from string import Template
mystr=Template("你好,$name 我是 $baby")
print(mystr.substitute(name="tom",baby="lovely baby"))

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值